前言
某众测项目,绕过基于语义的waf,主要来说就是上传内容绕过,还有一个代码注入,代码注入的很好绕过,就不讲了,因为是内部的我就不放众测地址了,如果能够回显任意字符都是有奖金的,我就想写一写这几天绕这种waf的思考,如果有大哥想交流交流的可以加我qq 1274754948,不过我感觉我的博客是没什么人看了………… 我主要在研究 一个 php5.2版本的绕过 和 php7.3版本的绕过(针对文件内容的),这也是我第一次遇到真正基于语义的waf,很多次我都直接裂开…….好了进入正文
正文
我首先硬刚 php7.3 版本的waf,上了就是一把嗦,用了各种以前常常用的payload,很快我发现了一个现象,基于语义的waf的确挺高端,一旦判断到你的语法有问题,直接让你过,不会拦你,但是只要有函数的执行,直接干掉你,你可以执行各种赋值语句,但是一旦涉及到函数的执行,直接给你封掉,这时候我就在思考,要如何绕这种高端waf呢,我觉得这也是以后waf的一个趋势,先积累点经验,于是我去找php5 到 php7 各种废弃或者新增的功能,比如php7新增的 ?? 运算符 我尝试用
1 |
|
去显示字符 不过也被封了 在尝试过程中我发现了php 的一些特性 真的挺灵活比如
1 |
|
这样也是没问题的 还有
1 |
|
还有
1 |
|
还有利用根命名空间执行 命令比如 \var_dump(1)
都是能成功执行的 可是一发包就被检测到 …真难 我感觉想要绕过的话就得找到 语义检测漏掉的规则 让他认为这个语法出错 然后这个语法在php 7.3 实际要是能够执行的,这个真的很难找,我盯着php5 与 php7的特性也没找到什么突破口,希望有大佬和我交流交流思路……….
我尝试到 \echo 1;的时候竟然发包过了,然而我在本地测试了一下 语法有问题直接error…… 为什么var_dump可以然而 echo 却不行呢 我发现是因为 语言结构的问题 echo 是php中的语言结构而不是函数 但是这个特性在php5.2中却可以成功执行并且只报warning的错误,所以可以利用这个绕过php5.2的waf,这个语义检测真是够聪明的…..
待补充的一些思路
既然\var_dump(1) 这种能够执行 那么在函数前加其他字符会怎么样呢,于是我把ascii码 0-255的字符都试了试,php5.2还是比较好饶过 除了很多不可见字符不会影响函数的执行 甚至还有 ‘ 单引号 不会影响函数的执行比如 ‘ \echo 111111111; 在php5.2 中是可以成功执行的 先不写了 打游戏去了……下次接着写
我来了 继续 <0x01>\var_dump(1) 这种是能够正常执行的在php5 和 7 中 但是waf检测了 我陷入了僵局
hahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhahhahahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhv
绕过了 哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟哦哟vv!!!! nice 哦 兄嘚
简直无敌!!!!!!!!!!!!!!!!!
经过我5天的寻寻觅觅我终于绕过了 功夫不负有心人啊 多搜php 各种特性