【web安全】xss跨站对抗代码过滤的思路总结

前言

本文是对xss漏洞的一些非waf的代码绕过思路的的总结,主要是总结思路。

仅供学习使用。

Xss漏洞判断过滤:

1.前端源码没有被隐藏的情况下

输入跨站语句,发现跨站语句没执行。

选中回显位置审查元素看源码。

2.前端源码被隐藏

标志:相应部分的源码有<… type=hidden>

这个很难靠猜进行渗透,大部分依靠源码进行判断。

可以尝试看页面代码,把参数都改下type,看看页面码中哪个变了

 

防御方法以及反防:

1.语句在双引号里面

加双引号和>让语句在引号外面。

此方法是用于那种语句在<>这里<>的时候使用

 

2.有的过滤会把我们的<>变成&it:

看情况,有点击框可以尝试使用onlick=’语句’。实现不使用<>完成代码执行

完整payload:
在括号里有单独的<>或者“”并不影响payload的构造

                        “javascript:alert(1)”>部分的过滤

3.有的过滤关键字,有时会过滤on等,这时可以尝试一下javascript:协议

构造 “javascript:alert(1)”>

上一个>跟下一个<之间不能有空格。

 

4.前端JavaScript也是对大小写敏感的,所以有时候他过滤一些关键词,可以用大小写。

 

5.有的过滤并不是循环过滤,他只会过滤一次,把关键词替换为空白,所以用嵌套,让他过滤一层,然后剩下的字符再凑齐一个关键词。

 

6.很多时候,他过滤的很苛刻,无法绕过,则可以考虑用编码绕过,把关键字编码成html的形式输入,最后html解码成相应的关键字实现绕过。

 

7.这种页面跳转的,一般是跳转其他网站,所以他有时候可能要求执行的代码必须含有http://,如果没有就不给你执行,但是我们输入又会产生干扰,所以可以用双//给他注释掉,或者放到alert中。

 

                                                              Type=hidden的情况

8.当他有type=”hidden”,我们是可以改type的,

当有两个type在同一个<>中时,我测试他会按照第一个算,所以我们可以输入改他的type再结合一个onclick属性,实现捏造一个会话框。

判断方法:虽然设置为了hidden,但是看源码还是可以看出来有个输入的参数,把源码中的参数挨个改一下type,然后再看源码中哪个input改变了,再进行payload构造

 

9.有的网站他会接收上一个页面的网址,判断数据包的referer

需要抓包,然后在referer那里写跨站语句。

与这个相似的,有时候网站会获取你的IP,浏览器信息等在数据包中的信息,这个时候你也可以把语句写到相应的位置进行攻击。

 

 

总结,xss跨站语句,可以通过看得见的,看不见的,get,post,数据包等多种形式进行跨站。

 

你可能感兴趣的:(网络安全总结,web安全,网络安全)