原文地址

一开始是奔着dz去的,注册了个账号,想试一下任意文件删除然后重装getshell,当然。。。失败了。。最新版dz。

然后有个老铁说有个旁站,是一个发卡平台,抄出我的google大法搜到了别人破解的源码。 然后丢到环境里搭起来晾着。

nmap扫端口扫到了两个开放http的端口一个是88,一个是888.

打开后发现888是宝塔的管理面板。

当时我就装了个宝塔打算巴拉巴拉一波,静态跑一遍之后忽然想起今天要上班还是不看宝塔了,转而去发卡平台源码巴拉巴拉。

上代码审计工具看了下,没有过滤,注入是肯定有的,但是我并不想注入。。。因为。。。我不会mysql。。。

随便贴张图吧
日一个毛片网站-ChaBug安全
那么问题来了,注入不搞的话怎么去getshell或者弄管理员密码呢?

全部巴拉巴拉了一遍源码之后发现一个文件没有校验登陆状态。唔。。。没错 那是个ajax.php

只要参数正确就可以传递内容过去。

这是密码修改的后端代码
日一个毛片网站-ChaBug安全
请求大概是这样
日一个毛片网站-ChaBug安全
就这样我们修改成功了。。。。

然后就是怎么get个shell。。。

看了几个功能之后觉得可以试试上传文件。。但是上传绕过太烦。。

代码如下
日一个毛片网站-ChaBug安全
这时看到了一个echo的东西。。。这是个很重要的突破点

代码如下
日一个毛片网站-ChaBug安全
之前我们说过这个程序没有过滤之类的操作,

so。。看一下这个emailconfig.php是长什么样
日一个毛片网站-ChaBug安全
我突然想到了存储型xss,从存储型xss想到了前后代码补全get个shell。。。

先搓一个五毛钱的phpinfo
日一个毛片网站-ChaBug安全
提交之后返回修改邮件的标签可以发现如下情况
日一个毛片网站-ChaBug安全
ojbk再搓一个一块钱的shell
日一个毛片网站-ChaBug安全
然而很不幸的是。。。500错误了。。。在看了一下phpinfo打印的信息发现。。。
日一个毛片网站-ChaBug安全
全都GG了。。

这种情况很尴尬。。。非常的尴尬。。。

欣赏了一会音乐之后想起我为什么不读一下文件试试?毕竟mysql是开放的,于是乎。。。去读了dz的配置文件

还行啦这玩意居然是root账号。。。

当时我就操出我的mysql udf准备扫操作一波。。。但是忽然发现root不能远程登陆。。于是再搓一个远程登陆的查询语句

大概是这样 ,然后刷新一下php页面就能远程连接了。

这时我还要读一下目录看看plugin文件夹在不在。。。于是又搓了一个读文件夹的代码

print_r(glob($_GET['id']. '/*' , GLOB_ONLYDIR));
唔。。事实证明并没有plugin目录。。。gg。。

这时我又继续听歌。。突然我想起这玩意目录里有个aspnet_client

能不能搓个asp?

于是又搓了一行代码用来创建asp文件

file_put_contents('one.asp', '');
于是。。生成了一个asp的shell。。访问成功
日一个毛片网站-ChaBug安全
这时。。。开始创建个mysql的plugin目录用于传udf。。。然而折腾了一会之后发现udf加载失败。。。头大。。。放弃这个方案。

这是我们开始打宝塔的主意,

巴拉巴拉找到了宝塔的数据库文件。。是个sqli。。直接打开发现是MD5加密的密码。。。。唔。。。cmd5查不到。。。

突然间我又突发奇想。。。宝塔的网站目录能不能读?

事实证明是可以的。。。
日一个毛片网站-ChaBug安全
于是去看了下login.php

唔。。。直接改登陆认证。。。
13.png

然后就登陆上了宝塔的面板。。。。

翻了一圈没找到个执行命令的地方 有个计划任务还不执行。。这就很蛋疼。。。

抽了两根烟。。又翻了下宝塔的文件夹。。。突然灵光一现。。这TM宝塔还有个独立的php环境。。。搓开php.ini发现没有过滤。。。。ojbk直接传个php到宝塔面板根目录
日一个毛片网站-ChaBug安全
我们终于从iis_user变成了system。。。

唔。。接下来就简单了。。。创个用户。。远程登陆。。。脱裤脱源码。。。。收工
15.png