安全矩阵

 找回密码
 立即注册
搜索
查看: 1383|回复: 0

记一次渗透某XX站

[复制链接]

65

主题

65

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
发表于 2022-7-20 20:40:17 | 显示全部楼层 |阅读模式
本帖最后由 PEnticE 于 2022-7-20 20:41 编辑

记一次渗透某XX站 (qq.com) 0x01 前言
团队A师傅发来个站,问我有没有得搞


正好在搞其他的站,卡住了,开干换个思路。

0x02 信息收集
开burp抓了下包,目标设置了url重写,开了报错,我们随意输入一个控制器就直接报错。


获取到web绝对路径。抓包发现这样的请求


随手试了一下burpsuite的dnslog,发现请求过去并回显了,猜测后端使用file_get_contens来获取。

一个可回显ssrf,有什么用呢?打内网?

尝试file协议,尝试读取文件,发现可以读。


但发现返回的内容不完整,猜测有截断,用php://filter协议base64编码一下绕过读取。


解码


有一个任意文件读取有什么用呢?在这之前,其实是有用nmap扫了一下其他端口


开了挺多端口的,一个个测了一下发现999端口开着phpmyadmin。


结合任意文件读取,那么只要我们读取出mysql的账号密码即可进入phpmyadmin,之后的getshell方法就很多了。

thinkphp的目录结构根据官方文档一般都长这样。


而数据库文件一般是放在common/conf下面的。简单猜了会,尝试读取index控制器。

之前的报错其实已经放出了index控制器在那个模块下面了,就是默认的home模块。


读取


没有返回,猜测是application目录改名了,结合之前的审计经验,一般会改为app。

再读取,成功。


接下来就是猜数据库文件存放的位置,一般会存放在common模块下面的config.php或者db.php,尝试了一下config.php,命中。


Base64解码得出源文件。


拿到账号密码,直奔phpmyadmin。输入账号密码,回车,登陆成功。


后面拿shell就给A师傅去弄了。

0x03 URL Rewrite的一些疑惑
题外话:因为之前帮朋友搞了一些站也是这样的,有文件上传直接拿shell,但是没有办法访问,访问提示:


有拿到源码,.htaccess里面有对url重写,比如长这样的。


之前上传没法访问一直以为是重写的问题。

但其实也可能不是,有可能是马儿被杀了缘故,当文件不存在的时候才会提示这样。

在本地测试,拉了个thinkphp 3.2.3的项目,htaccess一样配置。


在根目录下写入个test.php,内容为phpinfo。可以直接访问。


删掉test.php,报错


换到二级目录下继续测试:


不存在文件的时候同样提示:

后面深入研究了一下那份源码发现也不是马儿被杀了的原因,应该由于它的分割符问题。不是传统的/,而是点号,传统的文件路径访问与路由冲突了,最终也就没办法访问到uploads目录下的shell。

没想出对于这种路由有啥办法可以解决的,如果有知道的师傅欢迎评论交流。

更新:那个有问题的站也拿下了,原因确实是没有文件导致的,至于为什么没有写入成功又是另外一回事了。

更新2:感谢love17师傅的评论,关于htaccess的理解之前确实不对,删掉了,不误人子弟。

0x04 拿shell
由于上面的疑惑,生成了我错误的认知,导致我以为拿shell会比较麻烦,我的思路是phpmyadmin 日志方式导出一个符合thinkphp路由的shell到相应的控制器下,以绕过路由的检测。

但A师傅说直接into outfile到images目录就可以了,那就是mysql版本不高也没有secure_file_priv的问题,直接导出shell了。


我:emmmmm

0x05 总结
对于rewrite语法,路由不熟悉导致了后续一系列问题,错误的认知还把自己带坑里面去了。多开脑子容易秀逗。。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-28 18:37 , Processed in 0.012356 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表