l LAB:DOM-Based cross-site scripting
题目叫我们用WebGoat/images/logos/owasp.jpg 图片来污染网页
可以看到当我们在文本框中出入字符后网页会立即显示输入的字符,所以我在文本框中输入如下的html代码<img src="images/logos/owasp.jpg"/>,提交后STAGE1完成
Stage2:
文本框中输入<img src=x οnerrοr=;;alert('XSS')/>
Stage3:
在文本框中输入
<IFRAMESRC="javascript:alert('XSS');"></IFRAME>"
Stage4:
在文本框中输入Please enter yourpassword:<BR><input type = "password"name="pass"/><button onClick="javascript:alert('I haveyour password: ' +pass.value);">Submit</button><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
Stage5:
打开tomcat\webapps\webgoat\javascript\ DOMXSS.js
将其改为
function displayGreeting(name) {
if (name != ''){
document.getElementById("greeting").innerHTML="Hello, " +escapeHTML(name); + "!";
}
}
这样ODM攻击就不起作用了
Stage1:
查看源文件可以发现Neville的薪水是450000元
Stage2:
打开tomcat\webapps\webgoat\lessons\Ajax\ clientSideFiltering.jsp,将
StringBuffer sb = newStringBuffer();
sb.append("/Employees/Employee/UserID | ");
sb.append("/Employees/Employee/FirstName | ");
sb.append("/Employees/Employee/LastName | ");
sb.append("/Employees/Employee/SSN | ");
sb.append("/Employees/Employee/Salary ");
String expression = sb.toString();
修改为
StringBuffer sb = newStringBuffer();
sb.append("/Employees/Employee[Managers/Manager/text() = " +userid + "]/UserID | ");
sb.append("/Employees/Employee[Managers/Manager/text() = " +userid + "]/FirstName | ");
sb.append("/Employees/Employee[Managers/Manager/text() = " +userid + "]/LastName | ");
sb.append("/Employees/Employee[Managers/Manager/text() = " +userid + "]/SSN | ");
sb.append("/Employees/Employee[Managers/Manager/text() = " +userid + "]/Salary ");
String expression = sb.toString();
l Same OriginPolicy Protection
点击下面的连接即可
在输入框中输入任意字符
使用webscarab拦截response,将response的body替换为
“document.forms[0].SUBMIT.disabled = false;”
还有一种在Firefox中可行的方法是直接用firebug修改网页源码,将按钮的属性disabled=‘’去掉就行了
使用webscarab拦截response
在root标签中加入另外两个商品
<reward>WebGoatCore Duo Laptop 2000 Pts</reward>
<reward>WebGoatHawaii Cruise 3000 Pts</reward>
点击acceptchanges,另外两个商品的信息已经出现
使用webscarab拦截response
将第一个航班的价格改为100,提交后如下图所示:
首先填入账号,然后填入转账金额,一定不要超过当前帐户的最大余额,因为网页是在客户端通过JavaScript来验证用户输入的金额是否大于账户余额的
提交后,使用webscarab拦截request,
将amount改为1000000
在以下文本框中输入123');alert(document.cookie);('
这样我就可以得到cookie了
启用firebug,在如下位置设置断点
输入任意字符开始调试
当鼠标停在decrypted上面时,可以看到他的值为PLATINUM,这个值就是code的值
在firebug中查找GRANDTOT,将他的readonly属性去掉,
这样就可以修改下面的值,将其修改为0从而免费获得商品