前言:最近开始有点不太想学习新东西,突然翻到自己以前玩的几个面试靶场笔记还挺有意思的,正好趁这个时间重温一下,重新梳理一下坑点。PS:小弟很菜,大佬轻喷
正文:
拿到靶场地址给了两个提示:
1.存在泄露文件
2.注意.htaccess文件
目标:远程登录到桌面
思考:
首先从提示来说大概猜测一下思路
知识点:.htaccess文件
htaccess 文件是Apache服务器中的一个配置文件,用于实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
提示给了存在泄露文件直接开始扫目录,看下扫出来的泄露文件是什么内容,可惜的是并没有扫出来泄露的文件,不过从扫出来的目录中可以看到有个报错页面,显示出了靶场用的thinkphp和phpstudy搭建的。
尝试了网上爆的一些关于thinkphp和phpstudy的漏洞,都没有实际的一些进展
既然不能直接rce也没扫出泄露的文件,猜测的话可能是字典不够大,又换了个御剑继续扫目录,然后换个思路既然需要用到.htaccess文件那应该是要去找上传点,注册了一个账号,发现前台的话只有一个上传点,就是头像。上传点处可以上传任意文件,一开始直接上传php文件竟然也直接回显了路径给我,以为已经稳了(手动滑稽)但是测试好像除了jpg.png.gif其他的文件都会显示说没有权限。尝试上传.htaccess文件绕过,测试之后发现还是不行,传上去的.htaccess文件和shell文件都说没有权限访问(这个上传点卡了很久,一直在尝试不同的绕过姿势)
尝试了很久都不行,猜错的话可能是前台上传做了一定的限制,只能先暂时留着这个点,看了一眼御剑发现还是没扫出备份文件,就连后台都没扫出来,直接当场裂开(这不是让我八百万字典难堪吗?)难道还是什么其他的姿势来获取这个泄露文件吗?
看来想通过提示快速的打开缺口的方式好像不行,只能好好看一下站点功能,寻找一些其他的漏洞。测试了很多功能点都没有测试出一些能有帮助拿权限的漏洞,而且看网站都是.html的页面这咋搞呀?
问了一下自己这个问题,html页面的话是不是有可能是伪静态页面呢?终于找到了一个注入打开了缺口http://xxx/help/fram/xxx/zjry*.html(这里有个注意的地方就是伪静态页面用sqlmap跑的话,得要用*来指定参数才能识别,要不然就跑不出来),成功找到了管理员的账号密码和后台登录地址(这里的后台是自己重新定义的怪不得扫不出来)
登录后台在一个功能点处可以直接查看目录文件,终于找到了泄露的文件,wwwroot.zip这么简单的文件名竟然都没扫出来,直接哭了。发现style目录下有用ueditor和kindeditor编辑器,想到可能存在上传的漏洞,尝试发现还是不行,这上传点都给限制的死死的呀!!!
下载下来之后查看源码文件的.htaccess文件,终于知道之前前台上传的点为什么一直都显示无权限了,是对UP目录下的php文件进行了限制,会跳转到error页面,然后编辑器的点查看源码也是对上传的后缀进行了白名单限制。
继续搜索了一下config,index,lib,admin等敏感文件,发现了数据库的配置信息,尝试连接失败,telnet了一下端口原来端口都没对外开放。
找到网站设置这个地方可以设置参数代码,尝试直接写入一句话。
全局搜索找一下这个功能的地址/Admin/global/,跟进找到了GlobalAction.class.php这个文件
因为审计不是很强,用seay扫了一下发现有可能存在任意文件写入漏洞,然后自己读了一下扫出来的位置
大概的读了一下意思就是如果有一个100的data参数并且不等于url变量,就会把$path文件删除然后重新赋值,这里看可控的变量就是这个url,然后data的值又会给url,直接尝试构造一句话,写进去直接连shell之后发现后台访问不了了,直接GG,然后查看了一下写进去的内容发现是语句没构造好,重新替换一下文件恢复后台访问。
之后就是常规的执行命令远程登录,在这里倒是没有做什么限制,直接整就完事。
总结:整个过程下来其实有可能Getshell的点挺多的,但是大部分都给做了限制,尤其是通过上传来getshell的方法给限制的比较难受,上传的点很容易纠结和尝试很长的时间,后面发现.htaccess文件直接定义限制了UF目录下的可执行文件,还有就是伪静态页面好久才想到这个点,经验还是有点不足。总体来说主要的考点还是放在代码审计方面,后面重新浏览后台功能,虽然发现了可写入的点,但是因为自己对代码这一块属实不太熟悉,导致没写好payload影响到了后台,php这块还是太垃圾了。