从任意文件读取到GetShell
背景:
客户收到钓鱼短信,打开之后发现是一个上传身份证的应用,以下步骤是对该网站的一次测试。
起手
先到处点了下,身份证是上传到OSS的,功能比较单一,pass。跑一下子域名看看
搜集信息
上lijiejie的subDomainsBrute,然后跑了几个子域名,发现其中一个子域名比较有意思: admin1.example.com。打开一看,左边一个大大的测试环境,是一个登录管理的页面,随手测了弱密码: admin/admin1234登录成功。
任意文件读取
在后台发现可以编辑上传图片,有一个接口是读取图片的,此处存在任意文件读取漏洞:
先缓一下,用扫描器扫一扫这个IP都运行了什么鬼:
此时有点懵,不知道从那个地方入手读文件,这么多http服务。先读了/root/.bash_history 和/etc/shadow都可以成功,shadow先放着不动,最后日不动再回来看,读完/root/.bash_history就会对这个系统有一个大概的认识。
GetShell
寻思了下8888端口跑的是某塔,显示不是安全入口。搜了下,这个面板为了安全把安全入口隐藏了,安全入口的路径是:/www/server/panel/data/admin_path.pl
, 然后利用任意文件读取漏洞读一下,获取该路径,此时有了登录入口。
从github下载源代码,看了下密码存储是以md5的形势放在SQLite里面: /www/server/panel/data/default.db
,读一下然后save to file保存到本地,用naticat读取数据库,得到登录的账号密码,然后去cmd5查一下,GET。
@drea****ruiss 这个姿势骚气,刚前段时间看到ctf里面ssrf读取文件的,没有想到这个点,谢谢。刚测了下没有ssrf,谢谢
任意文件读取下可以试下是否可以ssrf,通过http协议访问阿里云的元数据接口,查看是否有ak,sk,这样可以获取oss的存储权限。