某次无中生有的getshell过程
0x01 写在前面
某次对目标的渗透中,发现了疑似前台上传漏洞,反复测试后无法成功利用,多方探寻最终成功getshell的过程。
0x02 信息收集
这次的目标是一个APP分发平台,对这一类的网站接触较少,事实上大都存在漏洞。
IPlocation:HK
环境:nginx + mysql + php
0x03 前台上传漏洞发现
打开首页,赫然发现登录与注册:
常规注册:
常规登录:
映入眼帘的便是一处上传,真是踏破铁鞋无觅处,安排!
我们先测试上传功能是否正常,先传个apk测试,当然了,这里不能没有我们的神器burp:
这个返回有点奇怪,是上传点的问题?还是检验了apk的真实性?为了验证答案,我们到应用宝随便下了个apk包,再次尝试:
成功传上去了,说明上传点是没有问题的,看下请求包:
与刚才上传失败的请求包没有太大的异同,说明刚才其实也是上传成功了,只是没解析出来apk应用。
我们继续,该祭出我们的shell了,直接php后缀走起:
不出所料,卡在了解析应用这个步骤,但是请求包是没有问题了,到这里顿时感觉有戏。
0x04 踩坑过程
webshell成功上传上去了,但是此时的我并没有露出猥琐的微笑,因为此时遇到了一个世纪难题,php传到哪去了?
遇事莫慌,还记得刚才上传的apk吗?我们查找apk的上传路径,再顺推出php的上传路径不就完事了吗。点击管理:
果然发现apk地址,顺便还发现了另一处上传点:
愉快得点击提取:
what?竟然是MD5命名,你绝对是在刚我!不慌,先复制出文件路径:
https://www.xxxxx.com/data/attachment/5b324d160ef9bc0a5843235e6ebf9fce.apk
这里我们只能盲猜MD5的加密方式了,想起返回包中有时间戳参数,难道就是时间戳MD5命名,尝试一下:
看来事情并没有那么简单!此时我们又心生一计,既然我不知道你的MD5加密方式,那我找到你的源码不就知道了吗?嗯哼,百度谷歌大法:
在各大搜索引擎搜索了app分发平台源码、零度云分发平台源码、囤主题分发源码
等关键词后,发现源码大都需要付费下载。
这里并不是我们抠门,而是万一我们下载回来的源码和目标对应不上那我们不就损失大发了(其实还是抠_)。好在我们还是得到了一份免费的源码:
但是遗憾的是这个源码并没有/source/pack/upload/index-uplog.php
,简单查看了index-uping.php
的代码,发现并没有apk文件后缀的处理:
uplog.php
也没有有用的发现:
此时我们还不能放弃,通过fofa搜索关键词,我们可以找到很多类似的模板,后面的工作就是通过批量扫描网站备份文件来获取源码了。
0x05 突破
在扫描了N个同类型模板备份文件后,依然没有获得我们想要的源码,正在苦恼之际,无意中点开同类型网站的一个robots:
EarCMS?踏破铁鞋无觅处,得来还挺费功夫!火速百度:
what?已经有相关的分析文章了,一秒十行的速度通读了全文,原来我们的shell躺着/data/tmp/
下,名字竟然只是时间戳!!
火速测试:
诚不欺我!shell到手,上蚁剑:
打完收工。
0x06 写在最后
此次案例再次体现了信息收集的重要性!做好信息收集能让我们少走太多冤枉路。渗透的本质是信息收集~!