熟悉webGoat的使用方法
WebGoat是一个用来演示Web应用程序中的典型安全漏洞的应用程序,旨在在应用程序安全审计的上下文中系统、条理地讲解如何测试和利用这些安全漏洞。WebGoat是用Java语言写成的,因此可以安装到所有带有Java虚拟机的平台之上。此外,它还分别为Linux、OS X Tiger和Windows系统提供了安装程序。部署该程序后,用户就可以进入课程了,该程序会自动通过记分卡来跟踪用户的进展。当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效危险的HTML注释等等。
虽然WebGoat中对于如何利用漏洞给出了大量的解释,但是还是比较有限,尤其是对于初学者来说,但觉得这正是其特色之处:WebGoat的每个教程都明确告诉你存在什么漏洞,但是如何去攻破要你自己去查阅资料,了解该漏洞的原理、特征和攻击方法,甚至要自己去找攻击辅助工具。
这里我们先给出其中两个实验的原理,其他的读者可自行学习。
1、SQL注入是一种利用用户输入构造SQL语句的攻击。 如果Web应用没有适当的验证用户输入的信息,攻击者就有可能改变后台执行的SQL语句的结构。由于程序运行SQL语句时的权限与当前该组建(例如,数据库服务器、Web应用服务器、Web服务器等)的权限相同,而这些组件一般的运行权限都很高,而且经常是以管理员的权限运行,所以攻击者获得数据库的完全控制,并可能执行系统命令。String SQL Injection测试项原理:SQL注入攻击是对于数据库网站的严重威胁。其攻击的方法易于学习但是攻击所造成的损害的范围却相当广泛。因此过滤所有输入数据,特别在操作系统中使用的命令、脚本、数据不失为正确的做法,这在一定程度上对SQL威胁实现了预防。
2、认证安全漏洞原理Authentication Flaws是存在于网络设备所使用的互联网操作系统中的一种漏洞。系统中存在认证绕过漏洞,可能允许远程攻击者绕过扩展认证,非授权访问网络资源。 攻击者可以通过向系统发送畸形报文的方式完成扩展认证,非授权访问网络资源。Forgot Password测试项原理:Web应用程序经常提供一种让他们的用户能够找回忘记的密码的机制,但通常许多Web应用程序无法正确执行这种机制,用来验证用户身份的信息往往是过于简单的。这就在某种程度上提供了一种可攻击的漏洞。
WindowsXP系统和webgoat工具
1、依次打开桌面-实验工具-WebGoat-5.2文件夹,打开后双击打开其中的webgoat批处理文件webgoat.bat,不要关闭该窗口。
2、打开浏览器,在地址栏中输入:http://localhost/WebGoat/attack,用户名:guest,口令:guest。
3、在打开的页面中点击Start WebGoat
首先我们进行字符串型SQL注入实验
1. 在左侧列表中找到String SQL Injection一项,点击进入。如果String SQL Injection选项前有绿色对勾,就点击一下页面右上方的Restart this Lesson,重新开始实验。
2. 进入后在用户提交信息的窗口中可以看到提示的SQL语言:SELECT * FROM user_data WHERE last_name = ‘Your Name’,该测试项为String SQL Injection,对于SQL语句中的“’”元字符,它作为查询参数的左闭合符号,可以在Your Name 中输入“’”使其闭合。
3. 故我们输入' or '1'='1这样,原来SQL语句中的’就作为了’1的右闭合符号。然后点击“Go!”`
4. 然后看到我们此次输入所产生的SQL查询命令。这样就得到了所有的用户列表。该攻击完成,左侧打上了绿色的对勾
5、下面我们进行Forgot Password项的攻击,在左侧列表中找到Forgot Password一项,点击进入。
6、通常情况下程序员都会采用有意义的名称作为表明和字段名。一般管理员表为admin,新闻表news,留言簿guestbook或guest,文章系统表article。因此利用一些经验和可能的猜测回答来破解系统,获取用户密码。此处我们尝试admin,然后点击Submit。
7、弹出以下页面,说明用户名存在,现在要求回答认证问题,有要求可以得知Webgoat用户的答案为red,故猜测问答的答案可能仅仅为简单的颜色。
8、尝试yellow,发现并没有通过。再尝试green,发现通过,得到了admin账户的密码。
9、实验完毕,关闭虚拟机和所有窗口。
在课后练习中,本次实验中得知Webgoat用户的答案为red后我们用什么颜色最后得到了正确答案?根据上述实验得知密码应该是green,但是练习区的答案是yellow,还可以得知webgoat的相关信息:
① WebGoat是一个用来演示Web应用程序中的典型安全漏洞的应用程序
② WebGoat是用Java语言写成的
③ WebGoat旨在在应用程序安全审计的上下文中系统、条理地讲解如何测试和利用这些安全漏洞
④ 可以安装到所有带有Java虚拟机的平台之上
并且得知SQL注入是一种利用用户输入构造SQL语句的攻击Authentication Flaws是存在于网络设备所使用的互联网操作系统中的一种漏洞
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有