当前位置:首页>Linux>CTF入门日记 | Day 2:Linux进阶 + Web初体验,开局即爽!

CTF入门日记 | Day 2:Linux进阶 + Web初体验,开局即爽!

  • 2026-10-11 07:12:36
CTF入门日记 | Day 2:Linux进阶 + Web初体验,开局即爽!

哈喽各位师傅们!Day 2 打卡来啦~今天继续刷 Bandit 练 Linux 基础,下午开坑 Web 方向,体验了一波"看源码找 flag"的快乐。话不多说,上干货!哈喽各位师傅们!Day 2 打卡来啦~今天继续刷 Bandit 练 Linux 基础,下午开坑 Web 方向,体验了一波"看源码找 flag"的快乐。话不多说,上干货!

📋 今日学习清单

✅ OverTheWire Bandit 通关(Level 8 - 12)

✅ Web 入门题 x 7(Bugku 平台)

✅ 学习抓包工具 reqable 的基本使用

🐧 一、Bandit 继续闯关(Level 8 - 12)

昨天刷到第7关,今天继续冲!越往后越有意思,每关都能学到新命令~

Level 8 → Level 9

题目:密码在 data.txt 中,跟在 "millionth" 这个词旁边
解法:用 grep 精准定位
grep millionth data.txt
📝 知识点:

grep

文本搜索命令,用来查找匹配内容的行

格式:grep 关键词 文件名

Level 9 → Level 10

题目:密码在 data.txt 中,是唯一只出现过一次的那行
解法:先排序再去重
sort data.txt | uniq -u
📝 知识点:

sort

:对文件内容按行排序

uniq -u

:只显示唯一的行(只出现一次的)

|

管道符:把左边命令的输出传给右边的命令

⚠️ 注意:uniq 只能识别相邻的重复行,所以必须先 sort 排序!

Level 10 → Level 11

题目:密码在 data.txt 的人类可读字符串中,前面有若干个=号
解法:先提取可读字符串,再用 grep 筛选
strings data.txt | grep "=="
📝 知识点:

strings

:从二进制文件中提取人类可读的字符串

配合 grep 使用效果更佳,直接筛选包含特定特征的行

Level 11 → Level 12

题目:data.txt 里是一段 base64 编码的数据
解法:直接用 base64 解码
base64 -d data.txt
📝 知识点:

base64

:base64 编解码命令

-d

参数表示 decode(解码)

输出:The password is dtR173fZKb0RRsDFSGsg2RWnpNVj3qRr

Level 12 → Level 13

题目:所有大小写字母都被旋转了 13 个位置(ROT13)
解法:用 tr 命令做字符替换
tr 'A-Za-z' 'N-ZA-Mn-za-m' < data.txt
📝 知识点:

tr

:字符替换命令,把左边字符集替换成右边的

'A-Za-z' 'N-ZA-Mn-za-m'

:A→N, B→O... 正好是 ROT13

<

:把文件内容重定向给前面的命令

输出:The password is 7x16WNeHIi5YkIhWsfFIqoognUTyj9Q4

🌐 二、Web 入门!首战 Bugku 七连杀

Linux 练得差不多了,下午正式开启 Web 方向!用 Bugku 的入门题练练手,顺带学了下抓包工具reqable的使用。

1. 滑稽

题目:打开网页只有一个滑稽表情包
思路:F12 查看页面源代码,直接在 body 里找到注释的 flag
💡 小技巧:Web 题上来先 F12 看源码,很多题 flag 就藏在注释里!

2. 计算器

题目:一个两位数加法题,但输入框只能输 1 位数字
思路:又是前端限制!F12 找到输入框代码,把maxlength="1"改成3,直接输入答案就行
flag:flag{ebab35e5203983872833182d90097cd9}
📝 知识点:前端的限制都是纸老虎,改源码就能绕过~

3. alert

题目:网页一直弹 alert 框说"flag就在这里",但 F12 看不到源码
思路:弹alert导致页面不停刷新,F12 根本来不及看。直接上抓包工具 reqable,发送请求看原始响应
在响应末尾发现一串 HTML 实体编码:
&#102;&#108;&#97;&#103;&#123;...
丢进解码器一转,flag 就出来了!
flag:flag{9c86778c34232adbca5a8f5149d38e3a}
📝 知识点:&#数字;是 HTML 实体编码,每个数字对应一个 ASCII 字符

4. 你必须让他停下

题目:网页一直在自动刷新,显示不同的图片
思路:同样用 reqable 抓包,不停重发请求,发现每次返回的图片编号不一样。发到第 10.jpg 的时候,flag 就出来了
flag:flag{31564bb09f0099bb8129a0e3607b0f90}

5. 头等舱

题目:网页显示"什么也没用"
思路:题目叫"头等舱"= 响应头!(这谐音梗绝了)
用 reqable 看响应头,果然发现:
Flag: flag{c2661dea1708cc17967aff81f470548f}
flag:flag{c2661dea1708cc17967aff81f470548f}
💡 划重点:Web 题除了看响应体,响应头也很重要!

6. GET

题目:看到题目名就知道考 GET 请求
思路:响应体里有 PHP 代码提示:
$what=$_GET['what'];
echo $what;
if($what=='flag')
echo 'flag{ ****}';
直接在 URL 后面加参数:

?what=flag

发送请求,flag 到手~
**flag **:flag{289c019eb1068648fc0f165ce97fba50}
**📝 知识点 **:

GET 参数通过 URL 传递,格式:?参数名=值

$_GET['参数名']

是 PHP 获取 GET 参数的方式

7. POST

**题目 **:和 GET 那题很像,不过是 POST 方法
**思路 **:PHP 代码提示:
$what=$_POST['what'];
if($what=='flag')
echo 'flag{** **}';
用 burp 或者 reqable 把请求改成 POST,请求体里加what=flag
**flag **:flag{e88e16282ccb34d3eac01e6dbbe1af68}
**📝 知识点 **:

POST 参数在请求体里传递,不在 URL 上

$_POST['参数名']

是 PHP 获取 POST 参数的方式

📝 今日总结

💡 学到的新东西

**Linux 命令类 **:
命令
用途
grep
文本搜索,查找匹配行
sort
按行排序
uniq -u
只显示唯一的行
strings
提取二进制文件中的可读字符串
base64 -d
base64 解码
tr
字符替换
**Web 入门知识 **:

F12 查看/修改前端源码,前端限制都能绕过

HTML 实体编码(&#数字;格式)

响应头也可能藏信息

GET 和 POST 请求的区别与使用

抓包工具 reqable 的基本使用

🎯 明日计划

继续刷 Web 题,多练几种题型

学一下 burp suite 的使用

晚上安排代码审计学习

🌈 写在最后:第二天感觉渐入佳境了!Web 题比想象中有意思,每道题都像在解谜,尤其是"头等舱"那题的谐音梗,解出来的时候真的会心一笑哈哈。

因为晚上还要学代码审计,今天就先学到这里。虽然题都不难,但每道题都学到了新东西,感觉很充实~

刚入门的小伙伴也可以跟着一起刷,有问题欢迎评论区交流!

觉得有帮助的话别忘了 点赞+在看+关注 呀~我们 Day 3 见!👋

最新文章

随机文章