跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PHPAI算法

青岑 Web 入门 CTF 靶场 Writeup

青岑 Web 入门 CTF 靶场包含基础题、PHP 漏洞、MD5 碰撞、命令执行、信息泄露及文件上传等挑战。解题方法涉及源码审计、抓包篡改、Payload 构造、正则绕过及伪协议利用。涵盖 JSON 解析、魔术哈希、数组绕过、变量覆盖等技术点,适合初学者练习 Web 安全基础知识。

宁静发布于 2026/4/9更新于 2026/9/1277 浏览

靶场介绍

青岑 Web 入门靶场对新手友好,涵盖多种常见 Web 安全漏洞类型。建议通过源码分析、抓包修改及 Payload 构造等方式进行练习。

1. Basic

解题思路: 先看源码和抓包,再找注入点和逻辑问题,最后构造 payload 拿 flag。

  • Basic: 直接 F12 查看源码获取 flag。
  • BASIC_1: 前端被封禁,查看源码获取 flag。
  • basic_2: 抓取提交包,发现 is_admin 始终为 0,修改参数后获取 flag。
  • basic_3: 查看源码,将 JS 代码放入控制台运行得到密码,进而获取 flag。
  • basic_4: 查看源码中的数组 _0,将其转换为字符串得到邀请码 QCCTF_VIP_2026。
  • basic_5: 积分计算在前端,加密函数全局可见。可直接调用页面加密函数伪造 1000 积分发送给后端,或使用自动脚本批量答题领取奖励。
import requests
import json
import base64

def get_flag():
    TARGET_URL = "http://docker.qingcen.net:38964/claim"
    payload = {"score": 1000}
    json_str = json.dumps(payload, separators=(',', ':'))
    encrypted_bytes = base64.b64encode(json_str.encode('utf-8'))
    encrypted_data = encrypted_bytes.decode('utf-8')
    headers = {'Content-Type': 'application/json'}
    data = {"data": encrypted_data}
    try:
        response = requests.post(TARGET_URL, headers=headers, json=data)
        res_json = response.json()
        if "data" in res_json:
            dec_bytes = base64.b64decode(res_json["data"])
            dec_str = dec_bytes.decode('utf-8')
            result = json.loads(dec_str)
            if "flag" in result:
                print(result["flag"])
    except Exception as e:
        print(e)

2. EZ_PHP

  • EZ_PHP: PHP 弱类型比较漏洞。要求 a 能通过 if 判断且等于 0,b 不是数字但大于 2026。
    • Payload: /?a=abc&b=3333as
  • ezphp_1: JSON 解析漏洞。需传入 JSON 字符串解析成数组,寻找键值为 "QCCTF" 的键名索引为 1。
  • ezphp_2: json_decode 配合 array_search 的弱类型绕过。利用 true 与字符串比较的特性。
    • Payload: http://.../?qc={%22A%22:%22QCCTF%22,%22n%22:[true]}

3. EZ_MD5

  • ezmd5_1: MD5 碰撞。两个数不同但 MD5 值相同(科学计数法)。Payload: ?a=QNKCDZO&b=s214587387a
  • ezmd5_2: 数组绕过。md5() 处理数组返回 NULL,导致比较相等。Payload: /?a[]=2323&b[]=43
  • ezmd5_3: 强类型比较下的数组绕过。注意 === 不会自动转换。
  • ezmd5_4: 工作量证明 (PoW)。暴力穷举 MD5 尾部特征。使用 Python 脚本爆破。
  • ezmd5: 魔术哈希。寻找 MD5 值为 0 的科学计数法。Payload: ?QC=26120
  • ezmd5_5: SHA-1 魔术哈希。使用已知魔术字符串绕过。
  • ezmd5_6: 再次利用数组绕过特性。

4. EZ_CMD

  • ezcmd: escapeshellcmd() 过滤特殊符号。直接查看根目录文件获取 flag。
  • ezcmd_1: 无过滤命令执行。使用分号 ; 拼接命令读取 flag。
  • ezcmd_2: 无回显 (Blind)。重定向输出到 /dev/null。使用注释符 # 或分号绕过。
  • ezcmd_3: 禁止空格。使用 $IFS 替代空格,或使用 < 重定向读取文件。若 cat 被禁用,可使用 tac, tail, head 等替代。
  • ezcmd_4: 正则黑名单 + 转义。使用 eval 二次解析,拆分敏感词 flag 为变量拼接。
  • ezcmd_5: 禁止字母。使用八进制 ASCII 码表示字符,如 $' 143 g141 g164' 表示 cat。
  • ezcmd_6: 基础命令执行,打印目录并读取 flag。
  • ezcmd_7: GET 参数黑名单过滤 flag。使用通配符 * 绕过。
  • ezcmd_8: system() 被禁。尝试 passthru(), exec(), shell_exec() 或反引号。
  • ezcmd_9: 禁止空格。使用 PHP 原生函数 show_source(), readfile() 无需空格;或利用 ${IFS} 替代空格。
  • ezcmd_10: 禁止分号。使用 ?> 结束 PHP 标签从而执行后续命令。
  • ezcmd_11: 未知路径。使用 highlight_file(__FILE__) 查看当前文件源码。
  • ezcmd_12: 特殊符号限制。使用函数套娃法,结合 getcwd(), scandir(), array_flip(), array_rand() 动态获取文件名并高亮显示。
  • ezcmd_13: preg_replace /e 修饰符漏洞。PHP 5.5 以下版本危险特性,替换内容会被当作代码执行。利用 {${}} 结构触发系统命令。

5. EZ_INFOLEAK

  • ezinfoleak: Base64 解码信息,遍历目录查找。
  • ezinfoleak_1: 目录穿越过滤 ../。使用 ....// 绕过。
  • ezinfoleak_2: 常规信息泄露。
  • ezinfoleak_4: .git 源码泄露。使用 dirsearch 扫描,配合 GitHack 工具还原。
  • ezinfoleak_5: .git 泄露变种,POST 请求获取文件。
  • ezinfoleak_6: .svn 源码泄露。新版本的 SVN 包含 SQLite 数据库 wc.db,使用 dvcs-ripper 还原。
  • ezinfoleak_7: .hg (Mercurial) 源码泄露。
  • ezinfoleak_8: Vim 缓存文件泄露 (.swp)。
  • ezinfoleak_9: Mac 系统文件 .DS_Store 泄露。下载后用 strings 读取。

6. EZ_FU

  • ezfu: 文件上传。上传一句话木马,GET 传参执行命令。
  • ezfu_1: 后缀名检查。将 php 改 jpg 上传,抓包改回后缀。
  • ezfu_2: 内容检查。GIF 头伪造失败,尝试其他绕过方式。

7. EZ_FL

  • ezfl: 源码线索提示 /flag.txt。
  • ezfl_1: 文件包含 LFI。使用 php://filter 伪协议读取文件内容。
  • ezfl_2: 编码转换读取。使用 convert.iconv 过滤器。

目录

  1. 靶场介绍
  2. 1. Basic
  3. 2. EZ_PHP
  4. 3. EZ_MD5
  5. 4. EZ_CMD
  6. 5. EZ_INFOLEAK
  7. 6. EZ_FU
  8. 7. EZ_FL

更多推荐文章

查看全部
  • QClaw 本地化 AI 个人助手平台完全指南
  • 基于C++的学生宿舍管理系统设计与实现
  • 深入理解 Linux 信号机制:从 task_struct 到信号递达
  • Python RDKit 化学信息学工具库使用指南
  • Spring Cloud 微服务环境搭建与工程初始化
  • 本地部署 DeepSeek-R1 模型:电脑与手机方案及硬件需求详解
  • C++ 二叉搜索树原理与增删查实现详解
  • Webots R2023b 安装配置教程
  • 基于高阶 CBF 的端到端无人机高速丛林穿越与 RL 安全避障
  • LLM 微调实战:使用 Llama-Factory 进行 DPO 训练
  • 无人机租赁平台功能与技术架构解析
  • Qwen-Image-Lightning 本地部署与实战指南
  • FlashRAG-Paddle:基于 PaddleNLP 的高效 RAG 开发与评测框架
  • iOS 26 开发兼容适配:UITabBar 液态玻璃效果与 WiFi SSID 获取
  • 大模型面试经验分享与准备指南
  • Linux 环境下 Tomcat 结合内网穿透实现公网访问
  • ComfyUI 高效工作流指南:节点思维与模板复用
  • 2026 年 AI 辅助编程工具对比:Copilot、Cursor、Claude Code 与 Codex 解析
  • Python 桌面自动化操作实战:基于 pyautogui 与 win32com
  • DaxPay 开源支付系统:支持多渠道接入与独立部署

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online