WebGoat学习笔记二---AJAX Security

 

l  LAB:DOM-Based cross-site scripting

题目叫我们用WebGoat/images/logos/owasp.jpg 图片来污染网页

可以看到当我们在文本框中出入字符后网页会立即显示输入的字符,所以我在文本框中输入如下的html代码,提交后STAGE1完成

Stage2

文本框中输入

Stage3

在文本框中输入

"

Stage4

在文本框中输入Please enter yourpassword:
















Stage5

打开tomcat\webapps\webgoat\javascript\ DOMXSS.js

将其改为

function displayGreeting(name) {
if (name != ''){
document.getElementById("greeting").innerHTML="Hello, " +escapeHTML(name); + "!";
}
}

这样ODM攻击就不起作用了

 

l  LAB: ClientSide Filtering

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

点击下面的连接即可



l  DOM Injection

在输入框中输入任意字符

使用webscarab拦截response,将responsebody替换为

document.forms[0].SUBMIT.disabled = false;”

还有一种在Firefox中可行的方法是直接用firebug修改网页源码,将按钮的属性disabled=‘’去掉就行了

l  XML Injection

使用webscarab拦截response

root标签中加入另外两个商品

WebGoatCore Duo Laptop 2000 Pts

WebGoatHawaii Cruise 3000 Pts

点击acceptchanges,另外两个商品的信息已经出现

 

l  JSONInjection

使用webscarab拦截response



将第一个航班的价格改为100,提交后如下图所示:



l  SilentTransactions Attacks

首先填入账号,然后填入转账金额,一定不要超过当前帐户的最大余额,因为网页是在客户端通过JavaScript来验证用户输入的金额是否大于账户余额的

提交后,使用webscarab拦截request

 

amount改为1000000

l  Dangerous Useof Eval

在以下文本框中输入123');alert(document.cookie);('

 

这样我就可以得到cookie

l  InsecureClient Storage

启用firebug,在如下位置设置断点

 

 

输入任意字符开始调试

当鼠标停在decrypted上面时,可以看到他的值为PLATINUM,这个值就是code的值



firebug中查找GRANDTOT,将他的readonly属性去掉,



这样就可以修改下面的值,将其修改为0从而免费获得商品


你可能感兴趣的:(WebGoat)