小程序很久之前出过一个功能——文件在线预览。功能是在小程序中直接打开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——系统毒药,说实话感觉就不是奔着正经用途去的。

注册商

几种可能:

  • 他们在搞灰产
  • 他们系统也被黑客被入侵了。
  • 域名不是他们的,但是忘记注销备案了。也是基于这一点我打了个码。