MoeCTF 2021

Web

Web安全入门指北—小饼干

改下 Cookie 就可以得到 flag。

Web安全入门指北—GET

Payload 如下

2048

打开网站源代码 - 搜索 flag - 找到 getFlag 函数。

访问 /flag.php?score=100000 即可得到 flag。

babyRCE

构造 Payload 如下

可以发现该目录下有 flag.phpindex.php 两个文件。

构造 Payload 如下

就可以得到 flag 了。

unserialize

https://www.php.cn/faq/485663.html

PHP 魔术函数

  • __constract:在实例化一个类时,触发

  • __destruct:在一个实例对象被销毁的时候触发

  • __call(name, arguments):访问一个不能访问的成员方法时触发

  • __get():读取不可访问属性的值时触发。

解题

链子

  1. entrance(__construct)

  2. entrance(__destruct)

  3. springboard(__call)

  4. evil(__get)

构造序列化

Payload

Do you know HTTP

fake game

查看源代码可以看到 js 代码如下

本题通过修改 __proto__ 来修改值就能解力。

通过 POST 访问 /api/fight ,Payload 如下

访问后就可以得到 flag 了。

地狱通讯

根据以下 Python 代码

再通过题目中给的 message.format(flAg) ,因此该题考的就是 format 格式化字符串。通过构造 Payload 如下

得到回显 Your flag is <class 'flag.FLAG'> ,说明 FLAG 是个类,再通过 FLAG(f1ag) 可以推断出存在构造函数,因此通过构造 Payload 如下

就可以读取到 flag 力!

地狱通讯-改

拿到题目后先对代码进行格式化(

该题需要得到 jwtadmin 来获取 flag,在生成 jwt 的前提是获取 secretheaders ,先随便传入一个 name 来获取 jwt ,Payload 如下

可以得到 token 如下

/hello 中可以通过跟上题一样的 Python 格式化字符串来获取 secretheaders 的值,构造的 Payload 如下

通过回显可以得到 secret 的值为 u_have_kn0w_what_f0rmat_i5headers 的值为 {'alg': 'HS256', 'typ': 'JWT'}

通过以下代码

可以得到用户名为 admin 的 token,通过这个 token 作为 Cookie 再去访问 /hello 就可以得到 flag 力!

Misc

misc入门指北

flag 在 markdown 文件末尾 moectf{Th1s-1s-Misc} !指北好耶!

find_me

根据题目描述用 010 Editor 打开拉到最底下就可以发现 flag moectf{hs_g1v3_u_fl@g}

Homework

使用压缩包打开附件,用 VSCode 或其他打开 /word/document.xml 文件,通过正则表达式 <(.*?)> 来删除所有的标签仅留下文本,如下

flag 就在上述文本当中,即 flag{0h_U_f1nd_m3!}

诺亚的日记

将下载下来的文件丢到 kali 用 Wireshark 打开,可以看到基本都是 HID Data ,那就将 HID Data 的数据提取出来。

读取后通过引用中的脚本进行解码就可以得到 flag moectf{D@m3daNe_D4me_yoooooo} ,完整代码如下

Last updated