0x
在实战渗透过程中,我们不可能总是一帆风顺,肯定会遇到各种各样的waf、安全狗,那么我们就需要绕过它们来进行渗透。
一
xss绕过最为简单的测试存在xss漏洞的方法是“见框就插”,常用的xss漏洞测试语句为:
如果测试的目标存在xss,就会弹框,一般情况下,肯定会过滤这个payload,这个时候,我们就需要尝试绕过让浏览器进行弹框。
网站仅仅只过滤了< script >标签,而没有过滤标签中的大小写,可以用
进行绕过
输入xss语句时发现返回网页 的代码中的< script >标签被去除了,但其余的内容并没有改变,我们可以制造
ipt>alert('1') ipt>
浏览器过滤了一次< script >,剩下的语句又拼接成了
依然会进行弹框
若< script >标签被完全过滤,那么,我们可以插入其他标签,里面的代码依然会执行,例如:
onclick="alert('xss')
有的时候,往往只会对代码中的关键字进行过滤,这个时候我们可以尝试将关键字进行编码后再插入。
HTML实体编码
浏览器是不会在html标签里解析js中的那些编码的!onerror较特殊,onerror里的内容是当js解析的,因此可以用JSunicode编码,但是不能全部编码只能编码函数名。如果全部编码是会出错的.
依然可以弹框
URL编码
Javascript:伪协议后面可以使用URL编码。
click me
可成功执行弹窗
HEX编码
我们可以对我们的语句进行hex编码来绕过XSS规则。
比如:
可以转换为:
%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%78%73%73%22%29%3b%3c%2f%73%63%72%69%70%74%3e
空字符 (%00) 使得过滤器不能看到完整的 < SCRIPT > 标签. 但只在 IE 6.0, IE 7.0 可以。
alert("XSS")
中间的空格为tab
也可使用回车分隔
不用空格:
二
文件上传先上传一个后缀名为jpg或gif等类型的木马 ,然后再利用burpsuite进行抓包改包,把后缀名改为asp/php/aspx等后缀名。
1.文件类型
在上传后缀为php/asp文件后,我们可以通过抓包把content-type改为 image/jpg。
2.后缀名
使用黑名单校验的方式,但是黑名单思想很难把所有可能引发漏洞的威胁给过滤掉,而且随着时代发展还有可能有新的攻击方式产生,所以黑名单思想是一种不够安全的思想。能被Web容器解析的文件后缀(简单来说就是能被当做php文件来执行),除了我们最常见的 .php以外还有很多,比如php1、php2、php3、php4、php5、phtml。
我们可以尝试黑名单中所不包含的文件后缀名
3.文件头验证
该方法利用了服务端判断图片头的信息,因此,我们在图片头部 加上 GIF89a ,使误判为gif类型图片进行绕过
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。仅限于Apache服务器
1.iis解析漏洞
(1)在网站下建立文件夹的名字为 .asp、.asa 的文件夹,其目录内的任何扩展名的文件都被 IIS 当作 asp 文件来解析并执行。例如创建目录 vidun.asp,那么 /vidun.asp/1.jpg 将被当作 asp 文件来执行。
(2)网站上传图片的时候,将网页木马文件的名字改成“*.asp;.jpg”,也同样会被 IIS 当作 asp 文件来解析并执行。例如上传一个图片文件,名字叫“vidun.asp;.jpg”的木马文件,该文件可以被当作 asp 文件解析并执行。
2.apache解析漏洞
Apache对于文件名的解析是从后往前解析的,直到遇见一个它认识的文件类型为止。因此,如果web目录下存在以类似bluedon.php.blue这样格式命名的文件,Apache在解析时因为不认识.blue这个文件类型,所以会一直往前解析,一直解析到它认识的文件名,例如:1.php.fas.wfas ,后面的两个都是apache不可识别的,所有就会把这个文件解析为php文件。
nginx解析漏洞
该漏洞与nginx、php版本无关,属于用户配置不当造成的解析漏洞。
在上传文件时,可以上传不符合操作系统的文件名,例如:
1.php...
1.php::$DATA
1.php:1.jpg
还有00截断,编辑器漏洞等方式可以进行绕过
1.
如果数据包类型为post类型,那么可以尝试将post类型改为get类型的数据包
2.
有些waf为了不影响web服务器性能,会对用户上传的数据进行校验,我们可以生成大量垃圾内容放在前面,后面为木马内容,导致waf检测出错
3.
删除content-type字段
4.
在content-type字段里增加空格