Lila项目路径遍历漏洞分析:从漏洞发现到修复全过程

本文详细记录了Lila项目中一个路径遍历漏洞的完整发现与修复过程,包括漏洞原理、复现步骤、影响范围以及最终的Nginx配置修复方案,展示了真实场景下的安全响应流程。

Lichess漏洞报告#3181066 - Lila项目路径遍历漏洞

漏洞摘要

在Lila项目中发现一个路径遍历漏洞,攻击者可通过操纵用户输入来访问服务器上的任意文件,突破预期目录结构限制。该漏洞可能暴露应用源代码、配置文件等敏感信息。

复现步骤

  1. 通过构造特殊URL访问受限文件:
    1
    2
    
    https://lichess.org/assets/../build.sbt
    https://lichess.org/assets/../.git/config
    

漏洞影响

  • 任意文件读取:可能泄露.git配置、应用配置(含密钥/凭证)、服务端源码
  • 信息泄露:暴露内部逻辑、部署细节、管理员配置
  • 间接提权:通过读取访问控制相关文件可能衍生其他攻击
  • 攻击侦察:了解内部文件结构有助于发现RCE或IDOR等漏洞

修复过程

开发团队采用Nginx配置修复方案:

1
2
3
4
if ($request_uri ~ "\.\./") {
  # 防止路径遍历 https://hackerone.com/reports/3181066
  return 404;
}

生产环境配置

实际生产环境中/assets/请求由Nginx处理:

1
2
3
4
5
6
7
8
location /assets/ {
  expires 1M;
  add_header Cache-Control "public";
  add_header Service-Worker-Allowed "/";
  add_header Cross-Origin-Embedder-Policy "require-corp";
  rewrite "^/assets/_\w{6}/(.+)$" /assets/$1;
  alias /home/lichess-deploy/public/;
}

时间线

  • 2025-06-06 11:16 UTC:漏洞提交
  • 2025-06-07 09:24 UTC:确认为有效漏洞
  • 2025-06-09 07:39 UTC:提出初步修复方案
  • 2025-06-09 11:30 UTC:漏洞修复完成并公开
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计