实战渗透-从FCkeditor敏感信息泄露到Getshell
前言:
挖edusrc的日常思路,欢迎各位大佬指点不足
注:未经允许,禁止转载!
信息收集:
为了锻炼定向渗透能力,这段时间特地找了几个站练手,顺便冲一手edusrc排名。
目标信息如下:
一个数据采集与管理平台
中间件: IIS 7.5 开发语言: ASP.NET
目标前端只提供了登录和找回密码功能
初步尝试爆破后,无果~~~
目录探测:
既然弱口令没啥结果,那就只有按照常规思路来了。。。
先使用御剑简单的探测一下目录
在某处发现了FCkeditor
由于NET版本,印象里是有一个目录遍历的。
路径:
/FCkeditor/editor/filemanager/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=File&CurrentFolder=
初步探测:
确认目标系统存在目标遍历漏洞,且服务器安装了360产品。
那么可以先简单的探测下当前Web目录有无备份文件之类的。可以直接下载
最终在D盘确定了几处目录文件
目标下存在4个相同结构的目录。无法判断谁才是真正的根目录。
最终在Upload下面发现了一个 t.txt 文件
这个文件在其他目录下是不存在,且通过当前域名可以正常访问此文件,因此确认路径。
这里本想着翻一翻有无备份文件的,可当前根目录下没有任何压缩包文件,所以打消这类念头。
在upload下面也发现了一些xls 表格,但内容为空。
万物皆可Fuzz:
最终在某处发现了一个ashx接口文件:
文件名为:`UploadHandler
这里我打算盲打一波:
先手动访问下这个接口文件,看看返回内容是啥,后面方便进行对比。
以GET形式请求该文件,返回数字0。
那么这里可以得出结论,上传成功为数字1 或以上。
构造POC:
<form action="handler.ashx" method="post" enctype="multipart/form-data" >
<input type="file" name="file"/>
<input type="submit" value="提交"/>
</form>
Burp Suite 抓取数据包,尝试手动重放。
结果还是返回0
那么这里可以确定后端写法如下:
常规写法:
this.Request.Files[0] //取第一个值
固定取值写法:
this.Request.Files['file'] //取固定参数的内容
当前后端写法为后者,取固定值,也就是说后端按固定参数取值。
按照日常的经验,写了一些常见的参数值字典
尝试Fuzz
得到回显 1 ,猜想文件已经上传。
然后继续使用Fckeditor探测上传路径
在接口所在目录下发现文件
确定好目录和参数后,尝试上传apsx的文件
得到回显1,证明成功上传。Fuckeditor下面查看一下
上传成功~~~~~~
注:相关漏洞详情已提交至EDUSRC。
大佬思路是真清晰, 怎么做到思路这么清晰的?
远海表哥,这里 "当前后端写法为后者,取固定值,也就是说后端按固定参数取值" 有点不了解,这个是怎么判断出来的
@kand 熟悉过开发的都知道,固定参数取值,拿php来说,要取get形式从参数值。往往使用$_GET['参数名']。这种方法是取固定的参数名,比如?P=1,那么必须以$_GET['p']去获取。如果我不想按照参数名取,我只取第一个该如何获取呢?在net中的文件上传可以用数字来代替。如FILES[0].取的就是第一个文件流。就好像不管传递多少个参数,我只要第一个。不论参数名是啥
海哥强啊
大佬那个字典是啥字典,能分享下吗
@sh3ll https://github.com/yuanhaiGreg/Fuzz-Dict/
会持续更新,目前记录的,都是我再实战中遇到的
太猛了
哥为啥思路这么骚,带带弟弟
远海表哥yyds
远海表哥yyds ::aru:crying::
大佬TQL `~远海大佬永远滴神