【Web实战】记一次对某停车场系统的测试
字数 1782 2025-08-10 08:28:49

停车场系统渗透测试实战教学文档

1. 测试目标概述

本次渗透测试针对某停车场管理系统,通过多种技术手段发现并验证了多个安全漏洞,包括SQL注入、任意文件读取等高风险漏洞。

2. 初始信息收集

2.1 目录扫描

  • 使用工具对系统目录进行扫描
  • 发现301状态路径,但未扫描出有价值信息
  • 建议:对301状态路径应继续深入扫描

3. 认证机制测试

3.1 弱口令测试

  • 系统无验证码保护
  • 尝试常见弱口令组合:test/123456、system/123456等
  • 使用Burp Suite进行爆破测试,但未获成功

3.2 用户枚举漏洞

  • 发现系统在输入密码前会检查用户名是否存在
  • 通过Burp Suite捕获的接口:/CheckUserExists
  • 存在用户时返回特定数据包,不存在时返回不同响应
  • 此功能可能导致攻击者枚举有效用户名

4. SQL注入漏洞

4.1 注入点发现

  • 在用户检查接口的用户名参数后添加单引号(')触发错误
  • 确认存在SQL注入漏洞

4.2 利用过程

  1. 使用sqlmap工具进行自动化测试:
    sqlmap -r request.txt --batch
    
  2. 成功提取数据库信息:
    • 发现3个admin账户
    • 第一个admin账户密码错误
    • 第二个admin账户成功登录后台

4.3 限制因素

  • 注入类型非堆叠注入,无法使用--os-shell
  • 数据库用户为sa权限,但无法执行系统命令

5. 后台功能测试

5.1 文件上传功能

  • 发现仅允许上传.xls格式文件
  • 尝试多种绕过方式:
    • 修改文件扩展名
    • 使用特殊字符截断(Windows系统)
    • 均被系统拦截
  • 通过代码审计发现上传路径固定为:PL/PLB/PLB010/UploadFile/
  • 文件名格式固定:Upload+时间戳+.xls

5.2 任意文件读取漏洞

5.2.1 漏洞发现

  • 系统存在读取XML文件的接口
  • 参数中包含文件名,尝试目录穿越

5.2.2 利用方法

  1. 使用../进行路径遍历
  2. 发现7个../时系统开始报错
  3. 删除&name_space=EditDetail参数后成功读取文件
  4. 成功读取:
    • /default.aspx
    • /Upload.aspx
    • /Upload.aspx.vb(代码文件)
    • /web.config(配置文件)

5.2.3 关键信息获取

  • 从web.config中获取数据库凭据:
    • 用户名:sa
    • 密码:(具体值)
    • 数据库地址在内网

6. 其他测试尝试

6.1 XXE注入测试

  • 系统使用XML格式传参
  • 确认存在XXE回显
  • 但未深入利用

6.2 数据库命令执行

  • 尝试使用--sql-shell执行命令
  • 确认DBA权限但无法执行系统命令
  • 尝试启用xp_cmdshell失败

6.3 图片功能测试

  • 发现系统存储用户图片在数据库中
  • 尝试修改图片上传webshell未果

7. 漏洞总结

漏洞类型 风险等级 利用难度 影响程度
SQL注入 高危 数据库信息泄露、管理员账户获取
任意文件读取 高危 源代码泄露、配置文件泄露
用户枚举 中危 用户名收集
XXE注入 中危 有限的信息泄露

8. 修复建议

  1. SQL注入防护

    • 使用参数化查询或ORM框架
    • 对用户输入进行严格过滤
  2. 任意文件读取防护

    • 限制文件访问路径
    • 禁用目录遍历字符
    • 实施文件访问白名单
  3. 认证机制加固

    • 添加验证码防止暴力破解
    • 统一登录失败提示信息
    • 实施账户锁定机制
  4. 文件上传安全

    • 实施文件内容检查而不仅是扩展名检查
    • 随机化上传文件路径和名称
    • 限制上传文件执行权限
  5. 其他建议

    • 最小化数据库权限
    • 禁用XML外部实体解析
    • 定期安全审计和渗透测试

9. 测试工具清单

  1. Burp Suite - HTTP代理和攻击工具
  2. sqlmap - SQL注入自动化工具
  3. 目录扫描工具(DirBuster等)
  4. 自定义Payload和手动测试

10. 经验总结

  1. 用户枚举功能常伴随SQL注入风险
  2. 后台功能点全面测试的重要性
  3. 代码审计可辅助理解系统限制
  4. 多角度尝试同一漏洞的利用方式
  5. 权限提升路径需要创造性思维

本测试展示了从外部渗透到获取系统敏感信息的完整过程,强调了系统各层防护的重要性。

停车场系统渗透测试实战教学文档 1. 测试目标概述 本次渗透测试针对某停车场管理系统,通过多种技术手段发现并验证了多个安全漏洞,包括SQL注入、任意文件读取等高风险漏洞。 2. 初始信息收集 2.1 目录扫描 使用工具对系统目录进行扫描 发现301状态路径,但未扫描出有价值信息 建议:对301状态路径应继续深入扫描 3. 认证机制测试 3.1 弱口令测试 系统无验证码保护 尝试常见弱口令组合:test/123456、system/123456等 使用Burp Suite进行爆破测试,但未获成功 3.2 用户枚举漏洞 发现系统在输入密码前会检查用户名是否存在 通过Burp Suite捕获的接口: /CheckUserExists 存在用户时返回特定数据包,不存在时返回不同响应 此功能可能导致攻击者枚举有效用户名 4. SQL注入漏洞 4.1 注入点发现 在用户检查接口的用户名参数后添加单引号( ' )触发错误 确认存在SQL注入漏洞 4.2 利用过程 使用sqlmap工具进行自动化测试: 成功提取数据库信息: 发现3个admin账户 第一个admin账户密码错误 第二个admin账户成功登录后台 4.3 限制因素 注入类型非堆叠注入,无法使用 --os-shell 数据库用户为sa权限,但无法执行系统命令 5. 后台功能测试 5.1 文件上传功能 发现仅允许上传.xls格式文件 尝试多种绕过方式: 修改文件扩展名 使用特殊字符截断(Windows系统) 均被系统拦截 通过代码审计发现上传路径固定为: PL/PLB/PLB010/UploadFile/ 文件名格式固定: Upload+时间戳+.xls 5.2 任意文件读取漏洞 5.2.1 漏洞发现 系统存在读取XML文件的接口 参数中包含文件名,尝试目录穿越 5.2.2 利用方法 使用 ../ 进行路径遍历 发现7个 ../ 时系统开始报错 删除 &name_space=EditDetail 参数后成功读取文件 成功读取: /default.aspx /Upload.aspx /Upload.aspx.vb (代码文件) /web.config (配置文件) 5.2.3 关键信息获取 从web.config中获取数据库凭据: 用户名:sa 密码:(具体值) 数据库地址在内网 6. 其他测试尝试 6.1 XXE注入测试 系统使用XML格式传参 确认存在XXE回显 但未深入利用 6.2 数据库命令执行 尝试使用 --sql-shell 执行命令 确认DBA权限但无法执行系统命令 尝试启用 xp_cmdshell 失败 6.3 图片功能测试 发现系统存储用户图片在数据库中 尝试修改图片上传webshell未果 7. 漏洞总结 | 漏洞类型 | 风险等级 | 利用难度 | 影响程度 | |---------|---------|---------|---------| | SQL注入 | 高危 | 中 | 数据库信息泄露、管理员账户获取 | | 任意文件读取 | 高危 | 中 | 源代码泄露、配置文件泄露 | | 用户枚举 | 中危 | 低 | 用户名收集 | | XXE注入 | 中危 | 高 | 有限的信息泄露 | 8. 修复建议 SQL注入防护 : 使用参数化查询或ORM框架 对用户输入进行严格过滤 任意文件读取防护 : 限制文件访问路径 禁用目录遍历字符 实施文件访问白名单 认证机制加固 : 添加验证码防止暴力破解 统一登录失败提示信息 实施账户锁定机制 文件上传安全 : 实施文件内容检查而不仅是扩展名检查 随机化上传文件路径和名称 限制上传文件执行权限 其他建议 : 最小化数据库权限 禁用XML外部实体解析 定期安全审计和渗透测试 9. 测试工具清单 Burp Suite - HTTP代理和攻击工具 sqlmap - SQL注入自动化工具 目录扫描工具(DirBuster等) 自定义Payload和手动测试 10. 经验总结 用户枚举功能常伴随SQL注入风险 后台功能点全面测试的重要性 代码审计可辅助理解系统限制 多角度尝试同一漏洞的利用方式 权限提升路径需要创造性思维 本测试展示了从外部渗透到获取系统敏感信息的完整过程,强调了系统各层防护的重要性。