ctfshow 信息收集
本篇wp由小睿孩所写,已获得xrh同意上传!同时也感谢xrh的编写
第1关-第5关
第1关
靶场进去是这样的,然后查看网页源代码
ctfshow{5c545075-c0dd-4338-8bd8-6f6cadedd007}
第2关
第一种解法:
进去以后发现查看不了网页源代码
但是可以按crtl+u 查看
js前台拦截 === 无效操作
第二种解法:
ctrl + shift + i 打开开发者工具
第三种解法:
手动输入view-source协议:即可查看
第3关
首先进去界面
先抓包,开启拦截
将 Intercept 的选项变成on就可以了,如果是页面已经进去的情况下,那么重新刷新即可
然后右击
点击 send to repeater
得到返回的数据
成功得到flag,同样的在Inspector里可以看到返回包的细节,也可以看到flag
第4关
题目让我们查看robots,那么我们直接在url后面输入robot.txt
然后可以看到他给了一个路径
flagishere.txt,然后我们接着找
ctfshow{b95d7838-10a3-414b-814b-c0bc5a25231f}
同样的在bp里
第5关-第10关
第5关
phps
访问index.phps
ctfshow{0d81191b-ade7-4e83-82c8-b6106b470846}
第6关
通过dirsearch扫描发现
发现www.zip,然后在url后输入www.zip,发现网站把www.zip这个文件下下来,
打开后发现这有两个文件,
flag{flag_here}
这个flag不对,我们在打开另一个文件看看
发现他说flag是在fl000g.txt里,猜测可能是url加这个文件名字去访问
ctfshow{25b5e579-d458-4d55-beac-95a18eb7e723}
第7关
直接dirsearch 扫一下
txt复制
发现/.git/文件,然后在url后加上/.git/
ctfshow{5b3255e9-6826-4b0b-8a73-c937912ec9f6}
第8关
扫描一下发现
发现存在这个文件夹,所以我们在url后加上这个文件夹
第9关
这里提示了是使用vim命令的时候突然死机,想到是swp文件可能会泄露,因为是网页有个错别字,所以猜测可能文件是index.php
因为vim在异常终止的时候会在原文件后面加一个.swp的后缀
所以直接在url后面加index.php.swp试试
发现他自己下载了一个文件
ctfshow{ae1e33f0-7887-4b5f-a13a-4ab0ab12197c}
第10关
提到了cookie
那么我们就就向目标网址发送请求,然后看看他返回的数据
在 set-cookie里发现了flag,但是俩{}是被url加密的
可以解密一手
ctfshow{bc155f77-6679-4e60-b4a0-3bf912b3b14b}
第11关-第15关
第11关
ps: 这个域名出现问题了
命令: nslookup -qt = txt flag.ctfshow.com
flag{just_seesee}
第12关
先用dirsearch扫一下
然后发现网页底部有
372619038
结合题目给的信息可能这个就是密码啊
结合上面dirsearch的扫描结果发现还有/admin/index.php
弹出输入账户密码,账户是admin 密码是 372619038
ctfshow{760aa8fd-05dc-411b-a7e2-af67aa080d8c}
第13关
题目里提到了技术文档
所以我们应该查看网站的链接有无文档的链接
结果在网站末尾
这里出现了document也就是文档的意思
然后我们按照指示登录
默认后台地址:http://your-domain/system1103/login.php
默认用户名:admin
默认密码:admin1103
ctfshow{a14fd3f9-53cb-427b-9c85-dc559ca72ccc}
第14关
先扫描一下目录
然后发现有一个editor的目录
但是文件上传不行,因为提交内容以后是一个404
但是这里有图片显示
发现这里有一个图片空间,点进去发现能看到网站的源码和路径
然后进到网站目录下能发现一个nothinghere的文件夹
发现这里有fl000g.txt
第15关
他提示了邮箱
在这里发现了邮箱
1156631961@qq.com
然后这里还发现了一个admin目录,发现是后台登录系统,我们不知道账户和密码,但是我们可以选择忘记密码
但是他设置了密保
我的所在地是哪个城市?
但是我们之前拿到了qq邮箱,可以去qq搜索一下本人
发现他是西安人
那我们拿到位置了就可以重置密码
密码已经重置了
我们就拿到了flag
ctfshow{387353c7-525b-420c-8fb3-dee0d6063e27}
第16到20关
第16关
既然是探针,可以尝试几个默认的tz.php phpinfo.php info.php test.php
找到探针了
然后我们输入?act = phpinfo
当你在浏览器地址栏输入 ?act=phpinfo 并回车时,你实际上是在向服务器发送一个 GET 请求。顺便给你带个包裹,包裹名字叫 act,里面的内容是 phpinfo。
然后在这里找到了flag
第17关
先扫一下,
发现了backup.sql
得到flag
第18关
发现是一款游戏,但是让我玩到101分,
我们查看源代码
发现有一个js的文件,我们可以查看
我们发现了这一段
意思就是如果你的分大于100分就会弹出一个文本框,但是内容被加密了,是unicode编码,
这里有两种解密方法,第一种是使用js的调试功能
alert (“\u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b”)
alert() 是 JavaScript 语言中内置的一个非常基础且常用的函数(准确地说是浏览器 window 对象的一个方法)。
简单来说,它的作用是:在浏览器窗口中弹出一个带有特定消息和“确定”(OK)按钮的警告对话框。
第二种我们可以使用随波逐流编码
也可以解密成功,但是这种方法解密出来的都表示需要我们去访问110.php
ctfshow{c3694a9b-471a-4921-9c3d-5c7e5cf6ba0a}
这样我们就拿到了flag
第19关
首先我们查看源代码,可以看到pazzword被写死了,也就是说我们可以绕过前端的验证逻辑,但是不能在表单里填写,因为这样的话,密码会再次被加密一遍,会导致校验不通过
所以我们可以使用bp
把pazzword里的数据换成 a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04
同时我们知道解密算法,也可以还原这道题目的密码
1 | function checkForm(){ |
加密算法:AES (高级加密标准)。具体来说是 AES-128,因为传入的 Key 是 16 个字符(16 Bytes ⋆8=128 Bits)。
加密模式:CBC (密码分组链接模式)。这种模式下,加密当前数据块会依赖前一个数据块的密文,因此必须提供一个初始化向量(IV)来加密第一个数据块。
密钥 (Key): “0000000372619038” (以 Latin1 也就是单字节 ASCII 编码解析)。
初始化向量 (IV): “ilove36dverymuch”。
填充方式 (Padding):ZeroPadding。AES 是一种块加密算法,要求明文必须是 16 字节的整数倍。如果不够,这里采用了补零(0x00)的方式凑满 16 字节。
解密脚本1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19from Crypto.Cipher import AES
import binascii
# 1. 提取前端代码中的硬编码 Key 和 IV (需转换为 bytes)
key = b"0000000372619038"
分区 WEB 的第 39 页
key = b"0000000372619038"
iv = b"ilove36dverymuch"
# 2. 后端期望接收到的密文 (Hex 十六进制字符串)
ciphertext_hex = "a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04"
# 将 Hex 字符串转换为原始字节流
ciphertext = binascii.unhexlify(ciphertext_hex)
# 3. 初始化 AES 密码器 (必须指定相同的 CBC 模式和 IV)
cipher = AES.new(key, AES.MODE_CBC, iv)
# 4. 进行解密
padded_plaintext = cipher.decrypt(ciphertext)
# 5. 去除 ZeroPadding (把尾部补充的 0x00 字节去掉)
plaintext = padded_plaintext.rstrip(b'\x00')
# 6. 打印最终的明文密码
print(f"破解出的真实密码为: {plaintext.decode('utf-8')}")
i_want_a_36d_girl
所以这题的密码是admin i_want_a_36d_girl
第20关
首先进行目录扫描
发现有db目录,然后就去下面输入db.mdb,把文件下载下来后就发现这里有flag





















































































