
第八届强网杯青少年专项赛选拔赛WP by 她也终为过往

一、 战队信息
战队名称:她也终为过往战队
战队排名:全国第19名
二、 解题情况
三、解题过程
Misc
1.签到漫画
拼好二维码,直接识别
flag{youthful_and_upward}
2.whitepic
后缀改gif,直接拖剪映
flag{passion_is_the_greatest_teacher}
3.删除后门用户
先连上目标机器,看一下用户,发现存在backdoor用户
直接试一下sudo userdel -f backdoor,输入ctf的密码后发现没权限,想到了提权,随便搜了一下提权发现这篇文章:最详细Linux提权总结(建议收藏) – 随风kali – 博客园
直接试了一下/usr/sbin/userdel -f backdoor 发现用户占用了进程,但是kill -9后进程又被拉起,想到了守护进程,直接问一下GPT-4o,
试了一下第一个指令,没权限,试了第二个指令发现查看了可以看到守护进程脚本
直接kill -9 22秒了
然后直接/bin/sbin/userdel -f backdoor ,然后发现挂了,直接checky一下flag
flag{ccd87bb0-4874-43d2-b865-cf682a20b327}
4.问卷
回答问卷直接出了
flag{thank_you_for_your_support}
Crypto
1. AliceAES
拿到key和iv,直接cyberchef
flag{e36e5175-58ea-4649-a51e-7372475a1bd9}
2. Easymath
拿到附件丢gpt一把梭
1 | from math import log2 |
运行得到flag{77310934-21fa-4ee4-a783-dc1865ebab28}
3. Classics.
直接跟着思路用厨子,但是发现base32解码出来是乱的,后面问了GPT-4o也不行
懒得搞其他的方法了直接给Ciphey大模型一把梭
flag{2834d185-a1da-4fb1-8bac-59076eb6a634}
Reverse
1. EnterGame
IDA拖进去看一下,因为本人是Pwn手,所以最开始以为chacha20是自定义函数,所以卡了半天,又没拿到小女孩的前3血,后来经过搞密码学的队友提醒,chacha20好像不是自定义函数,所以搜了一下,发现这篇文章ChaCha20加密 与 Salsa20加密 – TLSN – 博客园但是看不懂,直接问GPT
虽然还是看不懂具体细节,但是只要知道加解密脚本一样就行了,这里直接patch,把输入的s1改成密文,IDA动态调试我不会,就直接用pwngdb了
因为开了PIE所以用$rebase()下断点
断点到memcmp之前看寄存器状态,发现flag
flag{385915ad-8f32-49d0-94c3-0067f1dad1bd}
Web
1.cyberboard
下发容器,需要登录,先分析附件。
分析附件,models文件夹下有user.js文件内包含两个用户。
分别登录后,发现guest的普通用户可能只是误导,重新分析附件内文件。
通过重新审计,疑似存在原型链污染漏洞:
parse和merge方法没有过滤敏感属性,只有简单的验证。
构建payload过程中,通过网上学习:https://cn-sec.com/archives/424117.html
想法:将flag保存到flag.txt里:
1 | {"__proto__":{ |
执行一下,再次访问生成的txt文件
成功出flag
flag{199a614b-5803-49dd-92aa-711db23a0726}
2. ezGetFlag
通过开发者工具看到button触发时发起get请求,
右键编辑重发,将请求方式改为POST,获得flag。
flag{df8a6efb-119d-4b6d-a77a-d31e3e83a784}
3. ezFindShell
这题看着吓人,实际很简单,拿到www.zip源码后直接传[SHELLPUB.COM在线查杀](https://n.shellpub.com/detail/5f1560b2-f16a-4386-8ca8-2961e7ec23b0)
检测一下WEBSHELL,结果太垃圾了检测一堆没用的垃圾
还是用Seay手搓快,直接采用逆向分析法找传入参数点,搜了一下post,直接就有了
拖进我的phpstorm整理了一下查看就是个简单的webshell
利用array_filter和base64_decode
array_filter允许提供一个回调函数。如果传入的$e值是经过Base64编码的PHP内置数名称(例如system),会导致命令执行
所以直接上POC
1 | curl ‘eci-2zef9jt0mp85x3riybvh.cloudeci1.ichunqiu.com/1de9d9a55a824f4f8b6f37af76596baa.php?e=c3lzdGVt' -d 'POST=ls' |
flag{ca9cb1c9-4368-4dc4-a8a6-09a9576f9546}
PWN
1. clock_in
这次的Pwn就是一个简单的不能再简单的ret2libc,但是我眼瞎了,最后payload写好了忘记sendlineafter()一直以为是接受puts地址的问题,结果在那里调试了半天,本能拿到小女孩一血的qwq
上来直接checksec一下,基本操做(基操),发现只开了NX
拖进我的IDA9.0官方泄露版里直接发现几个超级简单的漏洞利用点
第一次用puts溢出泄露puts的got表地址,返回地址写成main或者libc_start_main
推荐libc_start_main因为会直接对栈进行重置,这样可以保证栈平衡,但是为了抢小女孩的一血,我直接返回main函数因为可以直接用elf.sym[‘main’],很方便
不用人工去找,第二次溢出进行system()函数的调用
下面直接放Exp:
1 | from pwn import * |
Getshell后根据题目说明直接flag在/home/ctf/flag,直接cat /home/ctf/flag
- 标题: 第八届强网杯青少年专项赛选拔赛WP by 她也终为过往
- 作者: 0x h41f
- 创建于 : 2024-11-24 18:00:00
- 更新于 : 2025-07-27 21:50:35
- 链接: https://redefine.ohevan.com/2024/11/24/202412241800/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。