尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Halo博客系统审计

Halo博客系统审计
📅 发布时间:2026/6/21 19:35:31

项目搭建

轻快,简洁,功能强大,使用 Java 开发的博客系统。

软件名称 版本
操作系统 Windows10
Java JDK1.8_261(https://www.oracle.com/co/java/technologies/javase/javase8-archive-downloads.html,往下滑)
Maven 3.6.3
IEDA 2025.1

源码下载地址: https://github.com/halo-dev/halo/releases/tag/v0.4.3

下载完成后解压项目文件,使用 IDEA 以 Maven 方式打开该项目即可

该系统使用了 H2 Database 作为数据库,不需要像 Mysql 那般操作。

进入 src/main/java/cc/ryanc/halo/Application.java 代码中启动项目,如下图所示

6aac20cb-8c9b-42a9-817f-0489f0918f9f

访问上述提供的地址 http://localhost:8090 ,进入安装向导

13be85b1-e8bb-4543-8bae-cb25bd6c1b3c

:::note

  • 如若遇到报错,可能是依赖未正确下载或加载所致。请尝试重启 IDEA
  • 如若系统中安装了多个 JDK 版本,请务必前往文件 - 项目结(英文版请参考截图位置),将 JDK 版本设置为 JDK1.8_291,如下图所示:

:::

0249ff1d-8a95-48b1-897d-3ea81c1b2350

代码审计漏洞挖掘

在 Halo 0.4.3 版本中多个依赖存在 CVE 漏洞,可使用较为新版本的 IDEA 在 pom.xml 处查看

ce676cd7-be8c-4fd3-af90-d3c6b6c9cc73

任意文件删除漏洞代码审计

梳理文章功能时,发现后台设置下博客备份功能存在一个删除功能,通过抓包发现是根据文件名进行的

删除操作,可能存在任意文件删除漏洞:

ad001902-0f24-4061-9454-c26e9fd01e74

通过抓包获取到接口名为 /admin/backup/delBackup ,通过关键字一一尝试,最终使用

delBackup 定位到该接口的 Controller 层代码为 BackupController:

a51bcf5b-0c79-49ee-81ac-0a1c6c1cd0da

我们进入 BackupController 层,具体代码位于第 211 行至第 220 行

d749ea4a-b9e8-4e10-8192-f027ad28e7ba

第一步,双击213行的filename参数,通过高亮 fileName 以及 type 参数,在第 215 行处被

使用

e11070b8-5061-4e5c-b112-9aca7f721bfa

第二步,分析第 215 行,代码拼接了用户的主目录路径加上 /halo/backup/ 加上传递来的

type 参数加上传递来的 fileName 参数,最终拼接成一个完整的路径,赋值给 srcPath 参数。其中 type参

数是其中一个路径

502b4b8a-b5a2-4fde-964c-54c7dec71803

第三步,通过上图单击 srcPath 的高亮显示,可以看到在第 217 行使用了 FileUtil.del 方法对

srcPath 进行了操作。将鼠标悬停在该方法处,可以看到是 hutool 组件下的方法。

303bfb46-8a45-4c4d-a5a0-7f344ea5342a

上述两步操作中可以看到,该接口并没有任何防止跨目录的操作,从功能点思考可能会造成任意文件删除漏洞。

最后,在第 217 行处打个断点进行测试

19e9adfd-6492-4f9d-8a1a-1614f5b353f7

漏洞验证

在任意文件删除单点漏洞代码审计的最后断点处,我们知道了备份文件的存储路径是C:\Users\powerful\halo\backup\posts

我们在C盘下新建一个名为1.txt的文件。点击删除功能点捉包

c13528a4-d115-4fa8-ac3b-729684c24fe9

在代码审计部分,我们知道 type 和 fileName 参数都拼接到了路径中

所以这两个参数都可以跨目录实现任意文件删除操作

ffe9b025-e408-45c6-9944-05aa2b6fbbed

删除成功

相关新闻

  • tk.simpledialog-创建简单的模态对话框
  • STranslate 翻译 工具 v2.0.0 绿色便携版 翻译、OCR工具
  • 终极指南:免费获取卓里奇数学分析教材PDF完整资源

最新新闻

  • 终极游戏手柄映射指南:5个技巧让任何游戏都支持手柄操作
  • 专业学位证翻译盖章怎么办?合规办理流程说明 - 叮咚办真方便
  • 2026哈尔滨手表回收分级评分|7家机构S-A-B级划分,添价收黄金奢侈品回收稳居S级 - 薛定谔的梨花猫
  • 低成本机器人臂Koch v1.1:从零开始构建你的教学机器人系统
  • 上海汽车烧机油治理哪家好,老牌汽修门店,上万台成功案例,轻度免拆1000元左右 - 速递信息
  • 2026 广州翡翠回收哪家靠谱?7 家正规机构全维度测评,添价收稳居榜首 - 薛定谔的梨花猫

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号