SQL注入参数污染HPP
🧴

SQL注入参数污染HPP

Published
March 27, 2023
Category
渗透测试
Subcategory
渗透测试方法与策略
Tags
SQL注入
演示
HPP
参数污染
Author
KK
Notes

下图作为例子解释什么是HPP

notion image
 
服务器端有两个部分:
  • 第一部分为tomcat 为引擎的jsp 型服务器
  • 第二部分为apache为引擎的php 服务器,真正提供web 服务的是php 服务器。
工作流程为:client 访问服务器,能直接访问到tomcat 服务器,然后tomcat 服务器再向apache 服务器请求数据。数据返回路径则相反。 重点: index.php?id=1&id=2,你猜猜到底是显示 id=1 的数据还是显示 id=2 的? Explain:apache(php)解析最后一个参数,即显示id=2 的内容。Tomcat(jsp)解析第一个参数,即显示id=1 的内容。
 
图片为大多数服务器对于参数解析的介绍
图片为大多数服务器对于参数解析的介绍
 

问题

index.jsp?id=1&id=2 请求,针对第一张图中的服务器配置情况,客户端请求首先过tomcat,tomcat 解析第一个参数,接下来tomcat 去请求apache(php)服务器,apache 解析最后一个参数。那最终返回客户端的应该是哪个参数?

Answer

此处应该是 id=2 的内容,应为时间上提供服务的是apache(php)服务器,返回的数据也应该是apache 处理的数据。
 
🙎
而在我们实际应用中,也是有两层服务器的情况,那为什么要这么做?是因为我们往往在tomcat 服务器处做数据过滤和处理,功能类似为一个WAF。而正因为解析参数的不同,我们此处可以利用该原理绕过WAF 的检测。该用法就是HPP(HTTP Parameter Pollution),http 参数污染攻击的一个应用。HPP 可对服务器和客户端都能够造成一定的威胁。