这两天利用协议解析绕过安全狗,虽然最后都失败了,但是思路还是可以借鉴的,有兴趣的可以尝试绕过其它waf。
协议解析不正确-文件名覆盖
01.直接上传php被安全狗拦截
02.修改上传文件的后缀名为.pho,成功上传,没有被安全狗拦截
03.尝试利用multipart协议解析问题,一个文件上传块存在多个Content-Disposition,将以最后一个Content-Disposition的filename值作为上传的文件名。
被安全狗拦截。
- 利用在一个Content-Disposition 中,存在多个filename ,协议解析应该使用最后的filename值作为文件名尝试绕过安全狗。
被拦截
协议解析不正确-遗漏文件名
- 利用当WAF遇到“name=”myfile”;;”时,认为没有解析到filename。而后端容器继续解析到的文件名是yijuhua.php,导致WAF被绕过。
被拦截
协议解析不正确-未解析所有文件
0.1 multipart协议中,一个POST请求可以同时上传多个文件。如图,许多WAF只检查第一个上传文件,没有检查上传的所有文件,而实际后端容器会解析所有上传的文件名,攻击者只需把paylaod放在后面的文件PART,即可绕过。
协议解析不一致-文件名解析兼容性
-
- 利用multipart协议中,文件名的形式为“filename=”abc.php””。但是Tomcat、PHP等容器解析协议时会做一些兼容,能正确解析 ”filename=”abc.php”、”filename=abc.php”、 ”filename=’abc.php’”。而WAF只按照协议标准去解析,无法解析文件名,但是后端容器能正确获得文件名,从而导致被绕过。