前言
之前接触tp5的站比较少,只知道利用RCE漏洞getshell的方式。在最近对一个发卡平台渗透的过程中,由于php版本限制,无法直接使用RCE的payload拿shell,于是结合该网站尽可能多的测试一下tp5+php7.1环境下的getshell方法。
【查看资料】
正文
拿到站点后,访问首页如下

不过看不出来具体版本,不确定是否存在RCE,于是用exp打一下试试
_method=__construct&method=get&filter=call_user_func&get[]=phpinfo

发现执行成功了,disable_function禁用了挺多函数

一般php版本低于7.1的情况下,接下来直接用exp写shell就可以了
方法一
直接用下面的exp写shell
s=file_put_contents('test.php','<?php phpinfo();')&_method=__construct&method=POST&filter[]=assert
但是这个exp中使用了assert,而上面看到php版本是7.1.33,这个版本是已经没办法使用assert了,所以这里这个方法是不能用的
方法二
上面的exp没办法写shell,但是phpinfo是执行了的,那么RCE是存在的。于是想到可以通过读取文件读取数据库的账号密码

本文记录了一次针对TP5网站的渗透测试过程,由于PHP版本限制,作者探索了多种在PHP 7.1.33下绕过disable_function获取shell的方法,包括尝试RCE、读取数据库信息、日志包含、session包含以及利用未禁用的exec函数从VPS下载shell。通过这些方法,作者成功地在不同阶段getshell,并强调实战是学习网络安全的重要途径。
最低0.47元/天 解锁文章
1099

被折叠的 条评论
为什么被折叠?



