实战|某面试靶场GetShell的艰难历程

2020-12-03 16:00:18 浏览数 (1)

前言:最近开始有点不太想学习新东西,突然翻到自己以前玩的几个面试靶场笔记还挺有意思的,正好趁这个时间重温一下,重新梳理一下坑点。 ——Liberty@Timeline Sec

正文:

1、拿到靶场地址给了两个提示:

(1)存在泄露文件(2)注意.htaccess文件

目标:远程登录到桌面

思考:

首先从提示来说大概猜测一下思路:

(1)泄露的文件可能会泄露如账号密码,或者是一些历史操作记录,源码文件等可提供到一些关键步骤的信息

(2).htaccess文件的话可能会考虑到存在上传点,利用.htaccess进行上传绕过

知识点:.htaccess文件

htaccess 文件是Apache服务器中的一个配置文件,用于实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能

2、提示给了存在泄露文件直接开始扫目录,看下扫出来的泄露文件是什么内容

可惜的是并没有扫出来泄露的文件,不过从扫出来的目录中可以看到有个报错页面,显示出了靶场用的thinkphp和phpstudy搭建的

3、尝试了网上爆的一些关于thinkphp和phpstudy的漏洞,都没有实际的一些进展

4、既然不能直接rce也没扫出泄露的文件,猜测的话可能是字典不够大,又换了个御剑继续扫目录,然后换个思路既然需要用到.htaccess文件,那应该是要去找上传点,注册了一个账号,发现前台的话只有一个上传点,就是头像

上传点处可以上传任意文件,一开始直接上传php文件竟然也直接回显了路径给我,以为已经稳了(手动滑稽)但是测试好像除了jpg.png.gif其他的文件都会显示说没有权限

尝试上传.htaccess文件绕过,测试之后发现还是不行,传上去的.htaccess文件和shell文件都说没有权限访问(这个上传点卡了很久,一直在尝试不同的绕过姿势)

5、尝试了很久都不行,猜错的话可能是前台上传做了一定的限制,只能先暂时留着这个点,看了一眼御剑发现还是没扫出备份文件,就连后台都没扫出来,直接当场裂开(这不是让我八百万字典难堪吗?)难道还是什么其他的姿势来获取这个泄露文件吗?

6、看来想通过提示快速的打开缺口的方式好像不行,只能好好看一下站点功能,寻找一些其他的漏洞。测试了很多功能点都没有测试出一些能有帮助拿权限的漏洞,而且看网站都是.html的页面这咋搞呀?

7、问了一下自己这个问题,html页面的话是不是有可能是伪静态页面呢?终于找到了一个注入打开了缺口(这里有个注意的地方就是伪静态页面用sqlmap跑的话,得要用*来指定参数才能识别,要不然就跑不出来)

http://xxx/help/fram/xxx/zjry*.html

成功找到了管理员的账号密码和后台登录地址(这里的后台是自己重新定义的怪不得扫不出来)

8、登录后台在一个功能点处可以直接查看目录文件,终于找到了泄露的文件,wwwroot.zip这么简单的文件名竟然都没扫出来,直接哭了。发现style目录下有用ueditor和kindeditor编辑器,想到可能存在上传的漏洞,尝试发现还是不行,这上传点都给限制的死死的呀!!!

9、下载下来之后查看源码文件的.htaccess文件,终于知道之前前台上传的点为什么一直都显示无权限了,是对UP目录下的php文件进行了限制,会跳转到error页面,然后编辑器的点查看源码也是对上传的后缀进行了白名单限制

继续搜索了一下config,index,lib,admin等敏感文件,发现了数据库的配置信息,尝试连接失败,telnet了一下端口原来端口都没对外开放

10、找到网站设置这个地方可以设置参数代码,尝试直接写入一句话

全局搜索找一下这个功能的地址/Admin/global/,跟进找到了GlobalAction.class.php这个文件

因为审计不是很强,用seay扫了一下发现有可能存在任意文件写入漏洞,然后自己读了一下扫出来的位置

大概的读了一下意思就是如果有一个100的data参数并且不等于url变量,就会把$path文件删除然后重新赋值,这里看可控的变量就是这个url,然后data的值又会给url

直接尝试构造一句话,写进去直接连shell之后发现后台访问不了了,直接GG,然后查看了一下写进去的内容发现是语句没构造好,重新替换一下文件恢复后台访问

11、之后就是常规的执行命令远程登录,在这里倒是没有做什么限制,直接整就完事

总结:

整个过程下来其实有可能Getshell的点挺多的,但是大部分都给做了限制,尤其是通过上传来getshell的方法给限制的比较难受,上传的点很容易纠结和尝试很长的时间,后面发现.htaccess文件直接定义限制了UF目录下的可执行文件,还有就是伪静态页面好久才想到这个点,经验还是有点不足。

总体来说主要的考点还是放在代码审计方面,后面重新浏览后台功能,虽然发现了可写入的点,但是因为自己对代码这一块属实不太熟悉,导致没写好payload影响到了后台,php这块还是太垃圾了。

关注我们看更多实战文章

Timeline Sec 团队

安全路上,与你并肩前行

0 人点赞