Buu刷题02

[V&N2020 公开赛]HappyCTFd

这里考点是CTFd的最新的一个CVE。

 

users有admin,说明让我们利用这个CVE达到重置admin密码,并且登陆的目的。

我们在admin前面留个空,然后注册

可以看到变成了两个admin,然后这里我们重置密码

通过邮箱的链接找回密码,这里因为buu的是内网,无法访问外网,所以需要去内网邮箱注册一个

http://mail.buuoj.cn/admin/ui/login?next=ui.index

然后将我们自己的名字admin修改为别的,然后用重置的密码登陆admin

在admin panel找到

 

获得flag

[V&N2020 公开赛]TimeTravel[复现]

进入即源码

Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上。

这题看了一些WP,发现是很有意思的东西。

httpproxy漏洞说明

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

利用条件

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

受影响范围

解法:

所以这里简单的利用就是,我们通过在请求flag参数的header中增加Proxy头,将其配置到我们监听的地方,并通过nc <file 返回我们伪造的json response,success:true

这里我们创小号起一个Linux labs

创建一个伪造的response  b.txt

HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Fri, 06 Mar 2020 18:27:31 GMT
Content-Type: text/html; charset=UTF-8
Connection: Keep-alive
Content-Length: 16
​
{"success":true}  

然后nc监听

请求flag参数并且增加Proxy头

这里我复现失败了,请求过去后一直504

这里用cjm00n师傅的php返回的方法https://cjm00n.top/2020/02/29/V-N%E5%85%AC%E5%BC%80%E8%B5%9B2020-writeup/

<?php
        $arr = array("success"=>true);
        header("Content-Type:application/json");
        echo json_encode($arr);

启动PHP内置服务器

php -S 0:2333

第四题的EasySpringMVC是JAVA,不会JAVA。

这里再看一下nc的命令,会直接返回数据

 

 

此题参考链接:

https://cjm00n.top/2020/02/29/V-N%E5%85%AC%E5%BC%80%E8%B5%9B2020-writeup/

https://www.cnblogs.com/JeffKing11/p/12430571.html

 

猜你喜欢

转载自www.cnblogs.com/BOHB-yunying/p/12447306.html