


curl -X POST -d "what=flag" http://171.80.2.169:19534
🎯 这道题的核心原理:HTTP POST 传参 + 后端条件判断
1. 题目到底在干什么?
题目页面写着:
"什么也没有。"
这是后端代码故意写的:
- 正常访问(GET 请求)→ 后端输出:什么也没有
- 带上
what=flag用 POST 方式提交 → 后端验证通过 → 输出 flag
这就是最经典的 "HTTP 请求方法 + 传参绕过" 题型。
2. 后端真实代码逻辑(模拟)
这题的服务器后台代码,大概长这样:
php
运行
if ($_POST['what'] === 'flag') {
echo "flag{xxxxxxxxxxxx}";
} else {
echo "什么也没有。";
}
原理一句话总结:
只有用 POST 方式发送 what=flag,服务器才会返回 flag;否则什么都不给。
3. 为什么要用 curl?
因为:
- 浏览器直接访问 = GET 请求
- 题目要求 = POST 请求
- 浏览器不能直接发 POST,所以用 curl 命令行工具 发送 POST 请求
curl 命令的作用:
cmd
curl -X POST -d "what=flag" 网址
-X POST:指定请求方式为 POST-d what=flag:提交参数what=flag
4. 完整流程(超清晰)
- 你访问页面 → GET 请求 → 显示 "什么也没有"
- 你用 curl 发送 POST + 参数 what=flag
- 服务器收到参数 → 验证正确
- 服务器把 flag 返回给你
🔥 最终极简原理
这道题考的就是:GET 与 POST 请求的区别 + 后端参数校验。
- GET = 看不到 flag
- POST + what=flag = 看到 flag
你以后遇到这类题的万能解法
- 页面空白 / 显示 "什么都没有"
- 大概率是 需要 POST 传参
- 用 curl 发 POST 请求
- flag 直接出来
总结
- 原理 :GET 不返回 flag,POST 提交 what=flag 才返回 flag
- 工具:curl 用来发送 POST 请求
- 考点:HTTP 请求方法、POST 传参
🔥 CTF Web 入门 5 大秒杀套路(背会 = 直接拿分)
我给你总结最常用、最简单、新手一学就会 的 5 类套路,90% 简单 Web 题都能直接秒!
套路 1:查看网页源代码(最基础)
适用题 :页面空白、显示 "什么也没有"、看起来啥都没有秒杀方法 :右键 → 查看页面源代码flag 经常藏在:
- HTML 注释里
<!-- flag{xxx} --> - 隐藏的 input 框
- 畸形标签后面
一句话口诀:页面啥都没 → 先看源代码!
套路 2:GET / POST 请求切换(你这题就是这个)
适用题 :页面提示 "参数错误""请用正确方式访问"秒杀方法:
-
GET:直接在网址后加
?参数=值plaintext
http://xxx?what=flag -
POST:用 curl 发请求(你刚学的) plaintext
curl -X POST -d "what=flag" 网址
常见参数名 :flag、what、id、cmd、file
套路 3:目录扫描 / 备份文件泄露
适用题 :页面正常,但找不到 flag秒杀方法:直接访问常见备份文件:
plaintext
/index.php.bak
/index.php~
/.git
/flag.txt
/flag.php
/www.zip
CTF 最常考:/flag.txt 直接访问就出 flag!
套路 4:请求头伪造(最常考)
适用题 :提示 "仅限本地访问""仅限浏览器访问"秒杀方法:伪造 HTTP 头:
- Client-IP: 127.0.0.1
- X-Forwarded-For: 127.0.0.1
- Referer: 正确网址
- User-Agent: 浏览器 / 手机
curl 伪造头命令:
plaintext
curl -H "X-Forwarded-For: 127.0.0.1" 网址
套路 5:弱口令 / 万能密码
适用题 :登录框、管理员页面秒杀密码(直接试):
plaintext
admin/admin
admin/123456
admin/admin123
万能密码(登录框直接输):
plaintext
admin' or 1=1#
🚀 终极总结:新手 CTF Web 做题顺序(万能流程)
- 看页面源代码
- 扫目录 / 访问 flag.txt
- 看请求方式(GET/POST)
- 伪造 IP、UA 头
- 试弱口令 / 万能密码
按这个顺序,80% 简单题直接拿下!