实战 | 湾湾网站的肾透案例

admin 2024年8月7日16:35:54评论23 views字数 4398阅读14分39秒阅读模式
正文

很久以前的案例,由于太过丢人,一直不怎么敢提,有些资源当时也没截完全,就顺手看看吧闲着无聊,开日!


目标是谁好呢?随便找一个吧。

* 电?很 NB,就他了!

外网搜一堆资产,不是自研,就是一些功能简单的前端 Nodejs,一眼能打的资产很少。

实战 | 湾湾网站的肾透案例

怎么办呢?这时候我们发现了一个很好的目标

实战 | 湾湾网站的肾透案例

系统名称 eip­plus,一看就是个类似 OA 系统一样的东西,功能一定很多。同时一搜公网资产

实战 | 湾湾网站的肾透案例

很好,很有精神!同代码的站点,非常非常的多,就从他作为突破口!

总而言之,先搞到一套源码先。之后就是开始平淡无奇的供应链环节,辣么多站,总不至于一个都打不下来吧

实战 | 湾湾网站的肾透案例

平淡无奇供应商找个注入

平淡无奇 get­shell

实战 | 湾湾网站的肾透案例
实战 | 湾湾网站的肾透案例

平淡无奇发现目标

实战 | 湾湾网站的肾透案例

平淡无奇打死

怎么打死的呢?利用内网数据正好撞到 sysad­min 的密码,然后登录上去后台上传 Logo 图片直接传马成功

下载源码!一看

实战 | 湾湾网站的肾透案例

人当场裂开,怎么还是sourceguardian加密的。当场想哭。不过在这之前,至少我们能见到他们系统内部长啥样以及他们的代码架构具体是啥了。

本地起个环境,大概的模样长这样

实战 | 湾湾网站的肾透案例
实战 | 湾湾网站的肾透案例
实战 | 湾湾网站的肾透案例
实战 | 湾湾网站的肾透案例

随手截的一些图,大伙看个乐呵就行

以及大致的目录结构

实战 | 湾湾网站的肾透案例

到此为止,我们已经拥有了目标代码,只不过是加密的,以及一个同站的高权限后台。但是我们目标系统肯定是没有 sysad­min 权限的

现在我们的方案有几个:

  • 配合目录和后台,黑盒寻找未授权打死

  • 寻找后门工具/开发者工具,想办法解密然后打死

  • 寻找越权,然后从低权限越权到高权限,再利用我们后台传马的功能直接打死目标

看看其他可能的漏洞点,这类系统的漏洞点无非就是几个,我们只要关注如下地方

  • 相册

  • 附件

  • 上传

  • 系统环境管理

  • 系统更新

都测了一通过后,发现安全做的勉强还行,普通用户都没办法访问系统更新和系统环境管理这些后台功能,相册和附件那没有直接一眼低权可以访问的 get­shell 的点

只能第二个方法,我们看看目录结构

对于黑盒看目录结构,我们重点关注几个东西

  • 文件管理(filemanager),看看有无未授权

  • 开发工具(tools/develops),有没有开发遗留后门

  • 各类工具(utils),主要是看有没有未授权

  • 日志(log) , 主要是看有没有信息泄漏

  • 配置文件(config),其实一般看不出来啥,但是我写出来只是单纯觉得一旦能看出来啥就很厉害

  • 管理后台(admin),主要还是看未授权

注意是黑盒情况下,因为我们目前没办法获得完整源码,所以没办法深入查看详细业务去审计漏洞,实际白盒的话还有很多漏洞是会出现在业务代码里的

只要看到这些关键词,基本都是很有意思的东西,都可以想办法打开访问访问试试,看看有没有什么未授权接口或者开发遗留

其中有几个东西很有意思,一个是

实战 | 湾湾网站的肾透案例

这个文件夹下面很有可能会有开发的一些系统调试工具,比如 SQL 查询工具啊文件管理工具等 以及

实战 | 湾湾网站的肾透案例

虽然说是 iso,但是其实本质上应该还是个 zip 相关工具,就有可能出现 zip 畸形目录漏洞,利用../../ 这样逃逸导致任意文件写入之类的

以及顺手看了看后台 ad­min 目录下的内容,都是很有意思的东西

实战 | 湾湾网站的肾透案例

以及还有一个很好玩的文件

实战 | 湾湾网站的肾透案例

推测这是用于授权的证书,只不过这个 <?php,非常的有意思

简单初步黑盒测了一通,完全没有未授权接口,人都傻了,怎么办?开逆咯

source­guardian 12 加密,去淘宝查了下价格,一个文件 5R。这几千个文件,tnnd 逆到猴年马月,而且看都看不出来,没办法,只好装工具先自己手动看字节码逆了

实战 | 湾湾网站的肾透案例

装了个 vld,一个字节一个字节的看,对着 de­vel­op­tools 和 ad­min 下的东西,看了半天,P 都没看出来

人直接脑溢血,越想越气,越气就越怒,怒怒怒到极致邪气了,服气,不服不行,怎么办?恶像胆边伸,要不我们直接把开发商打了吧。

直接去代码里看这个开发商,很容易的看出开发商是谁

本系统由百 * 资通维护

进行一波信息搜集

实战 | 湾湾网站的肾透案例

甚至发现他们有 git

实战 | 湾湾网站的肾透案例
实战 | 湾湾网站的肾透案例

好,很有精神,就日它了!但是 TMD git 访问不到,怎么办?

以及一些 git 泄漏,但是都没什么卵用。

其他站点不是都是 eip­plus 这套系统的测试站,就是一个单纯啥都没有的前端。怎么办呢?

这时候,我们发现了一个东西

实战 | 湾湾网站的肾透案例

30 天免费试用?

抱着试一试的态度,注册了申请

实战 | 湾湾网站的肾透案例

结果真的发来了,乐,对自己的系统这么自信

实战 | 湾湾网站的肾透案例

这不干他?直接一眼顶针,故技重施,后台,系统管理,上传 LOGO 图片,一看,tmd 修了,上传失败

只能继续看其他东西了,继续回到刚刚的思路,系统环境管理看完了,看系统更新

实战 | 湾湾网站的肾透案例

更新 Saas 服务?以及刚刚 ad­min 目录下那个 saas.txt 并且带 <? 的 php 文件

实战 | 湾湾网站的肾透案例

嘿哟喂,这不巧了吗?于是乎,添加一句话

实战 | 湾湾网站的肾透案例

上传,死!果然,直接 liences 他们是直接用 in­clude 加载的,乐

实战 | 湾湾网站的肾透案例

顺带看了一下,他们这全套源码都是 ROOT 部署的,十分的 NB,web 目录全部没有权限写,只有这个 saas.txt 我们有权限修改

一看,不用打 git 了,他们部署的站点,直接就没加密,愉快的下源码

虽然说站点第二天就被应急了,ama­zone 有什么 agent 检测的吗?不知道怎么回事,不过这不碍事。

愉快开审咯!

继续整理现有资产

  • 我们拥有的:完整的白盒代码

  • 目标的低权限账户,虽然我们手头暂时没有,但是我们先假设我们有,辣么多员工如果一个账户都搞不到那还是别打肾透了.jpg,对自己自信一点

所以现在的需求很简单,就从之前的半黑盒完全转变成了白盒。这下门道就多多了。比如业务代码啊框架啊就有很多可以审的地方了

先按照找 Java 的管理,找 Fastjso... 噢不对,这是 PHP 代码,也一样。首先先看 au­toload 这类自动加载

实战 | 湾湾网站的肾透案例

一眼 Guz­zle­http

再搜 un­ser­al­ize,结果真的有!!

实战 | 湾湾网站的肾透案例

在 cal­en­darcsv_im­port.php 目录下,并且普通用户可以访问!

直接用 PH­PGGC 构造请求 (详细 pay­load 不是这样,要进行一些编码,但是这里为了方便查看就直接这样了,大家看看就行)

POST /eipplus/calendar/csv_import.phpaction=nextnext=1trans=111fieldsep=1cal_fields=O:24:'GuzzleHttpPsr7FnStream':2:{s:33:' GuzzleHttpPsr7FnStream methods';a:1:{s:5:'close';a:2:{i:0;O:23:'GuzzleHttpHandlerStack':3:{s:32:' GuzzleHttpHandlerStack handler';s:9:'phpinfo()';s:30:' GuzzleHttpHandlerStack stack';a:1:{i:0;a:1:{i:0;s:6:'assert';}}s:31:' GuzzleHttpHandlerStack cached';b:0;}i:1;s:7:'resolve';}}s:9:'_fn_close';a:2:{i:0;O:23:'GuzzleHttpHandlerStack':3:{s:32:' GuzzleHttpHandlerStack handler';s:9:'phpinfo()';s:30:' GuzzleHttpHandlerStack stack';a:1:{i:0;a:1:{i:0;s:6:'assert';}}s:31:' GuzzleHttpHandlerStack cached';b:0;}i:1;s:7:'resolve';}}
实战 | 湾湾网站的肾透案例

本地测试轻松写出

想着勾八目标直接写 web­shell tnnd 不就行了?结果想起来他们这全套都是部署在 ROOT 下面

不管了先试试!冲!

https://osheip.**.com.tw/eip­plus/home/in­dex.php 121pub­lic/121pub­lic

轻轻松松搞到个账户先

实战 | 湾湾网站的肾透案例
实战 | 湾湾网站的肾透案例
漏洞点也存在

写出!寄,没写成功,但是也不算太糟,至少已经成功了 98% 了,距离完美只差临门一脚

继续整理思路,现在我们已经有 get­shell 的方式了,虽然说 web 目录不可写,但是那个 saas.txt 文件是可以写的。并且 guz­zle 写文件用的是 file_put_­con­tents,默认写出是写相对路径,我们压根不需要 web 目录的绝对路径就能定位到 saas.txt 的地址。假如如果我们只要 get­shell 不管后续,我们只要用这个反序列化直接对着 saas.txt 覆盖成我们的马就行,但是这样会有一个问题

如果直接写的话就会覆盖原本 saas 配置,导致直接网站直接爆炸,并且就算我们 get­shell 后,也没办法恢复成原样,因为我们压根不知道原本的 saas 配置导致光速被发现。所以我们就只剩下最后一个目标,挖个洞。把 saas.txt 下回来!,然后在夜深人静的时候,光速写入 saas.txt,连上 shell 再把 saas.txt 改回去。

接下来就面临噩梦了,必须得审业务代码,他们这个 B 代码总共有 500M,属于是最害怕的一集出现了!!

没办法,硬着头皮上了,什么 file_get_­con­tents 啊,fopen 啊什么一大堆看了一遍,不是修了就是写的十分的安全。痛苦,悲

看了两个多小时,终于终于终于终于终于,不愧是天天天天天才的我,终于读成功了。

继续回到上面一个重点关注列表:

  • 相册(输)

  • 附件

  • 上传(输)

  • 系统环境管理(输)

  • 系统更新 (输)

具体流程如下:

发布帖子

实战 | 湾湾网站的肾透案例
随便添加个附件
实战 | 湾湾网站的肾透案例
抓包,修改tmp_name,让他进行跨目录
实战 | 湾湾网站的肾透案例
直接查看源码,在common_functions.inc.php中,可以发现代码对于tmp_name是直接进行拼接的,没有任何过滤!!!

然后我们发布文件后,下载的文件就会变成我们的 tm­p_­name 的文件。只要我们把 tm­p_­name,指向 saas.txt 这个文件,然后发布,然后再下载我们自己的附件,就可以把 saas.txt 下回来了!爽!

不愧是我,天才中的天才

本地测试成功,远程测试成功

实战 | 湾湾网站的肾透案例

saas.txt 下回来成功,现在所有拼图都已经集齐

现在就是等待夜深人静的时候上去 csv_im­port 啪的一下打死这破站,然后开开心心的冲内网美滋滋了

为了防止被发现,开始清理帖子走人,成败就等夜深人静时刻

然后。。。。就没有然后了。

实战 | 湾湾网站的肾透案例

晚上回来,发现,无法登录了都。。

天才你 mlg 臭嗨,笨比,你就是个纯纯纯纯笨比,笨比中的笨比,啊啊啊啊啊

原来笨比,竟是我自己。

当我沉浸在下回 saas.txt 洋洋得意中的时候,我手贱删除了帖子。

但是我没有意识到,删除贴子的时候,会删除附件,然后由于这个帖子的附件已经成功被我重定向到 saas.txt,我一删除附件,saas.txt 也就跟着一起消失了。

然后站就这么炸了,一键白打。

文章作者:9bie
文章来源:https://9bie.org/index.php/archives/982/


原文始发于微信公众号(渗透安全团队):实战 | 湾湾网站的肾透案例

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月7日16:35:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战 | 湾湾网站的肾透案例http://cn-sec.com/archives/3043357.html

发表评论

匿名网友 填写信息