基于HPP参数污染的Web服务器指纹识别技术
Web Application Server BackendParsing ResultExample ASP.NET / IISAll occurrences concatenated with a commacolor=red,blue ASP / IISAll occurrences concatenated with a commacolor=red,blue PHP / ApacheLast occurrence onlycolor=blue PHP / ZeusLast occurrence onlycolor=blue JSP, Servlet / Apache TomcatFirst occurrence onlycolor=red JSP, Servlet / Oracle Application Server 10gFirst occurrence onlycolor=red JSP, Servlet / JettyFirst occurrence onlycolor=red IBM Lotus DominoLast occurrence onlycolor=blue IBM HTTP ServerFirst occurrence onlycolor=red mod_perl, libapreq2 / ApacheFirst occurrence onlycolor=red Perl CGI / ApacheFirst occurrence onlycolor=red mod_wsgi (Python) / ApacheFirst occurrence onlycolor=red Python / ZopeAll occurrences in List data typecolor=['red','blue']
(来源:https://www.owasp.org/index.php/Testing_for_HTTP_Parameter_pollution_(OTG-INPVAL-004))
0x02对于常见情形的的识别 上表的类型太全面了,我们一般只需要覆盖几个常用的就可以了,因此整理出如下粗略的判断方式
不过这个判断较为粗糙,而且还有种种因素造成的误差导致想要实现一个完美的判断工具的工作量远大于手动判断,在实际操作的时候建议手动判断 0x03手动判断 手动判断则更为灵活,现拿██带学的██研究院官网开刀 发现存在搜索功能,从搜索功能处下手,因为服务器一般会打出搜索字符串,如下图我搜索了nmsl发现结果被打出来了
接着再参数污染一个1234
发现都被服务器接收了,类似于iis的情形,但是按理来说用来分割的逗号没有了(经过测试可知逗号被过滤了) 接着进行最后一项测试,在keyword参数前面加一个&符号
0x04工具实现 本人实现了一个很粗糙的工具,代码过于丑陋不予开源,看个图吧 结果返回正常,排除ASP,识别结果ASP.NET