精华内容
下载资源
问答
  • 分块绕过WAF.zip

    2020-02-27 18:19:18
    这是一个绕过WAF的方法,大家能够学习到如何绕的方法。能够提升自己的技术水品。
  • php大马过waf

    2018-04-28 14:01:27
    php大马过waf,,......................................................................................................
  • 如何使用SQLMap绕过WAF.pdf
  • sql注入绕过WAF小tips

    千次阅读 2021-05-01 10:18:25
    目录 一. WAF分类 二. WAF工作原理 三....四. WAF姿势 ...运算符绕and、or限制 ...内联注释绕order by ...所以,我们需要手动进行WAF的绕,而绕过WAF前肯定需要对WAF的工作原理有一定的理解。 一. WAF分类 .

    目录

    一. WAF分类

    二. WAF工作原理

    三. 攻击环境搭建

    四. WAF绕过姿势

    运算符绕过and、or限制

    内联注释绕过order by

    添加控制字符绕过union select

    函数拆分获取数据库名


    在实际的渗透测试过程中,经常会碰到网站存在WAF的情况。网站存在WAF,意味着我们不能使用安全工具对网站进行测试,因为一旦触碰了WAF的规则,轻则丢弃报文,重则拉黑IP。所以,我们需要手动进行WAF的绕过,而绕过WAF前肯定需要对WAF 的工作原理有一定的理解。

    一. WAF分类

    首先,WAF分为非嵌入型WAF和嵌入型WAF,非嵌入型指的是硬WAF、云WAF、虚拟机WAF之类的;嵌入型指的是web容器模块类型WAF、代码层WAF。非嵌入型对WEB流量的解析完全是靠自身的,而嵌入型的WAF拿到的WEB数据是已经被解析加工好的。所以非嵌入型的受攻击机面还涉及到其他层面,而嵌入型从web容器模块类型WAF、代码层WAF往下走,其对抗畸形报文、扫操作绕过的能力越来越强,当然,在部署维护成本方面,也是越高的。

    再补充一下关于云waf,它的主要实现方式是利用DNS技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截否则将请求转发至真实服务器。云Waf在提供防护功能的同时,还同时具有CDN的功能,CDN通过跨运营商的多线智能解析调度将静态资源动态负载到全国的云节点,用户访问某个资源时会被引导至最近的云端节点从而提高访问速度。目前有很多的企业都提供云waf产品,比如阿里云waf、腾讯云waf、华为云waf等等,价格不一,普遍来说一年也要几万或者十几万,相比于硬件waf要便宜很多。云waf是未来发展的一大趋势,相比于硬件和软件waf安装更简单,更新也有云端负责,更便捷,将会是中小企业、政府、金融、教育等网站的防护保障。

    这里有一个重点是CDN,云waf也充当着cdn,即当我们访问某个域名的时候,域名将ip地址解析成云waf的ip,经过waf的审核再将数据转发给服务器。如果企业使用了云waf,那么寻找到网站的真实ip就显得非常重要,只要找到了真实的ip那么我们就可以绕过云waf直接请求目标服务器,大大减少了渗透的阻碍。关于CDN,传送门 -》关于CDN以及如何绕过CDN寻找真实ip

    二. WAF工作原理

    WAF(Web Application Firewall) 可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。WAF针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。WAF的主要难点是对入侵的检测能力,尤其是对Web服务入侵的检测,WAF最大的挑战是识别率。对于已知的攻击方式,可以谈识别率,但是对于未知的攻击手段,WAF是检测不到的。

    目前市面上大多数的WAF都是基于规则的WAF。即WAF对接数据收到的包进行正则匹配过滤,如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为这个恶意代码,从而对于进行阻断。所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库。

    对于这种WAF,它的工作过程是这样的:解析HTTP请求——>匹配规则——>防御动作——>记录日志 

    具体实现如下:

    • 解析http请求:协议解析模块
    • 匹配规则:规则检测模块,匹配规则库。大多基于正则的匹配
    • 防御动作:return 403 或者跳转到自定义界面,或者不返回任何数据,或者拉黑IP
    • 日志记录:记录到elk中

    三. 攻击环境搭建

    基础环境介绍

    • 操作系统:win2008 64位
    • phpstudy2016,apache2.4.23(一定要使用2016的版本,比如2018的则不会生成服务,手动添加的也不行)
    • 安全狗Apache版

    1. 安装安全狗apache 版本

    下载地址:http://free.safedog.cn/

    2. 将phpstudy运行模式改为系统服务

    这里的服务名就是apache进程服务的名字,phpstudy等软件搭建的环境需要设置运行模式为“系统服务”后才能看到服务名。如下要点击应用,一定要点击应用!

    phpstudy中的系统服务和非服务模式有什么区别:

    • 系统服务:表示开机后apache和mysql会以系统服务的形式自动生效。此时我们不再需要打开phpstudy就能直接访问web服务
    • 非服务模式:每次系统重启都需要打开phpstudy才可以生效。

    这样我们就能在服务中看到服务名了

    2. 安装安全狗

    如下,程序会自动填写下面的。如果上面没有弄好服务,下面的服务名就会填不上,如果没有填写服务名,则安全狗不生效。然后直接点击确定就好了

    到这里就安装好了。我们以sqli-labs来测试一下,输入带有攻击的语句,是不是很nice~。这简直是渗透测试人员成功路上的绊脚石啊~ 接下来就来学习怎么绕过

    四. WAF绕过姿势

    WAF判断

    那么,如何判断一个网站是否存在WAF呢?可以手动也可以使用sqlmap进行测试。手动的话就像上面的输入一些明显带攻击行为的语句,查看服务器的响应,是否将我们请求中断了。或者也可以使用sqlmap进行探测,之前可以使用参数--identify-waf进行waf判断,现在这个参数遗弃了,使用sqlmap的时候会自动进行探测是否有waf

    在学习绕过之前,我们先开启所有的防护规则,唉 就算是玩~

    运算符绕过and、or限制

    如下,我们一输入这种and和or的语句就被拦截

    这里and和or可以用 &&和||进行代替,1=1用-1=-1代替,and不行就换or,一个个试。没有被拦截

    ?id=2' || -1=-1 --+

    然后换成 -1=-2数据变化了,所以判断这里存在注入

    内联注释绕过order by

    mysql中:

    • 单行注释可以使用#注释符,#注释符后直接加注释内容
    • 多行注释使用/* */注释符。/*用于注释内容的开头,*/用于注释内容的结尾

    正常注入:

    http://192.168.43.87/2_Shotting_Range/sql/Less-1/?id=2' order by 3 --+         拦截

    使用/*/注释干扰waf机制,用+连接 payload: 'order/*//*/+by

    http://192.168.43.87/2_Shotting_Range/sql/Less-1/?id=2%27%20order/*//*/+by%204%20--+     不拦截

    添加控制字符绕过union select

    这一关还是挺有难度的,试了一会

    http://192.168.43.87/2_Shotting_Range/sql/Less-1/?id=2' union xxx --+    不拦截

    http://192.168.43.87/2_Shotting_Range/sql/Less-1/?id=2' union select --+ 拦截

    我们可以添加一些ASCII控制字符如换行符和回车符来干扰WAF,然后结合着内联注释进行绕过

    --  (注释符)
    %0e (删除本身)
    %0a (换行)

    payload为:

    ?id=-2' union--%0E%0A/*//*/+select 1,2,3 --+

    函数拆分获取数据库名

    获取当前数据库名

    方法还是上面的,大家可以开大脑洞进行组合,就是使用内联注释加插入控制字符进行注入

    ?id=-2' union--%0E%0A/*//*/+select 1,2,/*!DATABASE()*/ --+         拦截
    ?id=-2' union--%0E%0A/*//*/+select 1,2,/*!DATABASE*/ --+           不拦截
    
    所以这里想要绕过,就得将database和()进行拆开,我们可以加入控制字符
    ?id=-2' union--%0E%0A/*//*/+select 1,2,/*!dATABASE--%0E%0A/*//*/+()*/ --+    不拦截

    其实方法很多,需要多尝试

    未完~~

    展开全文
  • 过WAF

    2019-09-26 21:07:11
    ‍‍0×01开场白 ‍‍‍‍这个议题呢,主要是教大家一个思路,而不是把现成准备好的代码放给大家。...但是呢,我是站在你们的这一边的,所以,今天我们就来谈谈如何绕过WAF吧。之所以叫做“杂谈”,...

    0×01开场白

    这个议题呢,主要是教大家一个思路,而不是把现成准备好的代码放给大家。

    可能在大家眼中WAF(Web应用防火墙)就是“不要脸”的代名词。如果没有他,我们的“世界”可能会更加美好。但是事与愿违。没有它,你让各大网站怎么活。但是呢,我是站在你们的这一边的,所以,今天我们就来谈谈如何绕过WAF吧。之所以叫做“杂谈”,是因为我在本次演讲里,会涉及到webkit、nginx&apache等。下面正式开始:)

    0×02直视WAF:

    作为第一节,我先为大家简单的说下一些绕过WAF的方法。

    一:大小写转换法:

    看字面就知道是什么意思了,就是把大写的小写,小写的大写。比如:

    SQL:sEleCt vERsIoN();
    ‍‍XSS:<sCrIpt>alert(1)</script>

    出现原因:在waf里,使用的正则不完善或者是没有用大小写转换函数

    二:干扰字符污染法:

    空字符、空格、TAB换行、注释、特殊的函数等等都可以。比如下面的:

    SQL:sEleCt+1-1+vERsIoN   /*!*/       ();`yohehe‍‍
    ‍‍SQL2:select/*!*/`version`();

    XSS:下面一节会仔细的介绍

    出现原因:利用网站使用的语言函数特性来绕过waf的规则或者使用会无视的字符

    三:字符编码法:

    就是对一些字符进行编码,常见的SQL编码有unicode、HEX、URL、ascll、base64等,XSS编码有:HTML、URL、ASCII、JS编码、base64等等

    SQL:load_file(0x633A2F77696E646F77732F6D792E696E69)
    ‍‍‍‍XSS:<script%20src%3D"http%3A%2F%2F0300.0250.0000.0001"><%2Fscript>

    出现原因:利用浏览器上的进制转换或者语言编码规则来绕过waf

    四:拼凑法:

    如果过滤了某些字符串,我们可以在他们两边加上“原有字符串”的一部分。

    SQL:selselectect verversionsion();
    ‍‍‍‍XSS:<scr<script>rip>alalertert</scr</script>rip>

    出现原因:利用waf的不完整性,只验证一次字符串或者过滤的字符串并不完整。

    本节是告诉大家,waf总会有自己缺陷的,任何事物都不可能完美。

    0×03站在webkit角度来说绕过WAF:

    可能这时会有人问到,说绕过WAF,怎么跑到webkit上去了。嗯,你没有看错,我也没有疯。之说以站在webkit角度来讲绕过WAF,是因为各个代码的功能是由浏览器来解析的。那浏览器中谁又负责解析呢?那就是webkit, 既然要说到webkit,那就不得不提webkit下的解析器——词法分析器,因为我们在绕过的时候,就是利用解析器中的词法分析器来完成。

    就比如一个简单的绕过WAF的XSS代码:

    <iframe src="java
    script:alert(1)" height=0 width=0 /><iframe> <!--Java和script是回车,al和ert是Tab换行符-->

    他可以弹窗,可以为什么他可以弹窗呢?这里面有回车、换行符啊。想要理解,我们来看看webkit下的Source/javascriptcore/parser/lexer.cpp是怎么声明的吧。

     while (m_current != stringQuoteCharacter) {        if (UNLIKELY(m_current =='\\')) {            if (stringStart != currentSourcePtr() && shouldBuildStrings)                append8(stringStart, currentSourcePtr() - stringStart);            shift();             LChar escape = singleEscape(m_current);             // Most common escape sequences first            if (escape) {                if (shouldBuildStrings)                    record8(escape);                shift();            } else if (UNLIKELY(isLineTerminator(m_current)))                shiftLineTerminator();

    注意倒数第二行里的isLineTerminator函数。这里我来说说大致的意思:所有的内容都在一个字符串里,用while逐字解析,遇到换行就跳过。然后在拼成一个没有分割符的字符串,所以这时的XSS代码成功弹窗了。

    Webkit里的词法分析器里除了跳过换行符,还会跳过什么字符呢?

    子曰:还有回车等分隔符。

    根据webkit词法分析器的机制,我们就可以写更多的猥琐xss代码。

    下面再说说这个注意事项:

    <iframe src="java
    script:alert(1)" height=0 width=0 /><iframe>  <!--这个可以弹窗-->
    <iframe src=java
    script:alert(1); height=0 width=0 /><iframe>  <!--这个不可以弹窗-->

    因为在webkit的词法分析器里,跳过回车、换行等分隔符时有个前提,那就是必须用单/双引号围住,不然不会跳过。因为如果不使用引号,词法分析器会认为 回车、换行就是结束了,如果你运行上面这段代码,webkit会把java当做地址传给src。词法分析器跳过的前提就是建立在引号里的,切记。

    这里在说一个:

    回车、换行只在属性中引号里才会起作用。如果你对标签或者属性用 回车、换行,这时你大可放心,决对不会弹窗。而且在属

    性值里 回车、换行随便用。如果空格出现在xss代码里并不会弹窗,但是如果出现在字符和符号之前,就可以弹了。如图:

    注意事项:

    跳过回车和换行,不支持on事件。例如下面的代码

    <a href="javascript:alert(1)">xss</a>会弹窗,但是下面的代码就不行了
    ‍‍‍‍<a href="#" onclick="alert(1)">s</a>可见加了Tab换行,就无法弹窗了。但是还是支持字符和符号之间加入空格的。

    本节就是告诉大家,想要玩的更好,最好追溯到底层,从底层来看攻击手法,你会发现很多问题迎刃而解。

    0×04 利用Nginx&Apache环境 BUG来绕过waf:

    这个bug比较鸡肋,需要在nginx&apache环境,而且管理员较大意。

    这是一个不是bug的bug。

    当网站采用前端Nginx,后端Apache时,需要在conf配置,当遇到PHP后缀的时候,把请求交给Apache处理。但是Nginx判断后缀是否为PHP的原理是根据URL的。也就是说如果当URL的后缀不是PHP的时候,他并不会把PHP教给Apache处理。

    配置:

     

     

    乍一看,没什么问题。但是这里隐藏一个漏洞。

    我在test目录建立一个index.php:

     

    利用nginx&apache这个bug,再加上浏览器默认会隐藏index.php文件名,那么漏洞就来了。

    访问a.cn/test/index.php?text=<script>alert(1)</script>不会弹窗,被waf.conf给拦截了。

    访问a.cn/test/?text=<script>alert(1)</script>会弹窗,没有被waf.conf给拦截,因为nginx根据URL判断这不是php文件,并没有交给apache处理,也就没有走第三个location流程。

     

    本节是告诉大家,绕过WAF不用一直针对WAF,也可以利用环境/第三方的缺陷来绕过。

    0×05 从HTTP数据包开始说起:

    一:现在有一部分网站waf是部署在客户端上的,利用burp、fiddler就可以轻松绕过。

    很多时候我们遇到的情况就像这段代码一样:

    <input type="text" name="text">
    ‍‍‍‍<input type="submit" onclick="waf()">

    把waf规则放到js里。我们可以提交一个woaini字符串,然后用burp、fiddler抓包、改包、提交,轻轻松松的绕过了客服端的WAF机制。

    二:有的网站,他们对百度、google、soso、360等爬虫请求并不过滤,这时我们就可以在USER-Agent伪造自己是搜索引擎的爬虫,就可以绕过waf

    三:有的网站使用的是$_REQUEST来接受get post cookie参数的,这时如果waf只对GET POST参数过滤了,那么久可以在数据包里对cookie进行构造攻击代码,来实现绕过waf。

    四:有的waf对GET POST COOKIE都过滤了,还可以进行绕过。怎么绕过呢?

    假设网站会显示你的IP或者你使用的浏览器,那么你就可以对IP、user-agent进行构造,在PHP里X_FORWARDED_FOR和HTTP_CLIENT_IP两个获取IP的函数都可以被修改。

    想详细了解的可以去:http://www.freebuf.com/articles/web/42727.html 0×06节。

    本节告诉我们waf是死的,人是活的,思想放开。不要跟着WAF的思路走,走出自己的思路,才是最正确的。

    0×06 WAF你算个屌:

    很多人认为绕过WAF需要根据WAF的规则来绕过。但是我们可以忽视他,进行攻击。

    我们利用第三方插件来进行攻击,因为第三方插件的权限非常大,而且他有一个特殊的性质,就是他可以跨域。

    我们可以事先在插件里调用一个js代码,对方安装之后浏览任何网站都可以被XSS。

    我们现在来看段Maxthon插件的源码:

    def.Json:

     

     

    test.js:

     

     

    统一放在一个文件夹里,再用Mxpacke.exe生成一个遨游插件。

     

     

    双击就可以安装这个插件。

    这不算是一个漏洞,因为插件必须要运行js代码,而XSS的宗旨就是 在网站里运行你所指定的js代码。所以,这个xss没办法修复,而且chrome 火狐 等浏览器都存在。

    资料下载

    PPT、DOC下载:http://pan.baidu.com/s/1pJ6wxj9

    [作者/blackhole,本文属FreeBuf黑客与极客(Freebuf.COM)独家发布,未经允许禁止转载]

    展开全文
  • 过WAF单一方法

    千次阅读 2020-04-30 08:57:01
    WAF大法绕过WAF单一绕方式1,一次URL编码绕2,二次URL编码绕3,其他编码4,空格过滤5,内联注释绕6,大小写绕7,双写关键字绕8,宽字节绕9,添加%绕10,cookie注入11,请求方式差异规则松懈性绕...

    作者:小刚
    一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢
    本实验仅用于信息防御教学,切勿用于它用途

    绕过WAF

    在我们进行sql注入的时候,通常会蹦跶出一些waf阻止我们的注入。例如安全狗,360,D盾等乱七八糟的WAF,很烦。
    在这里插入图片描述
    网上WAF种类挺多的,有软件WAF,硬件WAF,云WAF和一些自定义的WAF。
    其实waf绕过的方法有很多,主要是了解其中的原理,最后的绕过waf还是要通过组合拳的方式进行重拳出击。话不多说,直接上我最近收集的各种waf绕过大全。

    单一绕过方式

    1,一次URL编码绕过

    许多WAF就是空壳,通过一次URL编码就可以绕过。
    给个各种编码的网站:编码在线转换

    id = 1' and 1=1 --+
    id%20%3D%201%27%20and%201%3D1%20--%2B
    

    第一个是无编码,第二个是编码后(后面都通过此格式表达)

    2,二次URL编码绕过

    有的waf会对参数进行一次解码后进行检测保护,所以通过二次URL编码即可绕过此防护方式。

    id = 1' and 1=1 --+
    id%2520%253D%25201%2527%2520and%25201%253D1%2520--%252B
    

    无非就是对一次编码后的%再次转化成%25,就是二次编码。。。。。

    3,其他编码

    同样的原理,可以通过其他不同的编码方式进行绕过,Unicode,ASCii,Hex等等。但前提是由此编码的解码过程。

    4,空格过滤

    有的WAF会对参数中的空格进行过滤,可以通过+号或者空白符进行绕过过滤。
    各种数据库的空白符不同,这里给出几个通用的%0A,0C,0D,09,20。
    有的数据库的注释/**/可以当空格使用。

    id = 1 and 1=1 --+
    id+=+1+and+1=1+--+
    id%0A=%0A1'%0Aand%0A1=1%0A--%0A
    

    5,内联注释绕过

    在mySQL中/**/是多行注释,也可以当空格使用,但在其中加入!会将注释语句执行/*! sleep(666)*/

    id=2 and 1=1 and sleep(3) union......
    id=2/**/and/**/1=1/**/and/**/sleep(3)/**/union......
    id=1 and 1=1 and /*!50001sleep(3)*/ union...
    

    6,大小写绕过

    有的WAF会对关键字进行过滤处理,union,select,sleep,and,or等。但通过大小写混写就能绕过此WAF

    id=1 and 1=1 union select 11,22
    id=1 AnD 1=1 uNiOn SelECT 11,22
    
    

    7,双写关键字绕过

    有的waf会对关键字进行一次替换处理,就可以通过双写方式绕过

    id=1 union select 11,22--+
    id=1 ununionion seselectlect 11,22--+
    id=1 UnIunionoN SeLselecteCT 11,22--+
    

    8,宽字节绕过

    前提是使用GBK编码,并启用的魔术引号,
    是因为对单引号进行转义处理,添加一个%5C(也就是斜杠/),通过在前面添加%df与转义字符%5C构造成一个汉字%df%5C。从而绕过waf。

    id=1' and 1=1--+
    id=1%df' and 1=1--+
    

    9,添加%绕过

    在敏感关键字中添加%或者/,后端会对%或/ 进行一次过滤,从而构造出SQL语句。例如un%ion,se/lect等

    id=1 and sleep(3) union select 11,22--+
    id=1 and sle%ep(3) uni/on se%lect 11,22--+
    

    10,cookie注入

    Cookie注入是有的网站会读取用户的cookie,如果过滤不当也会绕过waf造成数据库注入。
    cookie只需要把前面cookie闭合,后面的语句正常构造,就能造成cookie绕过waf

    11,请求方式差异规则松懈性绕过

    有的WAF会同时接收GET和POST的请求,但在GET请求中增加了过滤规则,没有对POST进行过滤,所以可通过发送POST方法进行绕过。

    12,复参数绕过

    在提交的URL中给一个参数多次赋了不同的值(?id=1&id=2&id=3),有的WAF在处理的过程中可能只处理前面提交的参数值(id=1),而后端程序在处理的时候可能取的是最后面的值。

    ?id=1&id=2 and 1=1 and sleep(5) --+
    

    总结

    单一绕过方式暂时知道这么多,还有几个,%00截断,二阶SQL注入后续学会了在继续补充。
    单一方式看似简单,但绕WAF单一方式还是没用的,需要各种尝试,通过组合拳的方式进行绕过处理。后续会补充点组合拳的方法。

    展开全文
  • 浅谈绕过WAF的数种方法.txt
  • 过WAF进行文件上传的文旦,可以学习一些姿势加以利用。
  • 主要给大家介绍了关于PHP常见过waf webshell以及最简单的检测方法,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • 利用http协议绕过waf

    2021-04-02 17:02:31
    目录利用http协议绕过waf分块传输绕过waf畸形包绕协议覆盖分块传输绕过waf 先在数据包中添加Transfer-Encoding: chunked 数字代表下一列字符所占位数,最后需要用0独占一行表示结束,结尾需要两个回车 在头部...

    利用http协议绕过waf

    分块传输绕过waf

    • 先在数据包中添加Transfer-Encoding: chunked
    • 数字代表下一列字符所占位数,最后需要用0独占一行表示结束,结尾需要两个回车

    在头部加入 Transfer-Encoding: chunked 之后,就代表这个报文采用了分块编码。这时,post请求报文中的数据部分需要改为用一系列分块来传输。每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括它结尾的,也不包括分块数据结尾的,且最后需要用0独占一行表示结束。

    注意:分块编码传输需要将关键字and,or,select ,union等关键字拆开编码,不然仍然会被waf拦截。编码过程中长度需包括空格的长度。最后用0表示编码结束,并在0后空两行表示数据包结束,不然点击提交按钮后会看到一直处于waiting状态。

    eg:

    ………………
    Connection: close
    Upgrade-Insecure-Requests: I
    ontent-Type: application/x-www-form-urlencoded
    Content-Length: 50
    
    4
    a=1 
    4
    unio
    4
    n se
    5
    lect
    1
    1
    0

    畸形包绕过

    原理:

    http协议是由tcp协议封装而来,当浏览器发起一个http请求时,浏览器先和服务器建立起连接tcp连接,然后发送http数据包(即我们用burpsuite截获的数据),其中包含了一个Connection字段,一般值为close,apache等容器根据这个字段决定是保持该tcp连接或是断开。当发送的内容太大,超过一个http包容量,需要分多次发送时,值会变成keep-alive,即本次发起的http请求所建立的tcp连接不断开,直到所发送内容结束Connection为close为止。

    • 先关闭burpsuite长度更新,为get请求,先使用bp的method转换为POST请求
    • get请求中空格使用%20代替,Connection改为keep-alive

    点击burp中Repeater,在下拉选项中取消update Content-Length选中。

    eg:

    POST /sqlinject.php Http/1.0
    Host:127001
    User-Agent: Mozilla/5.0(Windows NT 10.0: WOW64; rv: 65.0) Gecko/20100101
    Firefox/65.0
    Accept: text/htmL, application/xhtml+xml, application/xml; q=0.9, image/webp. */ q=0.8
    Accept-Language: en-US,en:q=0.5
    Referer:http://127.0.0.1/sqlinjectphp?id=1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 4
    Connection:keep-alive
    Upgrade-Insecure-Requests: 1
    
    id=1post/sqlinjeCt.php Http/1.0
    Host:127.00.1
    User-Agent: Mozilla/5.0 (Windows NT 10.0: WOw64: rv: 65.0) Gecko/2010010
    Firefox/65.0
    Accept: text/htmL application/xhtml+xmL application/xml q=0.9, image/webp. * q=0.8
    Accept-Language: en-US, en, q=0.5
    Referer:http://127.0.0.1/sqlinjectphp?id=1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 12
    Connection: close
    pgrade-Insecure-Requests: 1
    
    d=l and 1=1

    然后你会收到两个返回包,不过这种方法有可能被waf给拦截

    协议覆盖

    原理:

    HTTP头里的Content-Type一般有application/x-www-form-urlencoded,multipart/form-data,text/plain三种,其中multipart/form-data表示数据被编码为一条消息,页上的每个控件对应消息中的一个部分。所以,当waf没有规则匹配该协议传输的数据时可被绕过。

    将头部Content-Type改为multipart/form-data; boundary=69 然后设置分割符内的Content-Disposition的name为要传参数的名称。数据部分则放在分割结束符上一行。由于是正常数据提交,数据是能被apache容器正确解析的,尝试1 and 1=1也会被某狗waf拦截,但如果其他waf没有规则拦截这种方式提交的数据包,那么同样能绕过。

    POST /sQlinJect php Http/1.0
    User-Agent: Mozilla/5.0 (Windows NT 10.0: WOW64; rv 650)Gecko /20100101 Firefox/65.0
    Accept: text/htmL, application/xhtml+xmL, application/xmL: q=0.9, image/webp, */* q=0.8
    Accept-Language: en-US, en: q=0.5
    Referer:http://127.0.0.1/sqlinject.php?id
    Content-Type: multipart/form-data; boundary=69
    Content-Length: 60
    Connection close
    Upgrade-Insecure-Requests:1
    
    --69
    Content-Disposition: form-data; name="id"
    
    1
    --69--
    展开全文
  • 浅谈绕过WAF的数种方法.pdf
  • 过WAF与识别工具

    2021-05-08 17:18:13
    WAF对于一些常规漏洞(如注入漏洞、XSS漏洞、命令执行漏洞、文件包含漏洞)的检测大多是基于“正则表达式”和“AI+规则”的方法,因此会有一定的概率绕其防御。 绕过waf的测试中,有很多方法可以使用,以下常用...
  • 文件上传绕过waf

    2020-12-16 23:47:11
    这里总结下我个人常用的文件上传绕过waf的方法,希望能起到抛砖引玉的效果,得到大佬们指点下。 常见情况 下面总结下我经常遇到的情况: 一. 检测文件扩展名 很多waf在上传文件的时候会检测文件扩展名,这个时候...
  • 深入理解SQL注入绕过WAF和过滤机制.pdf
  • sqlmap --tamper 绕过WAF脚本分类整理.pdf
  • SQLmap 注入 绕过WAF sql注入查询数据库内容 有成功案例流程供参考 只查询不破坏 sql注入绕过waf 不白做 会抓包和sqlmap操作随便玩 只负责打通前段 可以提供电脑,远程操作 求帮助
  • SQL注入绕过WAF两道题目

    千次阅读 多人点赞 2021-04-07 22:19:59
    所以,我们需要手动进行WAF的绕,而绕过WAF前肯定需要对WAF 的工作原理有一定的理解。 WAF之SQL注入绕安全狗 先随便输入一个双引号来显示报错闭合的语句 http://120.25.24.45:31832/?id=1" ...
  • 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 本文小结 0x6 参考资料
  • XISE WBES管理V23.8 ,官方正式版本,可狗,过WAF。 下载链接:https://lanzous.com/iaf4ycf 密码:6yb4
  • sql 注入 绕 waf

    千次阅读 2018-07-01 10:07:40
    https://notwhy.github.io/2018/06/sql-injection-fuck-waf/0x0 前言 0x1 注入点检测 0x2 bypass waf 0x3 自动化0x0 前言  这里是简单对sql注入绕过waf的一个小总结,非安全研究员,这里不讲原理,关于原理搜集了...
  • 破解版V23.8XISE+WBMS管理V23.8最新无后门过WAF
  • 知己知彼百战不殆 --孙子兵法 [目录] 0x00 前言 0x01 WAF的常见特征 0x02 绕过WAF的方法 0x03 SQLi Filter的实现及Evasion 0x04 延伸及测试向量示例 0x05 本文小结 0x06 参考资料
  • 【SQL注入技巧拓展】————16、绕过WAF注入.pdf
  • 文章目录前言WAF隧道传输绕分块传输绕协议未覆盖绕组合拳方式绕分块传输的混淆Filename混淆绕总结 前言 提前声明,本文内容虽然主要针对的是 SQL WAF 的绕演示,但由于是基于在 HTTP 协议层面绕 ...
  • sql注入内联注释过waf

    千次阅读 2020-01-17 11:03:24
    sql注入内联注释过waf 正常输入:1 然后尝试:-1 order by 被拦截 然后单独尝试order或者by 单独的order或者by并没有被拦截,内联注释干扰黑名单检测 -1/**/order/**/by 3 只是简单的/**/也被过滤了,那么就在/**/...
  • 使用HTTP头去绕过WAF

    千次阅读 2016-07-04 20:09:37
    0x00 前言  现在,各个安全厂商的WAF越来越多了,...有些招数对于V WAF绕得,有些招数对于N WAF可以绕,还有的招数对于哪个WAF都绕不过(自认倒霉吧,估计管理设置WAF策略的兄弟妹子也是一个高手,要不然就是他
  • Webshell免杀绕过waf

    千次阅读 2019-03-31 15:03:00
    Webshell免杀绕过waf 0x01 前言# 尽最大努力在一文中让大家掌握一些有用的WEBSHELL免杀技巧 0x02 目录# 关于eval 于 assert 字符串变形 定义函数绕 回调函数 回调函数变形 特殊字符干扰 数组 类 编码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,212
精华内容 9,284
关键字:

过waf