一次不一样的目录遍历到GetShell
2021-7-19 19:3:50 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

一、概述

本文分享对某个目标GetShell的全过程。

二、正文

1、目录遍历

先摸了一下,目标tp5.0.9,开了debug但是RCE都修了,随手访问一下runtime目录。

发现Apache配置错误,导致了目录遍历漏洞,

2、窃取会话ID

其中session文件夹保存着对应的session_id,如果有管理员登陆过的session_id,那么可以直接登陆后台,翻了一下,翻到一个。

3、构造Cookie登录后台

直接设置cookie:

PHPSESSID=omdp4xxxxxxxxxxxxxx

访问URL:

http://www.xxx.com/admin/index/index.html

成功登陆后台:

4、尝试修改文件上传配置

在系统参数可修改上传参数,添加php后缀

虽然可修改后缀,有上传接口,但是系统的默认上传文件组件为ueditor,不受后台参数所配置,无法上传webshell。

5、利用HTML源代码推测接口

不死心,分析了会网页源码接口:

由/admin/file/del.html 接口推测可能存在接口:/admin/file/upload.html

6、利用Debug信息构造请求

直接访问该路径,因为缺乏参数,导致程序报错,获取到上传关键源码信息。

看到关键点,允许上传的文件类型取于数据库,很有可能就是我们配置的地方。

构造文件上传的请求包:

7、Getshell

虽然由于创建缩略图过不了getimagesize导致报错,但是前面的php文件其实已经创建完成,在报错里面可以获取到路径,最终拿到webshell。

三、总结

目标站点使用了框架ThinkPHP5.0.9,但是RCE漏洞已经修复;凭借对ThinkPHP多年的理解通过访问Runtime目录获取到后台用户的sessionid,并成功登录后台;尝试通过修改文件上传配置,上传WEBSHELL,失败;通过其他接口推测出另外一个上传接口;通过Debug泄露的信息构造请求包,成功GETSHELL;

微信扫描二维码,关注我的公众号


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg4ODU4ODYzOQ==&mid=2247484147&idx=1&sn=286b2f6f496539b72dfce198b9350990&chksm=cff992c3f88e1bd57e924b77c180f18e431d66f56fba831462bd126cdae59e71221d8cb209e3&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh