我是靠谱客的博主 标致草丛,最近开发中收集的这篇文章主要介绍HTTP参数污染1、漏洞描述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、漏洞描述

HTTP参数污染漏洞(HTTP Parameter Pollution)简称HPP,由于HTTP协议允许同名参数的存在,同时,后台处理机制对同名参数的处理方式不当,造成“参数污染”。攻击者可以利用此漏洞对网站业务造成攻击,甚至结合其他漏洞,获取服务器数据或获取服务器最高权限。

2、 常见应用场景

GET /foo?par=first&par=last HTTP/1.1
User-Agent: Mozilla/5.0
Host: Host
Accept: */*

HPP发生在查询参数中,查询参数通常是指URI中“?”和URI结尾之间的部分,是一系列的域值对,可以参考RFC 3986查看其具体定义,这些域值对是通过“&”分开的,例如:name=admin&password=Test@123。如果用户输入的name的值为:admin&password=123,数据没有经过任何处理用于提交请求,那么这个URL就会被篡改为:name=admin&password=123&password=Test@123。

以上面数据包为例,常见的Web服务器对同样名称的参数出现多次的处理方式如下:

Web环境参数获取函数获取到的参数
PHP/Apache$_GET("par")last
JSP/TomcatRequest.getParameter("par")first
Perl(CGI)/ApacheParam("par")first
Python/Apachegetvalue("par")["first","last"]
ASP.NET/IISRequest.QueryString("par")first,last

更详细的: 

3、 漏洞危害

HTTP 参数污染的风险实际上取决于后端所执行的操作,以及被污染的参数提交到了哪里。

  • 对客户端的攻击,比如投票、跳转、关注等;
  • 绕过安全防护软件;

4、 修复建议

  1. 对用户输入数据的参数的格式进行验证。
  2. 在WAF或其他网关设备(比如IPS)在检查URL时,对同一个参数被多次赋值的情况进行特殊处理。
  3. 在代码层面,编写WEB程序时,要通过合理的$_GET方法获取URL中的参数值,而尝试获取web服务器返回给程序的其他值时要慎重处理。

最后

以上就是标致草丛为你收集整理的HTTP参数污染1、漏洞描述的全部内容,希望文章能够帮你解决HTTP参数污染1、漏洞描述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部