20165229 NetSec Exp9 Web安全基础

20165229 NetSec Exp9 Web安全基础,第1张

概述20165229 NetSec Exp9 Web安全基础 一、实验概述 0.WebGoat准备工作 (一)SQL注入攻击 1.命令注入(Command Injection) 2.数字型SQL注入(Numeric SQL Injection) 3.日志欺骗(Log Spoofing) 4.字符串型注入(String SQL Injection) 5.LAB: SQL Injection 6.数据库后 20165229 NetSec Exp9 Web安全基础 一、实验概述

0.WebGoat准备工作
(一)sql注入攻击
1.命令注入(Command Injection)
2.数字型sql注入(Numeric sql Injection)
3.日志欺骗(Log Spoofing)
4.字符串型注入(String sql Injection)
5.LAB: sql Injection
6.数据库后门(Database Backdoors)
7.数字型盲注入(Blind Numeric sql Injection)
8.字符串型盲注入(Blind String sql Injection)
(二)XSS攻击
1.Phishing with XSS
2.Stored XSS Attacks
3.Reflected XSS Attacks
(三)CSRF攻击
1.Cross Site Request Forgery(CSRF)
2.CSRF Prompt By-Pass

二、实验内容 0.WebGoat准备工作 由于下载太慢,我就找同学拷的webgoat-container-7.0.1-war-exec.jar 进入该文件的目录下,输入指令java -jar webgoat-container-7.0.1-war-exec.jar运行Webgoat,结尾出现信息:Starting ProtocolHandler ["http-bio-8080"]说明开启成功,可以看到webgoat占用8080端口。注:实验过程中不能关闭此终端。

在浏览器中输入http://localhost:8080/WebGoat进入WebGoat登录界面,直接用默认用户名密码登录即可。

(一)sql注入攻击 sql注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的sql Injection,即sql注入。 1.命令注入(Command Injection) 目标:能够在目标主机上执行任何系统命令

点击左侧栏中Injection Flaws-> Command Injection,右击复选框,选择Inspect Element审查网页元素对源代码进行修改,点击下方标蓝的向右箭头,使内容显示出来,双击AccessControlMatrix.help,在末尾添加"& netstat -an & ipconfig"

点击上方复选框右侧的VIEw,看到网络端口使用情况和 IP 地址,攻击成功。

2.数字型sql注入(Numeric sql Injection) 目标:显示天气情况。 点击Injection Flaws->Numeric sql Injection
右击复选框Columbia,选择Inspect Element审查网页元素对源代码value="101"进行修改,在城市编号101后面添加or 1=1。 go 攻击成功

3.日志欺骗(Log Spoofing) 目标:使用户名为admin的用户在日志中显示成功登录。 点击Injection Flaws->Log Spoofing
User name中填入webgoat%0d%0aLogin Succeeded for username: zkj20165229,利用回车0D%和换行符%0A让其在日志中两行显示。 密码为默认值,点击Login,可以看到webgoat在Login Fail那行显示,自己添加的zkj201652296语句在下一行显示。

4.字符串型注入(String sql Injection) 目标:基于查询语句构造自己的sql注入字符串,将所有xyk信息显示出来。 点击Injection Flaws->String sql Injection,输入查询的用户名zkj‘ or 1=1--
,使用提前闭合"",插入永真式1=1,且--注释掉后面的内容,这样就能select表里面的所有数据。

5.LAB: sql Injection 目标:使用sql注入绕过认证。

点击Injection Flaws->LAB:sql Injection,在密码框输入‘ or 1=1 --,登录失败,会发现密码只有一部分输入,说明密码长度有限制。

右击Password,选择nspect Element审查网页元素对可输入密码长度进行修改。

重新输入‘ or 1=1 --,登录成功。

(二)XSS攻击 Stored XSS Attacks

常见于论坛等留言、用户留言创建非法的消息内容,输入一段JavaScript脚本,其被保存在数据库中,任何用户在打开网页的时候,这个脚本就会被从数据库中取出来而运行,可以导致其他用户访问非预期的页面或内容。

点击XSS - > Stored XSS Attacks,在Title中输入20165229,留言板Message中输入<script>alert("20165229 attack succeed hhhhh!");</script>

(三)CSRF攻击 Cross Site Request Forgery(CSRF) CSRF通过伪装来自受信任用户的请求来利用受信任的网站。目标:向一个新闻组发送一封邮件,邮件中包含一张图片,这个图像的URL指向一个恶意请求。

点击XSS->Cross Site Request Forgery(CSRF),查看下方Parameters中的scrmenu值为330900

Message框中输入

,以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件。其中语句中的&transferFunds=5229即转走的受害人的金额,宽高设置成1像素的目的是隐藏该图片。

点击submit提交,在Message List中生成以Title命名的链接。点击该链接,当前页面就会下载这个消息并显示出来,转走用户的5000元,从而达到CSRF攻击的目的。

三、回答问题 (1)sql注入攻击原理,如何防御

所谓sql注入,就是通过把sql命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令。

sql注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行SQL语句以及进行其他方式的攻击,动态生成SQL语句时没有对用户输入的数据进行验证是sql注入攻击得逞的主要原因。

比如登录过程,SQL语句一般为select ID from users where username = ‘"+username +"‘ and password = ‘" + password +"‘,这里的usernamepassword都是我们存取从web表单获得的数据。如果我们在表单中username的输入框中输入‘ or 1=1--,此时我们所要执行的SQL语句就变成了select ID from users where username = ‘‘ or 1=1-- and password = ‘‘

对sql注入攻击的防御,主要有:

关闭或删除不必要的交互式提交表单页面;

对漏洞注入点相关代码进行代码及sql注入关键字的过滤,以规范代码安全性;

不要在服务器端放置备份的文件以免受到感染,或备份的文件含有漏洞,造成切入点

(2)XSS攻击的原理,如何防御

览器自身可以识别简单的XSS攻击字符串,从而阻止简单的XSS攻击;从根本上说,解决办法是消除网站的XSS漏洞,这就需要网站开发者运用转义安全字符等手段。

一个原则:不相信用户输入的任何数据!

(3)CSRF攻击原理,如何防御

改良站内 API 的设计。对于发布帖子这一类创建资源的 *** 作,应该只接受 POST 请求,而 GET 请求应该只浏览而不改变服务器端资源。

使用“请求令牌”。首先服务器端要以某种策略生成随机字符串,作为令牌(token),保存在Session里。然后在发出请求的页面,把该令牌以隐藏域一类的形式,与其他信息一并发出。在接收请求的页面,把接收到的信息中的令牌与Session中的令牌比较,只有一致的时候才处理请求,否则返回 http 403 拒绝请求或者要求用户重新登陆验证身份。

总结

以上是内存溢出为你收集整理的20165229 NetSec Exp9 Web安全基础全部内容,希望文章能够帮你解决20165229 NetSec Exp9 Web安全基础所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存