记一次对学校的渗透测试
字数 1423 2025-08-10 08:28:42

学校渗透测试实战教学文档

1. 渗透测试概述

本次渗透测试针对某学校系统,展示了从信息收集到漏洞利用的完整流程。测试者通过多种技术手段成功发现并利用了多个安全漏洞。

2. 信息收集阶段

2.1 目标识别

  • 主站: http://www.xxxx.edu.cn
  • 策略: 主站通常防护较强,优先寻找子系统和子站点

2.2 子站发现

  • 方法: 使用各种子域名扫描技术
  • 发现关键系统: 图书馆系统

2.3 学号枚举技术

  1. 默认密码测试: 尝试"123456"等常见默认密码
  2. 学号构造规则:
    • 格式: 入校年份(如2019) + 专业代码 + 班级 + 序号
    • 示例: 2019** (302个成功跳转)
  3. 批量测试: 基于构造规则进行批量尝试

3. 漏洞挖掘与利用

3.1 SQL注入漏洞

  1. 发现方法:

    • 使用Google语法: site:xxx.edu.cn inurl:?=
    • 识别可能存在注入点的URL参数
  2. 加密参数处理:

    • 发现参数可能使用Base64编码(如MTE=)
    • 解决方案: 使用base64encode.py脚本处理
  3. 自动化工具使用:

    sqlmap -u "目标URL" --其他参数
    
  4. 安全狗绕过技术:

    • 使用特定tamper脚本:
      • equaltolike
      • space2mysqldash
    • 完整命令示例:
      sqlmap.py -r c:/2.txt --dbms mssql --skip-waf --random-agent --technique SBT -v 3 -p newpass --tamper equaltolike,space2mysqldash
      

3.2 任意文件上传

  • 发现点: 通过SQL注入获取的管理后台
  • 结果: 成功获取webshell

3.3 逻辑漏洞

  1. 发现点: 继续教育平台
  2. 绕过方法:
    • 拦截响应包
    • 修改关键参数值为1(如将响应中的0改为1)

3.4 其他发现

  • 数据库执行接口: 通过目录扫描发现
  • 阅卷系统: 通过IP扫描发现
    • 测试方法:
      • 查看JS源码寻找线索
      • 尝试test/test等默认凭证
      • 修改返回包测试

4. 高级技巧

4.1 内存消耗攻击

  • 场景: 存在WAF防护时
  • 方法: 发送大量"脏数据"消耗WAF内存资源
  • 目的: 使WAF性能下降或崩溃,从而绕过防护

4.2 权限提升

  • 发现DBA权限的SQL注入点
  • 但未找到后台管理入口

5. 经验总结

  1. 信息收集至关重要:

    • 资产发现(子站、子系统)
    • 学号规则推断
    • 默认凭证测试
  2. 测试全面性:

    • 不放过任何可疑点
    • "宁可浪费一千也不可漏掉一个"
  3. 技术要点:

    • 熟悉常见WAF绕过技术
    • 掌握多种漏洞利用方式(SQL注入、文件上传、逻辑漏洞等)
    • 灵活使用自动化工具(sqlmap)与手动测试结合
  4. 渗透测试思维:

    • 从攻击者角度思考
    • 利用系统设计缺陷(如可预测的学号)
    • 关注不明显的攻击面(如JS源码分析)

6. 防御建议

  1. 对学号等标识符使用不可预测的随机生成方式
  2. 禁用或严格限制默认密码
  3. 对所有输入参数进行严格过滤和编码
  4. 实施完善的WAF规则,定期更新防护策略
  5. 对敏感操作(如密码修改)实施多重验证
  6. 前端验证必须配合后端验证
  7. 定期进行安全审计和渗透测试

7. 工具与资源

  • sqlmap: SQL注入自动化工具
  • base64encode.py: Base64编码处理脚本
  • Burp Suite: 用于拦截和修改请求
  • 子域名扫描工具
  • 目录扫描工具
  • WAF绕过tamper脚本:
    • equaltolike
    • space2mysqldash

8. 扩展学习

  1. 深入研究各种WAF绕过技术
  2. 学习更多Google hacking技巧
  3. 掌握更多逻辑漏洞挖掘方法
  4. 了解不同数据库的注入技术差异
  5. 学习权限维持和横向移动技术

通过本案例的系统学习,可以掌握针对教育系统的渗透测试方法论和实用技巧。

学校渗透测试实战教学文档 1. 渗透测试概述 本次渗透测试针对某学校系统,展示了从信息收集到漏洞利用的完整流程。测试者通过多种技术手段成功发现并利用了多个安全漏洞。 2. 信息收集阶段 2.1 目标识别 主站: http://www.xxxx.edu.cn 策略: 主站通常防护较强,优先寻找子系统和子站点 2.2 子站发现 方法: 使用各种子域名扫描技术 发现关键系统: 图书馆系统 2.3 学号枚举技术 默认密码测试 : 尝试"123456"等常见默认密码 学号构造规则 : 格式: 入校年份(如2019) + 专业代码 + 班级 + 序号 示例: 2019** (302个成功跳转) 批量测试 : 基于构造规则进行批量尝试 3. 漏洞挖掘与利用 3.1 SQL注入漏洞 发现方法 : 使用Google语法: site:xxx.edu.cn inurl:?= 识别可能存在注入点的URL参数 加密参数处理 : 发现参数可能使用Base64编码(如MTE=) 解决方案: 使用base64encode.py脚本处理 自动化工具使用 : 安全狗绕过技术 : 使用特定tamper脚本: equaltolike space2mysqldash 完整命令示例: 3.2 任意文件上传 发现点: 通过SQL注入获取的管理后台 结果: 成功获取webshell 3.3 逻辑漏洞 发现点 : 继续教育平台 绕过方法 : 拦截响应包 修改关键参数值为1(如将响应中的0改为1) 3.4 其他发现 数据库执行接口: 通过目录扫描发现 阅卷系统: 通过IP扫描发现 测试方法: 查看JS源码寻找线索 尝试test/test等默认凭证 修改返回包测试 4. 高级技巧 4.1 内存消耗攻击 场景: 存在WAF防护时 方法: 发送大量"脏数据"消耗WAF内存资源 目的: 使WAF性能下降或崩溃,从而绕过防护 4.2 权限提升 发现DBA权限的SQL注入点 但未找到后台管理入口 5. 经验总结 信息收集至关重要 : 资产发现(子站、子系统) 学号规则推断 默认凭证测试 测试全面性 : 不放过任何可疑点 "宁可浪费一千也不可漏掉一个" 技术要点 : 熟悉常见WAF绕过技术 掌握多种漏洞利用方式(SQL注入、文件上传、逻辑漏洞等) 灵活使用自动化工具(sqlmap)与手动测试结合 渗透测试思维 : 从攻击者角度思考 利用系统设计缺陷(如可预测的学号) 关注不明显的攻击面(如JS源码分析) 6. 防御建议 对学号等标识符使用不可预测的随机生成方式 禁用或严格限制默认密码 对所有输入参数进行严格过滤和编码 实施完善的WAF规则,定期更新防护策略 对敏感操作(如密码修改)实施多重验证 前端验证必须配合后端验证 定期进行安全审计和渗透测试 7. 工具与资源 sqlmap: SQL注入自动化工具 base64encode.py: Base64编码处理脚本 Burp Suite: 用于拦截和修改请求 子域名扫描工具 目录扫描工具 WAF绕过tamper脚本: equaltolike space2mysqldash 8. 扩展学习 深入研究各种WAF绕过技术 学习更多Google hacking技巧 掌握更多逻辑漏洞挖掘方法 了解不同数据库的注入技术差异 学习权限维持和横向移动技术 通过本案例的系统学习,可以掌握针对教育系统的渗透测试方法论和实用技巧。