每天一题,成为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 初步测试

  1. 在评论功能中随意输入一些内容
  2. 使用Burp Suite拦截POST请求
  3. 分析请求内容(初始可能无明显有用信息)
  4. 放行请求后观察浏览器显示

3.2 前端分析

  1. 在浏览器中检查评论内容(右键点击紫色数字→检查)
  2. 发现href属性带有onclick事件
  3. 在JS代码中可看到用户输入的website值

3.3 漏洞利用思路

  • 将website值修改为JS代码(如alert
  • 需要绕过单引号转义限制

3.4 绕过尝试

  1. 直接尝试

    javascript:alert('xss')
    
    • 失败:单引号被转义
  2. 双写反斜杠绕过

    javascript:alert(\'xss\')
    
    • 失败:题目说明反斜杠也被转义
  3. HTML编码绕过

    • 将单引号编码为&apos;
    • &会被解析为参数开始符号
    • 解决方案:对&进行URL编码(%26

    最终payload:

    javascript:alert(%26apos;xss%26apos;)
    

3.5 验证利用

  1. 通过Burp Suite修改website参数为上述payload
  2. 发送请求
  3. 返回页面后点击数字链接
  4. 成功触发XSS弹窗

4. 实际攻击扩展

在实际攻击场景中,攻击者可:

  • 窃取用户cookie:document.cookie
  • 重定向用户到恶意网站
  • 执行更复杂的恶意操作

5. 实用技巧

  1. 实验会话管理

    • PortSwigger实验长时间不操作会过期(显示Gateway Timeout)
    • 解决方案:重新进入实验环境
    • 注意:重新进入后之前的评论会消失,网站内容会变化,但不影响实验本身
  2. 学习建议

    • 坚持每天完成一个实验
    • 记录每个实验的解决思路和技巧
    • 逐步积累Web安全知识

6. 总结

本实验展示了如何在特定限制条件下利用XSS漏洞:

  1. 分析环境限制(字符转义/编码规则)
  2. 定位漏洞点(事件处理属性)
  3. 设计绕过方案(HTML编码+URL编码组合)
  4. 验证利用成功

通过系统学习PortSwigger Web安全学院的课程和实验,可以逐步掌握Web渗透测试的核心技能。

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 绕过尝试 直接尝试 : 失败:单引号被转义 双写反斜杠绕过 : 失败:题目说明反斜杠也被转义 HTML编码绕过 : 将单引号编码为 &apos; 但 & 会被解析为参数开始符号 解决方案:对 & 进行URL编码( %26 ) 最终payload: 3.5 验证利用 通过Burp Suite修改website参数为上述payload 发送请求 返回页面后点击数字链接 成功触发XSS弹窗 4. 实际攻击扩展 在实际攻击场景中,攻击者可: 窃取用户cookie: document.cookie 重定向用户到恶意网站 执行更复杂的恶意操作 5. 实用技巧 实验会话管理 : PortSwigger实验长时间不操作会过期(显示Gateway Timeout) 解决方案:重新进入实验环境 注意:重新进入后之前的评论会消失,网站内容会变化,但不影响实验本身 学习建议 : 坚持每天完成一个实验 记录每个实验的解决思路和技巧 逐步积累Web安全知识 6. 总结 本实验展示了如何在特定限制条件下利用XSS漏洞: 分析环境限制(字符转义/编码规则) 定位漏洞点(事件处理属性) 设计绕过方案(HTML编码+URL编码组合) 验证利用成功 通过系统学习PortSwigger Web安全学院的课程和实验,可以逐步掌握Web渗透测试的核心技能。