[2023 MoeCTF] WEB wp
环境有问题,我开始还能用自己ip访问,后面突然不行了,这导致不能抓取本地的包,没关系照样做(^-^)
http
签到题一
第一眼还没看懂,这应该满足他的条件即可拿到flag
1和2,分别get和post传参,
3.修改Cookie为character为admin
4.添加字段X-Forward-For: 127.0.0.1
5.修改User-Agent内容为MoeBrowser
Web入门指北
签到题二
解密:
666c61673d6257396c5933526d6533637a62454e7662575666564739666257396c513152475831637959 6c396a61474673624756755a3055684958303 |
对密码不是很熟悉,但对这里应该只能是md5、base64、16进制
一看只能是16进制
进行16进制解码:flag=bW9lY3Rme3czbENvbWVfVG9fbW9lQ1RGX1cyYl9jaGFsbGVuZ0UhIX0
这里面还加了一层base64,
进行解码:moectf{w3lCome_To_moeCTF_W2b_challengE!!}
彼岸的flag
签到题三
查看源代码搜索注释(<!–)就行(藏得靠后…)
Cookie
根据他给出的api进行注册和登录,然后获取flag
提示我们不是admin用户,拿到cookie,
进行base64解码,得到{"username": "yyj", "password": "123456", "role": "user"}
修改为{"username": "admin", "password": "123456", "role": "admin"}
再进行base64编码得到eyJ1c2VybmFtZSI6ICJhZG1pbiIsICJwYXNzd29yZCI6ICIxMjM0NTYiLCAicm9sZSI6ICJhZG1pbiJ9
替换Cookie中的token值,再访问flag,得到flag
{"error": "ok", "data": {"flag": "moectf{cooKi3_is_d3licious_MA9iVff90SSJ!!M6Mrfu9ifxi9i!JGofMJ36D9cPMxro}"}} |
gas!gas!gas!
多看了几眼,根据他给的说明,要正确提交正确的表单,
然后根据规则,编写python脚本,注意一下Cookie(session)问题,开始还没注意到
import requests |
跑一下就可以出flag
moe图床
经典文件上传处理
首页查看js源码,查看ajex,发现upload.php
进行访问,得到源码
对上传文件检查了文件类型,和文件名,关键$fileNameParts = explode(‘.’, $fileName); 将文件名变为数组后,$secondSegment = $fileNameParts[1];
固定取下标为1
绕过:抓包,修改文件类型为image/png,修改文件名为test.png.php
这里我没抓包,我用的python脚本
import requests |
上传一句话木马成功!
这里附上一句话木马(不看就好-*-*)
89504E47 |
访问验证一下
用蚁剑一连,flag就在根目录
meo图床
文件上传先试下水,上传成功
查看一下图片
看这url,应该是用着文件包含,再试试,尝试包含/etc/passwd
这里只能显示图片,burp抓下包,这里我改成用python脚本(也一样)
ok,成功包含,试下flag
居然是个提示(…….),访问一下Fl3g_n0t_Here_dont_peek!!!!!.php
这里发现是PHP的md5弱比较,不多说了
最终payload
http://localhost:55371/Fl3g_n0t_Here_dont_peek!!!!!.php?param1=s878926199a¶m2=s214587387a |
夺命十三枪
典型的PHP反序列化中的字符串逃逸题目
访问它包含的文件Hanxin.exe.php ,得到源码,
对两个页面进行代码审计,发现,关键是反序列化后Spear_Owner 属性为MaoLei 就可获得flag
而我们可以通过get传参给Chant 属性赋值,恰巧他对序列化的字符串进行了如下的字符串替换
所以先写出要逃逸的字符串:
";s:11:"Spear_Owner";s:6:"MaoLei";} |
然后要逃逸的字符总数为35个,
发现:di_qi_qiang 替换后增加5个字符,di_jiu_qiang 替换后增加20个字符
因此加入di_qi_qiang 3个,di_jiu_qiang个;序列化后替换后会恰好增加35个字符,然后后面的字符就能逃逸出去,进行反序列化到}结束,就此覆盖了他构造函数对Spear_Owner 赋值,拿到flag
最终payload
http://localhost:53192/?chant=di_qi_qiangdi_qi_qiangdi_qi_qiangdi_jiu_qiang";s:11:"Spear_Owner";s:6:"MaoLei";} |