实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露

  • A+
所属分类:安全文章


点击上方蓝字关注我吧






记录一下渗透过程中的思路以及遇到的难点,不足之处还请各位大佬多多包涵。



拿到目标站点:http://**.****.cn


首先针对目标进行子域名收集


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


发现存在http://t**.****.cn域名,为测试系统


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


URL后面随便输入个目录,发现是ThinkPHP 3.2.3的系统,目前公开渠道没有可直接GetShell的漏洞


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


尝试加上/admin可以进入到后台登录页,使用Burp挂载弱口令Top1000爆破无果


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


根据IP解析情况分析网站未使用WAF、CDN等服务,直接为真实IP,非云服务器,为运营商企业宽带IP地址,针对端口扫描存在大量开放端口,但是针对MySQL、SSH等服务的爆破也无果


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


针对同服网站信息搜集未找到其他相关站点,此时返回目标网站前台尝试继续寻找突破口,使用测试手机号Top1000搭配弱口令123456成功爆破出一个前台测试账号


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露



发现这个账号存在多个订单


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


Burp抓包找到获取订单信息的接口,尝试修改UID发现可以越权获取到整站订单信息


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


此时原本已打算就此结束,发现在前台存在某个功能


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


此功能指向了另外一个URL:http://x*.***.net

实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


尝试添加/install发现是使用了一个返利系统搭建的,随后请群内做代码审计的师傅对这套系统的代码进行分析,无从下手


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


针对这个域名进行子域收集发现只解析了x*、w*以及根域


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


访问后发现根域搭建的也是一个ThinkPHP的程序,版本为5.0.24,同时根据服务器网卡IP 172.*及网站公网IP和上一个站处于同C段,猜测同位于此公司内网中


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


根据报错信息可判断站点开启了debug模式,团队内的师傅刚好掌握一个ThinkPHP 5.X版本的BUG,在某些情况下可以直接获取数据库相关信息,针对此站点进行测试后发现恰好存在这个问题


问题主要出在thinkphplibrarythinkdbBuilder.php中buildWhereparseWhereItem

实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


当处于debug模式下时,如果数据库抛出错误,那么ThinkPHP就会一起报错,并输出数据库配置信息。


也就是说,可以通过爆破或空连接等方式来使MySQL拒绝服务,同时一直尝试请求Web端页面,就会有几率导致ThinkPHP抛出数据库配置信息


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


最终导致ThinkPHP报错,泄露数据库地址账号密码


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露


两个站使用了同一个库,从库中获取到后台管理员账号密码,进入后台getshell


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露




实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露
实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露
公众号ID:NearSec

扫码关注最新动态


实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露
你的每个点赞,我都认真当成了喜欢



本文始发于微信公众号(台下言书):实战技巧|利用ThinkPHP5.X的BUG实现数据库信息泄露

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: