2024茂安杯初高中组WriteUp

Web1

签到题

view-source 一下

得到 qweasdrtyfgh.php

Web2

index 是一个go to test.php的超链，进去后一眼文件包含

读了一下 index 跟 test 的源码，没有什么发现，绕不过 strpos

但是 data 流可用，说明开启了allow_url_fopen和allow_url_include

直接 system 任意命令执行写文件发现当前目录不可写，ls 也看了一下没有别的马子，写到 tmp 再配合文件包含 getshell

这道题拿了二血嘎嘎嘎

Web3

分析题目，这道题有以下几个限制

Copy
1.phone必须是数组
2.avatar在post参数内不能带flag字眼
3.string内不能有任何的root和别的字眼

那么，在 post 内数组绕过第一个，然后再利用__destruct 反序列化链传参即可。链中的 name 使用反序列化字符串逃逸绕过第二个限制，第三个限制只影响 post，post 的 avatar 跟解题无关，且不影响链中的 avatar

Payload:

Copy
name=O:9:"user_info":3:{s:4:"name";s:126:"rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroot";s:5:"phone";a:2:{i:0;i:1;i:1;i:1;}s:6:"avatar";s:5:"/flag";}&phone[]=1&avatar=123

两百分的题。一血多给了十分好耶！是唯一一个解出来的小组！

Misc1

是一张图片，不是 lsb 也不用改 weight

右键改成.rar 得到未加密压缩包中的 rsa.txt

右键改成.zip 可得一个加密压缩包，内有 flag.txt，不是伪加密

妈的我不会加密阿。丢去问 gpt 秒了

Misc2

签到题。压缩包内二维码扫描得到 flag 秒了

Crypto1

签到题。

PWN

别的大手子教的。我也学不会就是

main 输入两个截断后进入 get_data

这里 的 len 是自定义的可以为 - 1

进入 token 计算会异或一个 48 ('0')，如果我 name 就是 0，这个时候字符串会变为空

当后面赋值的时候因为 len 返回 - 1 就无限赋值了，v7 在 file 上面可以覆盖到 file

算一下栈偏移打过去刚好把 s 中的 flag 覆盖到 file，就打开 flag 并输出

payload
输入 0:0:

此文由 Mix Space 同步更新至 xLog
原始链接为 https://de3ay.com/posts/sec/maoming-ctf-writeup