Lerx从SSRF到GetShell
字数 1169 2025-08-20 18:17:31
Lerx CMS SSRF漏洞分析与利用:从SSRF到GetShell
漏洞概述
Lerx CMS最新版本(v6.3.0)后台在加载模板时存在SSRF(Server-Side Request Forgery)漏洞,攻击者可利用该漏洞通过远程加载恶意模板文件实现GetShell。
漏洞位置
lerx_v6.3.0\WebContent\WEB-INF\views\jsp\templet\portal\remote.jsp
漏洞分析
核心问题
- SSRF漏洞:系统在下载模板时未对URL来源进行安全检查,只要URL非空即可请求
- 文件操作漏洞:系统会自动解压下载的ZIP文件并将内容写入服务器目录
关键代码分析
漏洞主要存在于lerx_v6.3.0\src\com\lerx\handlers\TempletMainPortalHandler.java文件中:
- 模板路径被初始化为:
templates/portal - 系统会连接提供的URL下载文件
- 对ZIP压缩包进行解压,遍历读取ZIP中的文件并写入
templetPortalDir目录 - 对写入的文件赋予可读权限
漏洞利用步骤
准备工作
- 准备一个包含WebShell的JSP文件(如冰蝎的shell.jsp)
- 将shell.jsp打包为ZIP文件
- 在攻击者主机上搭建HTTP服务(如使用Python的SimpleHTTPServer)
攻击流程
- 使用管理员账号登录后台(默认凭证:lerx/ilovelerx)
- 进入模板管理页面
- 选择"模板加载"功能
- 选择"默认模板"
- 点击"获取"按钮
- 使用Burp Suite等工具拦截请求
- 修改请求中的URL参数为攻击者控制的恶意ZIP文件地址
- 释放请求
结果验证
- 服务器会下载并解压恶意ZIP文件
- WebShell会被写入
templates/portal目录 - 使用冰蝎等工具连接WebShell验证是否成功
漏洞复现截图
- 攻击者HTTP服务接收到请求,证明SSRF存在
- 服务器成功上传shell.jsp文件
- 冰蝎连接成功并执行命令
安全建议
- 输入验证:对模板下载URL进行严格的白名单验证
- 文件操作安全:
- 限制可下载的文件类型
- 对解压操作进行安全检查
- 限制文件写入的目录
- 权限控制:
- 限制模板下载功能的权限
- 避免赋予不必要的文件系统权限
- 网络隔离:限制服务器对外发起请求的能力
技术要点总结
- 漏洞利用链:SSRF → 远程文件下载 → 自动解压 → 文件写入 → GetShell
- 关键点:未验证的URL输入 + 自动文件操作
- 利用条件:需要后台管理员权限(默认凭证或已获取凭证)
防御措施
- 更新到最新版本或应用官方补丁
- 修改默认管理员密码
- 在WAF/IDS中设置规则检测异常的模板下载请求
- 监控服务器对外发起的异常网络请求