刷题记录:[V&N2020 公开赛]TimeTravel

题目复现链接:https://buuoj.cn/challenges
参考链接:2020 年 V&N 内部考核赛 WriteUp
V&N公开赛2020 writeup

httpoxy

https://httpoxy.org/
HTTPOXY漏洞说明

利用条件:

  • 代码以cgi模式运行,其中使用环境变量HTTP_PROXY
  • 信任 HTTP 客户端HTTP_PROXY并将其配置为代理
  • 在请求处理程序中使用的该客户端发出HTTP(与HTTPS相对)请求

受影响范围

Language Environment HTTP client
PHP php-fpm
mod_php
Guzzle 4+
Artax
Python wsgiref.handlers.CGIHandler
twisted.web.twcgi.CGIScript
requests
Go net/http/cgi net/http

Guzzle>=4.0.0rc2,<6.2.1版本受此影响

漏洞原因

在CGI(RFC 3875)的模式的时候, 会把请求中的Header, 加上HTTP_ 前缀, 注册为环境变量, 所以如果你在Header中发送一个Proxy:xxxxxx, 那么PHP就会把他注册为HTTP_PROXY环境变量, 于是getenv("HTTP_PROXY")就变成可被控制的了. 那么如果你的所有类似的请求, 都会被代理到攻击者想要的地址,之后攻击者就可以伪造,监听,篡改你的请求了...

利用

在vps上创建./api/eligible,内容是{"success":true},可以用php CLI SAPI 提供的内置的Web服务器,php -S 0:2333。然后携带Proxy头访问

posted @ 2020-03-02 22:37  MustaphaMond  阅读(630)  评论(0编辑  收藏  举报