ctcms任意文件上传

isnull   ·   发表于 2019-03-29 13:07:02   ·   漏洞文章

漏洞位置: 个人中心-资料设置-资料修改-头像处

漏洞证明:

选择任意图片上传,拦截保存修改请求包:

修改数据包中内容:

将filename设置为x.html

参数内容为:<html><head><imgsrc=x onerror=alert(1)></head></html>


放过所有请求后,查看头像图片的URL,已经变成了刚才上传的文件url:

访问头像文件url,js代码就会被执行。

但在尝试上传php文件的时候,发现服务器后端做了限制,对php,jsp和asp的动态脚本文件做了限制。

猜测后端使用黑名单方式限制上传文件,黑名单限制也可以通过其他方式绕过,尝试了通过.htaccess来使其他后缀名文件当做php来执行:

但发现服务器端会给文件做强制重命名处理,xxxx.htaccess无法被apache服务器解析,尝试通过./等方式将随机文件名转换为目录也失败。

尝试了其他例如”%00”,”. ”,”;. ”等等方式都失败了。

但通过Windows文件流特性绕过,成功上传了php文件,拿到shell:

上传常规php文件,后缀名后加上 (::$DATA)

再次查看头像URL,发现指向的是后缀名为.php::$DATA的文件:

在浏览器访问头像URL,去掉后缀名的::$DATA

上传的PHP命令已经成功执行。


打赏我,让我更有动力~

1 条回复   |  直到 2019-3-29 | 1693 次浏览

18534715561
发表于 2019-3-29

这是什么时间的漏洞

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.