目录
0x04 [MoeCTF 2021]Web安全入门指北—GET
0x05 [MoeCTF 2021]Do you know HTTP
0x06 [MoeCTF 2022]what are y0u uploading?
0x01 [MoeCTF 2022]ezhtml
环境页面,让我们直接来查看源码就完事了
看它的完成条件,白给题
0x02 [MoeCTF 2022]Reverse入门指北
下载附件 答案就在最后面
0x03 [MoeCTF 2021]2048
题目进入是一个2048游戏画面
直接打开它的源码查看获胜条件
发现下列代码,需要将分数打到50000分(可以手打)
我们直接在网址后面加上一段更改源码中“GET”后面的代码
即/flag.php?score=50000000即可
0x04 [MoeCTF 2021]Web安全入门指北—GET
首先查看题目环境中的源码:
发现他需要moe的一个值,直接在后面给moe赋值
得到最终的答案
0x05 [MoeCTF 2021]Do you know HTTP
进入环境,看到题目中的“请求”,并结合题干,知道是HTTP请求的自定义方式:
使用Burp抓包,并将GET请求改为‘HS’
改完后发现要用本地IP,直接XFF进行伪ip
然后发现要用www.ltyyds.com进入,使用Referer进行伪造
发现要用的浏览器是LT,直接将User-Agent改为LT
最终得到了flag,题目本意是让我们知道这些浏览器,网址,ip的更改怎么进行
0x06 [MoeCTF 2022]what are y0u uploading?
看见是一个文件上传题,然后随便点一个文件发现了前端阻止,直接抓包
此时点击提交按钮,抓包并找到文件名称,将其改为任意名称并上传,绕过前端的看守
绕过后发现他需要的是一个叫f1ag.php的文件,直接将文件改名并获得flag
0x07 [MoeCTF 2022]ezphp
看到源码中有一段
说明flag不能直接赋值,用变量进行覆盖并直接构造payload打上去
打的是:?cmd=flag&flag=cmd 进行变量覆盖,切记URL中间不能加空格
0x08 [MoeCTF 2021]unserialize
反序列化题,题目直接给出了源码,我们进行代码审计:
可以看到这一段的php代码,我们构造pop链。
首先从entrance进入,然后就会出发__construct魔术方法,然后进入springboard触发__call魔术方法,最后从evil进入触发__get的魔术方法,并且将end的值改为:
'system(ls /)'来查看flag的位置。
最后知道了flag就在根目录下的flag位置,我们直接cat /flag即可。
所以最后的pop链构造完成,我们用phpstorm来序列化它,然后在源码中被反序列化即可:
O:8:"entrance":1:{s:5:"start";O:11:"springboard":1:{s:6:"middle";O:4:"evil":1:{s:3:"end";s:20:"system('cat /flag');";}}}
这就是序列化的结果,我们直接CV到题目上,然后得出flag。