[红明谷CTF 2021]EasyTP
我们发现有源码泄露,下载/www.zip
我们发现thinkphp版本是3.2.3版本的
我们上网查链子 ThinkPHP v3.2.* (SQL注入&文件读取)反序列化POP链 (f5.pm)
注意在源码中,控制器存在反序列化,我们以这个入手
在buu中,database=test,password=root
方法一:报错注入
我们使用报错注入
1 |
|
其中报错注入的部分,要注意update最多只能显示32为,可以使用substr或者reverse来搭配使用
而师傅的wp采用了mid()函数来进行部分截取
1 | mid(str, start, length) |
利用控制器中的php://input
进行post传入数据
我们运行脚本,将得到的值进行post传参,得到部分flag
我们查询后半段flag
1 | mysql.user where updatexml(1,concat(0x7e,mid((select`*`from`flag`),15),0x7e),1)# |
拼接起来就得到完整的flag了
解法二:开堆叠写shell
参考payload:红明谷 CTF2021 Web部分 WriteUp – glzjin (zhaoj.in)
1 |
|
我们将得到的值进行上传,访问/shell用蚁剑进行连接
我们查看根目录,发现flag是插入数据库的
flag.sh
start.sh
根据这个shell,我们可以直接连接数据库,数据库类型选择MYSQLI
获取flag
参考:
BUUOJ]红明谷CTF2021复现 | tyskillのBlog
红明谷 CTF2021 Web部分 WriteUp – glzjin (zhaoj.in)