文章目錄

LuManager 高危SQL注入0day分析中提到监控到利用payload如下:

/images/postwaf1.png

可以看到攻击者使用了multipart/form-data格式发送payload。对于应用来说,和使用application/x-www-form-urlencoded获取到的数据是一致的。关于multipart/form-dataapplication/x-www-form-urlencode的区别,可以参考stackoverflow
github

简单总结,通常文件上传的时候用的是multipart/form-data,传递普通参数用的x-www-form-urlencoded。文件上传包含大量二进制数据,非字符数字组成的数据,如果使用urlencode,需要全部采用url编码。使得需要传输的数据膨胀。

关于使用multipart/form-data绕过waf也有比较多的讨论了。multipart/form-data PHP和Java通用的WAF绕过方法,360网站宝/安全宝/加速乐及其他类似产品防护绕过缺陷之一

之所以能绕过waf,应该是multipart/form-data通常用来传输二进制,如果waf对大文件解析可能性能有影响。所以写扫描器的时候如果用form-data来发送payload也许会有惊喜,参考百度某站st2命令执行(独特执行姿势)

文章目錄