【HVV回顾】小程序打点案例分享
字数 1551 2025-08-06 08:35:00

小程序渗透测试实战案例教学文档

0x00 前言

在HVV(护网行动)中,小程序因其低成本、易用性等特点,已成为新型重点突破对象。本教学文档基于四个真实小程序渗透案例,详细分析常见漏洞类型及利用方法。

0x01 案例一:某政务系统渗透

1. 弱口令进入后台

  • 发现过程:通过抓包获取小程序域名,直接访问发现是Fastadmin框架的管理后台
  • 漏洞利用
    • 尝试使用admin/123456弱口令组合
    • 注意点:系统登录后token会刷新,导致下一次登录必须使用上一次token
    • 成功进入后发现系统内包含20000条公民信息和数百个管理员账户,均为admin/123456弱口令

2. SQL注入漏洞

  • 前台SQL注入
    • 通过debug未关闭暴露数据库账户密码
    • 但数据库仅限本地连接,无法直接利用
  • 后台延时注入
    • 在查看管理员功能处发现存在延时注入漏洞

3. 命令执行获取服务器权限

  • 利用Fastadmin漏洞
    • 使用在线命令插件漏洞(1.1.0版本)写入PHP Webshell
    • 插件访问路径:/command?ref=addtabs
  • 写入Webshell
    • 通过"一键生成API文档"功能,将PHP文件标题设置为木马内容
    • 测试发现仅冰蝎马可用
  • 权限提升
    • 通过上传大马中的nc进行提权
    • 反弹shell到云服务器获取root权限
  • 数据库操作
    • 编写自定义SQL执行页面连接数据库
<html>
<head>
    <title>执行MySQL语句</title>
</head>
<body>
    <h1>执行MySQL语句</h1>
    <form method="POST" action="">
        <textarea name="sql_statement" rows="5" cols="50" placeholder="请输入MySQL语句"></textarea>
        <br>
        <input type="submit" value="执行">
    </form>
    <?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $sql_statement = $_POST['sql_statement'];
        $host = 'localhost';
        $username = '';
        $password = '';
        $database = '';
        $connection = mysqli_connect($host, $username, $password, $database);
        $result = mysqli_query($connection, $sql_statement);
        if ($result) {
            echo '<h2>查询结果:</h2>';
            while ($row = mysqli_fetch_assoc($result)) {
                echo '';
                print_r($row);
                echo '';
            }
        } else {
            echo '<h2>错误:</h2>';
            echo '<p>' . mysqli_error($connection) . '</p>';
        }
        mysqli_close($connection);
    }
    ?>
</body>
</html>

0x02 案例二:某县医院数据库渗透

1. SQL注入获取DBA权限

  • 发现过程
    • 在公众号挂号功能处,查看挂号记录时抓包发现带病人ID的请求
    • 添加单引号出现报错,确认存在SQL注入
  • 注入利用
    • 系统为ASP.NET框架,Windows环境
    • 尝试MySQL、Oracle均失败,最终确认为MSSQL注入
    • 获取DBA权限
  • 尝试命令执行
    • 尝试使用xp_cmdshell执行命令
    • 因HIS系统防护措施无法执行,放弃进一步利用

0x03 案例三:某中学访客系统渗透

1. 未授权访问+信息泄露

  • 发现过程
    • 打开小程序抓包即获取所有被访人信息
    • 接口未做权限验证
  • 平行越权
    • 登录后添加访问申请
    • 查看访问记录时发现接口app/visitor/getVisitorInfo?viId=1
    • 遍历ID可获取数百条访客信息和记录
    • 最终确认系统完全缺乏权限验证

0x04 案例四:县医院核酸检测系统渗透

1. 平行越权+信息泄露

  • 发现过程
    • 系统要求身份证与姓名匹配才能登录,说明数据真实
    • 登录后查看就诊人列表抓包
  • 漏洞利用
    • 修改ID参数可查看他人信息
    • 系统包含十几万条真实个人信息

2. 平行越权中的SQL注入

  • 发现过程
    • 在参数中添加单引号直接导致SQL报错
    • 符合"平行越权大概率存在SQL注入"的经验
  • 注意事项
    • 因未获得授权,停止进一步测试
    • 移交平台进行整改

0x05 总结与防御建议

常见漏洞类型

  1. 弱口令问题

    • 管理员账户使用默认或简单密码
    • 多个账户使用相同弱口令
  2. SQL注入

    • 前台和后台均可能存在
    • 包括报错注入、延时注入等多种形式
  3. 未授权访问

    • 接口缺乏权限验证
    • 平行越权问题普遍
  4. 命令执行

    • 框架已知漏洞未修复
    • 插件功能被滥用

防御建议

  1. 身份认证

    • 强制使用强密码策略
    • 实施多因素认证
    • 定期更换密码
  2. 输入验证

    • 所有输入参数进行严格过滤
    • 使用参数化查询防止SQL注入
  3. 权限控制

    • 实施最小权限原则
    • 所有接口必须进行权限验证
    • 防止平行越权
  4. 安全配置

    • 关闭调试模式
    • 及时更新框架和插件
    • 禁用危险函数
  5. 日志监控

    • 记录所有敏感操作
    • 设置异常行为告警
    • 定期审计日志

通过以上案例分析和防御建议,开发人员和安全团队可以更好地识别和修复小程序中的安全隐患,提高系统整体安全性。

小程序渗透测试实战案例教学文档 0x00 前言 在HVV(护网行动)中,小程序因其低成本、易用性等特点,已成为新型重点突破对象。本教学文档基于四个真实小程序渗透案例,详细分析常见漏洞类型及利用方法。 0x01 案例一:某政务系统渗透 1. 弱口令进入后台 发现过程 :通过抓包获取小程序域名,直接访问发现是Fastadmin框架的管理后台 漏洞利用 : 尝试使用 admin/123456 弱口令组合 注意点:系统登录后token会刷新,导致下一次登录必须使用上一次token 成功进入后发现系统内包含20000条公民信息和数百个管理员账户,均为 admin/123456 弱口令 2. SQL注入漏洞 前台SQL注入 : 通过debug未关闭暴露数据库账户密码 但数据库仅限本地连接,无法直接利用 后台延时注入 : 在查看管理员功能处发现存在延时注入漏洞 3. 命令执行获取服务器权限 利用Fastadmin漏洞 : 使用在线命令插件漏洞(1.1.0版本)写入PHP Webshell 插件访问路径: /command?ref=addtabs 写入Webshell : 通过"一键生成API文档"功能,将PHP文件标题设置为木马内容 测试发现仅冰蝎马可用 权限提升 : 通过上传大马中的nc进行提权 反弹shell到云服务器获取root权限 数据库操作 : 编写自定义SQL执行页面连接数据库 0x02 案例二:某县医院数据库渗透 1. SQL注入获取DBA权限 发现过程 : 在公众号挂号功能处,查看挂号记录时抓包发现带病人ID的请求 添加单引号出现报错,确认存在SQL注入 注入利用 : 系统为ASP.NET框架,Windows环境 尝试MySQL、Oracle均失败,最终确认为MSSQL注入 获取DBA权限 尝试命令执行 : 尝试使用 xp_cmdshell 执行命令 因HIS系统防护措施无法执行,放弃进一步利用 0x03 案例三:某中学访客系统渗透 1. 未授权访问+信息泄露 发现过程 : 打开小程序抓包即获取所有被访人信息 接口未做权限验证 平行越权 : 登录后添加访问申请 查看访问记录时发现接口 app/visitor/getVisitorInfo?viId=1 遍历ID可获取数百条访客信息和记录 最终确认系统完全缺乏权限验证 0x04 案例四:县医院核酸检测系统渗透 1. 平行越权+信息泄露 发现过程 : 系统要求身份证与姓名匹配才能登录,说明数据真实 登录后查看就诊人列表抓包 漏洞利用 : 修改ID参数可查看他人信息 系统包含十几万条真实个人信息 2. 平行越权中的SQL注入 发现过程 : 在参数中添加单引号直接导致SQL报错 符合"平行越权大概率存在SQL注入"的经验 注意事项 : 因未获得授权,停止进一步测试 移交平台进行整改 0x05 总结与防御建议 常见漏洞类型 弱口令问题 : 管理员账户使用默认或简单密码 多个账户使用相同弱口令 SQL注入 : 前台和后台均可能存在 包括报错注入、延时注入等多种形式 未授权访问 : 接口缺乏权限验证 平行越权问题普遍 命令执行 : 框架已知漏洞未修复 插件功能被滥用 防御建议 身份认证 : 强制使用强密码策略 实施多因素认证 定期更换密码 输入验证 : 所有输入参数进行严格过滤 使用参数化查询防止SQL注入 权限控制 : 实施最小权限原则 所有接口必须进行权限验证 防止平行越权 安全配置 : 关闭调试模式 及时更新框架和插件 禁用危险函数 日志监控 : 记录所有敏感操作 设置异常行为告警 定期审计日志 通过以上案例分析和防御建议,开发人员和安全团队可以更好地识别和修复小程序中的安全隐患,提高系统整体安全性。