每天一题,成为web渗透大佬,暴打ctf---bp官网学习
字数 1157 2025-08-15 21:32:39
Web渗透测试学习:基于PortSwigger Web安全学院的XSS漏洞利用实战
1. PortSwigger Web安全学院简介
PortSwigger Web安全学院(https://portswigger.net/web-security)是学习Web渗透测试的优质资源,提供:
- 129个Web安全实验
- 配套课程内容
- 详细的实验指导答案
- 全部内容为英文(可使用浏览器翻译功能)
提示:许多PTE培训机构的讲师将这些内容翻译后作为课件使用,说明其专业性和权威性。
2. XSS漏洞实验环境分析
2.1 实验限制条件
- 尖括号(
<,>)和双引号(")被HTML编码 - 单引号(
')和反斜杠(\)被转义
2.2 漏洞位置
- 评论功能存在XSS漏洞
- 重点关注"website"输入框
- 网站地址会以可点击链接形式显示
3. 漏洞利用步骤详解
3.1 初步测试
- 在评论功能中随意输入一些内容
- 使用Burp Suite拦截POST请求
- 分析请求内容(初始可能无明显有用信息)
- 放行请求后观察浏览器显示
3.2 前端分析
- 在浏览器中检查评论内容(右键点击紫色数字→检查)
- 发现
href属性带有onclick事件 - 在JS代码中可看到用户输入的website值
3.3 漏洞利用思路
- 将website值修改为JS代码(如
alert) - 需要绕过单引号转义限制
3.4 绕过尝试
-
直接尝试:
javascript:alert('xss')- 失败:单引号被转义
-
双写反斜杠绕过:
javascript:alert(\'xss\')- 失败:题目说明反斜杠也被转义
-
HTML编码绕过:
- 将单引号编码为
' - 但
&会被解析为参数开始符号 - 解决方案:对
&进行URL编码(%26)
最终payload:
javascript:alert(%26apos;xss%26apos;) - 将单引号编码为
3.5 验证利用
- 通过Burp Suite修改website参数为上述payload
- 发送请求
- 返回页面后点击数字链接
- 成功触发XSS弹窗
4. 实际攻击扩展
在实际攻击场景中,攻击者可:
- 窃取用户cookie:
document.cookie - 重定向用户到恶意网站
- 执行更复杂的恶意操作
5. 实用技巧
-
实验会话管理:
- PortSwigger实验长时间不操作会过期(显示Gateway Timeout)
- 解决方案:重新进入实验环境
- 注意:重新进入后之前的评论会消失,网站内容会变化,但不影响实验本身
-
学习建议:
- 坚持每天完成一个实验
- 记录每个实验的解决思路和技巧
- 逐步积累Web安全知识
6. 总结
本实验展示了如何在特定限制条件下利用XSS漏洞:
- 分析环境限制(字符转义/编码规则)
- 定位漏洞点(事件处理属性)
- 设计绕过方案(HTML编码+URL编码组合)
- 验证利用成功
通过系统学习PortSwigger Web安全学院的课程和实验,可以逐步掌握Web渗透测试的核心技能。