东胜物流代码审计分析
字数 1401
更新时间 2025-11-26 12:11:12

东胜物流系统代码审计教学文档

系统概述

东胜物流系统是一套采用MVC架构与WebForm架构相结合的物流管理系统。通过代码审计发现该系统存在多处安全漏洞,包括SQL注入、文件上传漏洞和XXE漏洞等。

漏洞分析

1. 鉴权机制分析

通过全局搜索RegisterRoutes可以确认该系统采用MVC架构。需要重点检查路由注册和权限控制机制是否存在缺陷。

2. SQL注入漏洞

第一处:GetUserModuleEnable方法

  • 漏洞位置:涉及modulename参数的处理
  • 漏洞代码特征
// 可控点modulename直接拼接
strSql += " AND M.ModuleName = '" + modulename + "'";
  • 漏洞原理:用户输入的modulename参数未经过滤直接拼接到SQL语句中
  • 审计要点:查找所有使用字符串拼接方式构建SQL语句的代码段

第二处:GetFeeOpRang方法

  • 漏洞位置optype参数处理链
  • 调用链GetFeeOpRangGetRangDASQLStr
  • 漏洞代码特征
// tb参数直接拼接
where += " AND " + tb + ".OpType = '" + optype + "'";
  • 审计要点:跟踪参数传递过程,检查每一层是否进行安全过滤

第三处:AttributeAdapter类

  • 触发条件:当strHandle == "attrinfo"
  • 漏洞代码特征
if (!string.IsNullOrEmpty(strAttributeID))
{
    tempAttrSql += " AND A.GID = '" + strAttributeID + "'";
}
  • 漏洞原理strAttributeID参数直接拼接到SQL查询条件中
  • 审计要点:关注条件判断分支中的SQL拼接操作

3. 文件上传漏洞

第一处:FileInputHandler/Upload接口

  • 漏洞特征
// 仅获取文件扩展名,无白名单校验
string extension = Path.GetExtension(uploadFile.FileName);
// 直接保存文件
uploadFile.SaveAs(savePath);
  • 漏洞原理:仅通过Path.GetExtension获取扩展名,但未进行任何白名单或黑名单验证
  • 修复建议:实现严格的文件类型白名单验证机制

第二处:MsWl_HaierMain/File接口

  • 特殊要求:需要额外提供ACCDATE参数(任意日期值)
  • 漏洞特征:接受file参数直接处理上传,缺乏安全校验
  • 审计要点:检查所有文件上传功能点的参数验证逻辑

4. XXE漏洞

UpdateCustomMainfast方法

  • 漏洞代码
xobj.LoadXml(Xdoc); // 未设置XmlResolver = null
  • 漏洞原理:XML解析器未禁用外部实体解析,导致XXE攻击可能
  • 安全修复
xobj.XmlResolver = null; // 禁用外部实体解析
xobj.LoadXml(Xdoc);
  • 审计要点:检查所有XML解析操作是否配置安全参数

代码审计方法论

1. 入口点识别

  • 全局搜索路由注册方法(如RegisterRoutes
  • 分析控制器和API端点定义
  • 识别用户输入接收点

2. SQL注入检测模式

  • 搜索字符串拼接操作(+操作符)
  • 识别直接参数嵌入SQL语句的模式
  • 跟踪参数传递链,检查每一层过滤情况

3. 文件上传漏洞检测

  • 查找SaveAs、文件保存相关方法
  • 检查文件类型验证逻辑
  • 验证文件路径安全性

4. XXE漏洞检测

  • 搜索LoadXml、XML解析相关方法
  • 检查XmlResolver配置情况
  • 验证XML处理的安全配置

修复建议

SQL注入修复

  1. 使用参数化查询替代字符串拼接
  2. 实施输入验证和过滤机制
  3. 采用ORM框架避免直接SQL操作

文件上传安全

  1. 实现严格的白名单文件类型验证
  2. 重命名上传文件,避免原始文件名使用
  3. 限制上传目录的执行权限

XXE防护

  1. 禁用XML外部实体解析
  2. 实施XML schema验证
  3. 使用安全的XML解析配置

总结

通过本次审计可以发现,东胜物流系统在多个关键安全领域存在严重漏洞。在进行代码审计时,需要重点关注用户输入处理、数据库操作和文件操作等关键环节,建立系统的安全检测流程和方法论。

 全屏