代码审计之fortify工具篇
字数 1151 2025-08-18 11:38:56

Fortify工具在代码审计中的应用与实践

一、前期准备

  1. 目标系统获取

    • 从官网下载目标CMS系统(文中未明确具体系统)
    • 安装过程分析(可选):许多系统会删除安装包,可研究安装过程中的潜在漏洞
  2. 系统架构分析

    • 入口文件index.php定义了NoDb常量
    • 加载全局配置文件config.php
    • 根据NoDb值决定是否初始化数据库
  3. 安全机制分析

    • _stripslashes函数:检测并处理自动转义功能
    • 路由处理:match_route()函数负责读取数据库并进行缓存操作
    • 模板处理流程:缓存记录→初始化模板→加载模板→模板解析→显示

二、Fortify工具辅助审计

1. XSS漏洞审计

  • 发现点:输入框未进行充分过滤
  • 数据流分析
    • 用户输入→数据库存储→前端显示
    • 关键过滤函数dbstr分析:
      • 过滤单引号
      • 转义反斜线
      • 未过滤尖括号
  • 验证Payload<script>alert(1)</script>
  • 结论:存在存储型XSS漏洞

2. 文件包含漏洞审计

  • 发现点:需要两个参数donohtml
  • 参数处理逻辑
    • do参数值进行分隔处理(路径和文件名)
    • 验证函数使用正则限制:
      • 仅允许数字和字母
      • 长度限制
      • 后缀限制
  • 漏洞评估
    • 存在有限制的文件包含
    • 需要突破正则限制才能扩大包含范围

3. 后台安全分析

  • 文件管理系统风险
    • 获取后台权限即等同于高危漏洞(CNVD标准)
    • 可直接上传/管理Webshell
  • 登录机制分析
    • 无验证码保护
    • 登录限制:15分钟内最多20次尝试
    • 限制绕过可能性:
      • 通过代理IP池轮换IP地址
      • 可突破15分钟20次的限制

4. SQL注入分析

  • 登录SQL分析
    • 验证SQL语句无注入漏洞
  • 第三方登录机制
    • code参数为空时可能绕过认证
    • 空字符串在单引号中的特殊处理

三、安全加固建议

  1. XSS防护

    • 增加HTML标签过滤(特别是尖括号)
    • 输出时进行HTML实体编码
  2. 文件包含防护

    • 严格限制包含文件路径
    • 使用白名单机制替代正则过滤
  3. 认证加固

    • 增加图形验证码
    • 实现账户锁定机制
    • 加强密码策略
  4. 日志监控

    • 记录失败登录尝试
    • 监控可疑IP行为

四、审计技巧总结

  1. 工具辅助:利用Fortify等工具快速定位潜在漏洞
  2. 代码追踪:关键函数(如dbstr)需要深入分析
  3. 数据流分析:从输入点到最终输出的完整路径检查
  4. 权限边界:特别关注后台功能的访问控制
  5. 默认配置:检查默认账户和第三方集成组件的安全性

五、扩展资源

通过系统化的代码审计流程和工具辅助,可以有效发现和修复Web应用中的安全漏洞,提升整体安全性。

Fortify工具在代码审计中的应用与实践 一、前期准备 目标系统获取 从官网下载目标CMS系统(文中未明确具体系统) 安装过程分析(可选):许多系统会删除安装包,可研究安装过程中的潜在漏洞 系统架构分析 入口文件 index.php 定义了 NoDb 常量 加载全局配置文件 config.php 根据 NoDb 值决定是否初始化数据库 安全机制分析 _stripslashes 函数:检测并处理自动转义功能 路由处理: match_route() 函数负责读取数据库并进行缓存操作 模板处理流程:缓存记录→初始化模板→加载模板→模板解析→显示 二、Fortify工具辅助审计 1. XSS漏洞审计 发现点 :输入框未进行充分过滤 数据流分析 : 用户输入→数据库存储→前端显示 关键过滤函数 dbstr 分析: 过滤单引号 转义反斜线 未过滤尖括号 验证Payload : <script>alert(1)</script> 结论 :存在存储型XSS漏洞 2. 文件包含漏洞审计 发现点 :需要两个参数 do 和 nohtml 参数处理逻辑 : do 参数值进行分隔处理(路径和文件名) 验证函数使用正则限制: 仅允许数字和字母 长度限制 后缀限制 漏洞评估 : 存在有限制的文件包含 需要突破正则限制才能扩大包含范围 3. 后台安全分析 文件管理系统风险 : 获取后台权限即等同于高危漏洞(CNVD标准) 可直接上传/管理Webshell 登录机制分析 : 无验证码保护 登录限制:15分钟内最多20次尝试 限制绕过可能性: 通过代理IP池轮换IP地址 可突破15分钟20次的限制 4. SQL注入分析 登录SQL分析 : 验证SQL语句无注入漏洞 第三方登录机制 : code 参数为空时可能绕过认证 空字符串在单引号中的特殊处理 三、安全加固建议 XSS防护 : 增加HTML标签过滤(特别是尖括号) 输出时进行HTML实体编码 文件包含防护 : 严格限制包含文件路径 使用白名单机制替代正则过滤 认证加固 : 增加图形验证码 实现账户锁定机制 加强密码策略 日志监控 : 记录失败登录尝试 监控可疑IP行为 四、审计技巧总结 工具辅助 :利用Fortify等工具快速定位潜在漏洞 代码追踪 :关键函数(如 dbstr )需要深入分析 数据流分析 :从输入点到最终输出的完整路径检查 权限边界 :特别关注后台功能的访问控制 默认配置 :检查默认账户和第三方集成组件的安全性 五、扩展资源 Tide安全团队官网: http://www.TideSec.net 持续关注最新Web安全技术和漏洞趋势 通过系统化的代码审计流程和工具辅助,可以有效发现和修复Web应用中的安全漏洞,提升整体安全性。