记某系统漏洞分析
字数 1073 2025-08-29 08:30:13

某系统漏洞分析教学文档

文件上传漏洞分析

漏洞位置

系统升级功能中的system_upgrade文件存在文件上传漏洞。

漏洞详情

  1. 系统升级需要输入升级口令,通过POST参数masterpassword传递
  2. 源代码审计发现口令硬编码为aaaaaa
    $masterpassword=$_POST["masterpassword"];
    if($masterpassword=="aaaaaa")
    
  3. 文件上传后会被重命名为upgrade.zip并解压:
    if(file_exists("upgrade.zip")){
        exec("tar xvf upgrade.zip", $result, $return_var);
    
  4. 解压后所有PHP文件会被赋予执行权限

利用方法

  1. 创建一个包含恶意代码的PHP文件(如1.php
  2. 将其压缩为ZIP文件
  3. 使用POST请求提交masterpassword=aaaaaa和上传ZIP文件
  4. 系统会自动解压并赋予执行权限
  5. 访问上传的PHP文件(如/1.php)即可执行任意代码

SQL注入漏洞分析

漏洞位置1:repair_show_print文件

漏洞详情

  1. 该文件可未授权访问
  2. $UserName参数未经过滤直接拼接SQL语句
  3. 任意输入都会在用户账号回显

利用方法

  1. 直接构造恶意SQL注入payload
  2. 使用SQLmap自动化注入:
    sqlmap -u "http://target/repair_show_print?UserName=admin" --dbs
    

漏洞位置2:loaduser文件

漏洞详情

  1. 同样存在$UserName参数注入
  2. 直接回显SQL语句

利用方法

  1. 浏览器访问接口,输入恶意SQL语句
  2. 使用SQLmap自动化注入

漏洞位置3:excel_project文件

漏洞详情

  1. 需要登录后才能访问(包含../inc/conn.php进行鉴权)
  2. 存在SQL注入点

利用方法

  1. 先获取有效登录凭证
  2. 使用SQLmap自动化注入:
    sqlmap -r request.txt
    

XSS漏洞分析

漏洞位置1:repair_show_print文件

漏洞详情

  1. 在SQL注入点同时存在XSS漏洞
  2. 用户输入未经过滤直接输出

漏洞位置2:ajax_check文件

漏洞详情

  1. 明显的XSS漏洞点
  2. 用户输入未经过滤

利用方法

  1. 构造恶意JavaScript payload
  2. 通过参数提交:
    http://target/ajax_check?param=<script>alert(1)</script>
    

总结与防御建议

漏洞总结

  1. 文件上传漏洞:硬编码密码+不安全的文件处理
  2. SQL注入:多处未过滤的用户输入直接拼接SQL
  3. XSS漏洞:多处未过滤的用户输入直接输出

防御建议

  1. 文件上传:

    • 避免使用硬编码密码
    • 限制上传文件类型
    • 解压前验证文件内容
    • 不要自动赋予执行权限
  2. SQL注入:

    • 使用参数化查询或预处理语句
    • 对所有用户输入进行严格过滤
    • 最小权限原则,数据库用户只赋予必要权限
  3. XSS:

    • 对所有输出进行HTML编码
    • 设置Content Security Policy (CSP)
    • 使用现代框架的自动转义功能
  4. 其他:

    • 删除或保护调试信息
    • 实现完善的权限控制系统
    • 定期进行安全审计和代码审查
某系统漏洞分析教学文档 文件上传漏洞分析 漏洞位置 系统升级功能中的 system_upgrade 文件存在文件上传漏洞。 漏洞详情 系统升级需要输入升级口令,通过POST参数 masterpassword 传递 源代码审计发现口令硬编码为 aaaaaa : 文件上传后会被重命名为 upgrade.zip 并解压: 解压后所有PHP文件会被赋予执行权限 利用方法 创建一个包含恶意代码的PHP文件(如 1.php ) 将其压缩为ZIP文件 使用POST请求提交 masterpassword=aaaaaa 和上传ZIP文件 系统会自动解压并赋予执行权限 访问上传的PHP文件(如 /1.php )即可执行任意代码 SQL注入漏洞分析 漏洞位置1:repair_ show_ print文件 漏洞详情 该文件可未授权访问 $UserName 参数未经过滤直接拼接SQL语句 任意输入都会在用户账号回显 利用方法 直接构造恶意SQL注入payload 使用SQLmap自动化注入: 漏洞位置2:loaduser文件 漏洞详情 同样存在 $UserName 参数注入 直接回显SQL语句 利用方法 浏览器访问接口,输入恶意SQL语句 使用SQLmap自动化注入 漏洞位置3:excel_ project文件 漏洞详情 需要登录后才能访问(包含 ../inc/conn.php 进行鉴权) 存在SQL注入点 利用方法 先获取有效登录凭证 使用SQLmap自动化注入: XSS漏洞分析 漏洞位置1:repair_ show_ print文件 漏洞详情 在SQL注入点同时存在XSS漏洞 用户输入未经过滤直接输出 漏洞位置2:ajax_ check文件 漏洞详情 明显的XSS漏洞点 用户输入未经过滤 利用方法 构造恶意JavaScript payload 通过参数提交: 总结与防御建议 漏洞总结 文件上传漏洞:硬编码密码+不安全的文件处理 SQL注入:多处未过滤的用户输入直接拼接SQL XSS漏洞:多处未过滤的用户输入直接输出 防御建议 文件上传: 避免使用硬编码密码 限制上传文件类型 解压前验证文件内容 不要自动赋予执行权限 SQL注入: 使用参数化查询或预处理语句 对所有用户输入进行严格过滤 最小权限原则,数据库用户只赋予必要权限 XSS: 对所有输出进行HTML编码 设置Content Security Policy (CSP) 使用现代框架的自动转义功能 其他: 删除或保护调试信息 实现完善的权限控制系统 定期进行安全审计和代码审查