前段时间面腾讯,面试官叫我绕腾讯的WAF,给了我5天时间。
运气比较好,半天就能利用3种方式进行绕过
由于报告比较敏感,所以此处仅简单对三种利用方式进行说明,不再贴上报告截图等等。
1、利用性能绕过(任意漏洞利用)
根据自己搞检测的经验,盲猜WAF可能存在性能限制。
在requestBody中加入大量脏数据进行测试
测试结果:加入大量脏数据后,WAF不再检测requestBody中是否存在恶意payload。直接放行
2、恶意web脚本(xss或钓鱼)
想着只有一种绕过方式太简单了,所以想着再搞一些。
经测试,发现腾讯WAF会拦截文件上传中的jsp、php和asp等web脚本文件。但是不会拦截html,想到可上传html文件进行xss的利用。或利用adobe flash和浏览器漏洞等方式进行钓鱼
测试结果:文件上传不会拦截html文件
3、利用解析进行绕过(除文件上传外的任意漏洞)
在测试上传html利用xss的过程中发现,文件上传时不会拦截xss的payload。
猜测可能是被识别为文件上传了,而请求的操作类型则和content-type有关。当请求中的content-type中包含multipart/form-data; boundary时,则会被识别为文件上传的操作。不再进行恶意payload识别,导致放行。
测试结果:content-type中包含multipart/form-data; boundary时,WAF不再检测requestBody中是否有RCE、注入和XSS的payload。导致直接放行