kkfileview漏洞修复及加固
小程序很久之前出过一个功能——文件在线预览。功能是在小程序中直接打开word、excel、压缩包等等在微信中无法打开的文件。
然后前几天突然看到一封邮件。
然后上去看了一下,发现还真有人拿我的网站搞色色。上面这个链接现在肯定也失效了,大家就不要去试了,内容大概是这种东西(可能有些人会觉得眼熟):
这个功能使用的是开源项目kkfileview(https://github.com/kekingcn/kkFileView)进行实现,我是用docker部署了4.1.0版本 。
4.1.0不是最新版本,想使用最新版本,需要加他们的星球,99块一位。当然也自行打包,源码完全提供。
项目部署一开始我就在nginx中禁用了上传,以为是程序漏洞,日志太多懒得翻,所以干脆fork了一下他们的代码,重新打包到我自己的docker镜像库,并拉取替换了本地部署。
重点来了
昨天上班特意观察了一下:
发现压根不是上传接口的漏而是用了SSRF + 存储型 XSS 组合漏洞。服务器替攻击者下载并缓存了远程 HTML,kkFileView然后把下载结果放到自己的静态目录,再用 iframe/iframe-like 方式渲染,攻击文件就拥有了与服务同源的执行环境,只能说幸好是docker部署的。
后续就是把代码改了下加了几个功能:
- 危险文件类型过滤,比如HTML、JS、PHP等潜在有害的文件类型。
- 域名白名单控制,限制只能访问可信域名的文件。
- 内容安全扫描,阻止文件中可能存在的恶意内容
- 安全日志记录,对日志中的敏感URL进行脱敏处理
- github workflow自动化构建,修改版本号并提交git时,会自动打amd、arm架构的包推送到docker和github的镜像库。
修改后的代码地址:https://github.com/chenqi92/kkFileView
修改后的docker镜像:kkape/kkfileview:latest
今天看了下日志
对方果然还在尝试,不过也没成功就是了。
查了下攻击者
这个域名xtdrug——系统毒药,说实话感觉就不是奔着正经用途去的。
几种可能:
- 他们在搞灰产
- 他们系统也被黑客被入侵了。
- 域名不是他们的,但是忘记注销备案了。也是基于这一点我打了个码。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 共赴良策!
评论