CDN 负载均衡、内容分发


解析漏洞一般在服务层 二进制,溢出,提权在系统层 渗透测试就是以上全部层

协议未正确解析
GET改POST 这叫参数污染
cookie 改一个较大的值 有的waf承受不了这么大的值,参数污染
HTTP参数污染 HPP参数污染 使用多个无用值或者重复值提交到数据包中达到攻击
提交两个filename值,这要看具体什么服务器,两个一样的参数是哪一个参数生效


waf有正则匹配拦截,我们要找到拦截点在哪里。绕过waf就是在绕过写好的正则。
单双引号,不加引号,后缀,各种尝试绕过
正则的核心在匹配filename后面的值,思路是让它找不到匹配点。

直接绕过

SQL注入


union select 1,2,3 只要不报错可以继续往后加 union select 's','s','s' 字母也可以

表里没有3条数据,这时个时候查询 id=3;返回空值。所以要用union select联合查询查到报错来摸清数据库里面有多少条数据。

如果前面id=-1这里的条件不符合,它就返回后面的union select数据了,利用这个唯一的返回结果就可以加自己的东西来回显了。

可以调用数据库的全局变量




查看数据库名


在数据库里面可以返回三条,但在页面中不会显示三条的。使用limit

limit 0,1 从0开始取一条,返回一条


查询这个表来看当前用户的权限是什么







只要字典强大就可以获得当前数据库的用户名


聚合函数,当前表里有多少记录就返回多少

统计列数

这个表是存在的,穷举表

穷举字段

布尔值盲注 age字段18的值,拿第一个字符,返回1,以下为嵌套函数。





数字,字母穷举都可以,单引号被过滤就必须用到ASCII码了。

时间盲注

这个函数直接就解析了


过狗

and int = int就会拦截 and 字符 = 字母就不会拦截 字符串 = 函数 是不拦截的

union 和 select 在一起的时候才会拦截 用大小写,URL编码等尝试

注释绕过


写个脚本测试payload,waf的正则匹配的东西太多了,用脚本跑到没有被拦截到的点
id=2 UNION/**/SELECT 1,2,3 把空格用SQL注释符号替换的思路,厂家也清楚,/**/里面加东西,或者用SQL不会执行的特性来绕过他们编写的正则匹配规则,将是重要的测试点。
学语言写脚本,这里就需要用上了。 大致叫做 Fuzz 模糊测试 绕过waf PKAV团队应该有一个这个软件
这里推荐一篇脚本的参考资料:https://blog.csdn.net/JBlock/article/details/88617906

