题目信息
项
内容
比赛
BUUCTF-Real(真实漏洞复现)
方向
Web(Real)
难度
Easy
环境
授权靶场(已脱敏)
漏洞类型
Weblogic WLS-WSAT XMLDecoder 反序列化 RCE
参考
vulhub 仓库 weblogic/CVE-2017-10271(公开 PoC 复现环境)
信息收集
Oracle Weblogic 的 WLS Security 组件对外提供 webservice 服务(wls-wsat)。
入口路径:/wls-wsat/CoordinatorPortType。
参考 vulhub 官方复现方法确认回显方案(见「漏洞分析」)。
漏洞分析漏洞原理XMLDecoder 在解析用户提交的 XML 数据时存在反序列化漏洞,导致任意命令执行(RCE)。关键:WorkContext 头中的 <java> 块会被 XMLDecoder 反序列化执行,构造 ProcessBuilder 即可执行任意系统命令。
回显通道(关键难点)ProcessBuilder.start() 不回显命令输出(fa ...
题目信息
项
内容
比赛
VNCTF2022 公开赛
方向
Web
难度
Easy
环境
授权靶场(已脱敏)
服务器
openresty(纯静态前端 + Vue 推箱子游戏)
信息收集访问根路径返回一个名为 boxboy 的推箱子游戏(Sokoban),基于 Vue 构建,加载了多个 JS 文件:
12js/data.js js/index.js js/item.js js/base.jsjs/story.js js/editor.js js/ui.js
题目描述「你会踩冰块吗?」暗示是「踩冰块」推箱子谜题。注意后端 PHP 端点(login/ 目录)在这套环境里未部署,返回 404,说明 flag 不依赖后端。
漏洞分析
前端 JS 源码审计
多层编码(base64 + URL 编码)
攻击链总览(源 wp 原链转写):
1234访问首页 → 识别为 boxboy 推箱子游戏(Vue 前端) → 下载前端 JS 文件(js/data.js 等) → 在 data.js 末尾 FLAG 关卡定义里发现 base64 字段 → base64 ...
题目信息
项
内容
比赛
BUUCTF(真实漏洞复现,源标注 Real)
方向
Web
难度
Easy
分值
1
环境
授权靶场(已脱敏)
靶机
ThinkPHP 2.1(PHP 5.5.38,Apache)
参考
vulhub 仓库 thinkphp/2-rce(公开 PoC 复现环境)
练习场、题目及提交相关的实例标识已按要求删除;靶场统一记为「授权靶场(已脱敏)」。
信息收集
首页返回 ThinkPHP 示例页(Hello,ThinkPHP),底部标识 ThinkPHP 2.1。
由此确认框架版本为 2.x、运行时为 PHP 5.5,命中 preg_replace /e 修饰符仍然可用的版本区间(该修饰符在 PHP 7.0 才被移除)。
漏洞分析漏洞原理ThinkPHP 2.x 的 URL 分发器 ThinkPHP/Lib/Think/Util/Dispatcher.class.php 中使用 preg_replace 配合 /e 修饰符对路由参数做模板变量替换:
12// Dispatcher.class.php (约 102 行)$ ...
题目信息
项
内容
比赛
BUUCTF-Real(真实漏洞复现)
方向
Web
难度
源 wp 未标注(Unknown)
环境
授权靶场(已脱敏)
靶机
ThinkPHP V6.0.12LTS + PHP 7.4.33 + Apache 2.4.54 (Debian)
原题访问方式、练习场及题目实例标识与公网入口均已按要求删除;靶场统一记为「授权靶场(已脱敏)」,请求地址用 http://target:8080 占位。
信息收集
ThinkPHP 6.0.12(< 6.0.13)存在多语言功能本地文件包含漏洞。
靶机为容器化 Debian:web 根目录 /var/www/public(printenv APACHE_DOCUMENT_ROOT 确认),PHP 进程工作目录 /var/www/html/。
容器默认安装 PEAR,/usr/local/lib/php/pearcmd.php 在 register_argc_argv=On 时会把 query string 解析为命令行参数。
漏洞分析当 allow_lang_switch 开启时 ...
题目信息
项
内容
比赛
SUCTF 2019
方向
Web
难度
Easy
分值
1
环境
授权靶场(已脱敏)
练习场、题目及提交相关的实例标识已按要求删除;靶场相关信息统一记为「授权靶场(已脱敏)」。
信息收集
首页是一个 POST 表单,参数 query。
后端将用户输入直接拼入 SQL 查询并回显结果数组。
query=1 → Array([0]=>1);query=1;show tables; → 表名 Flag,可确认堆叠注入。
漏洞分析类型SQL 注入(堆叠注入 + 列枚举)
过滤规则触发 Nonono. 的关键字:
123from where union handler or andinsert update delete drop prepare outfileflag Flag information_schema
不过滤的关键字:
1select show columns desc set concat
注意 * 同样可用,且 flag 关键字只在「用户输入里显式写出」时才被拦。
原理 ...
题目信息
项
内容
比赛
SCTF2019
方向
Web
难度
源 wp 未标注(Unknown)
环境
授权靶场(已脱敏)
应用
Ruby Sinatra(非 Flask),源码仓库 ev0A/SCTF2019-Flag-Shop,主文件 Docker/app/app/app.rb
题目及练习场实例标识已按要求删除;靶场相关信息统一记为「授权靶场(已脱敏)」。
信息收集
这是 Ruby Sinatra 应用,主逻辑在 app.rb。
/api/auth 发放 HS256 JWT,payload 形如 {"uid": "...", "jkl": 20}。
flag 价格是 10**27,远大于初始 jkl=20,需要把 jkl 改大才能购买。
但 JWT 用 ENV["SECRET"] 签名,SECRET 未知,无法直接伪造。
漏洞分析漏洞类型
ERB 模板注入(SSTI)
JWT 伪造(HS256 密钥爆破)
关键漏洞在 /work 路由1234if params[: ...
题目信息
项
内容
比赛
PWNHUB 公开赛 2018
方向
Web
难度
源 wp 未标注(Unknown)
环境
授权靶场(已脱敏)
题目描述
一个文件上传功能,提示 Allow One Image File(只允许上传一张图片)
信息收集访问 index.php.bak 得到源码,但源码被 phpjiami 加密。无需硬解密,结合公开 writeup 与复现即可还原核心逻辑(见下)。
漏洞分析核心逻辑(经 writeup 及复现确认):
12345678910111213141516171819$filename = !empty($_POST[$this->field]) ? $_POST[$this->field] : $_FILES[$this->field]['name'];if(!is_array($filename)) { $filename = explode('.', $filename);}foreach ($filename as $name) ...
题目信息
项
内容
比赛
NewStarCTF 2023 公开赛道
方向
Web
难度
Easy
环境
授权靶场(已脱敏)
服务器
PHP/7.3.15 + openresty
信息收集访问根路径返回一段 UTF-8 编码的提示(浏览器可能显示为乱码,实为 GBK 与 UTF-8 混淆):粗心的管理员泄漏了一些敏感信息,请你找出他泄漏的两个敏感信息! 关键信息是「泄漏了两个敏感信息」。
对 Web 根目录常见敏感文件进行扫描,结果:
路径
状态码
说明
/robots.txt
200
泄露 flag 第一部分
/www.zip
200
源码备份,泄露 flag 第二部分
其他(.git、.svn、.env 等)
404
不存在
攻击链总览(源 wp 原链转写):
12345# 访问首页 → 提示「泄漏了两个敏感信息」# → 扫描 Web 根目录敏感文件# → robots.txt 泄露 PART ONE# → www.zip 源码备份泄露 index.php 中的 PART TWO# → 拼接得到完整 fl ...
题目信息
项
内容
比赛
NewStarCTF 2023 公开赛道
方向
Web
难度
Easy
环境
授权靶场(已脱敏)
服务器
Python 3.8 + Flask(Werkzeug debug) + openresty
信息收集访问根路径 /,返回 give me number1 and number2,i will help you to add,说明需要传 number1、number2 两个参数做加法运算。
正常传参 /?number1=1&number2=2 返回 not ssti,flag in source code~3:3 是 1+2 的结果;not ssti 排除 Jinja2 模板注入方向;flag in source code 明确指出 flag 在源码里。
123456GET /?number1=1&number2=2 HTTP/1.1Host: target:8080HTTP/1.1 200 OKnot ssti,flag in source code~3
漏洞分析
Flask debug=True 模式下的 ...
题目信息
项
内容
比赛
HITCON 2016
方向
Web
难度
Easy
环境
授权靶场(已脱敏)
漏洞类型
Node.js vm2 沙箱 + Buffer 内存泄漏(类 Heartbleed)
信息收集访问 / 直接返回源码:
123456789101112131415161718192021"use strict";var randomstring = require("randomstring");var express = require("express");var { VM } = require("vm2");var fs = require("fs");var app = express();var flag = require("./config.js").flagapp.get("/", function(req, res) { res.header(&qu ...










