前言:博主个人小练(纯小白)。
目录
- 1.[SWPUCTF 2021 新生赛]gift_F12已解决
- 2.[SWPUCTF 2021 新生赛]jicao
- 3.[ZJCTF 2019]NiZhuanSiWei
- 4.[SWPUCTF 2021 新生赛]no_wakeup
- 5.[SWPUCTF 2021 新生赛]ez_unserialize
1.[SWPUCTF 2021 新生赛]gift_F12已解决
根据题目,f12查看网页源码,根据提示点点找到答案。
2.[SWPUCTF 2021 新生赛]jicao
根据php代码,可知需要使用get和post。
json是第一次见,在看了wp和自己网上搜索后对其稍有了解。
构造json以get方式上传,将id=wllmNB以post方式上传。
3.[ZJCTF 2019]NiZhuanSiWei
看了wp,总结以下:
涉及:文件包含,php伪协议,反序列化。
1.进入if中,需要用到data伪协议,构造payload:text=data://text/plain,welcome to the zjctf
,以get形式访问,进入以下界面。
2.文件包含,使用php://filter伪协议,构造payloadfile=php://filter/convert.base64-encode/resource=useless.php
,,以get形式访问
成功读到useless.php的base64
解码后得到以下源码:<?phpclass Flag{ //flag.php
public KaTeX parse error: Expected group after '_' at position 29: …ublic function _̲_tostring(){ …this->file)){
echo file_get_contents($this->file);
echo “
”;
return (“U R SO CLOSE !///COME ON PLZ”);
}
} } ?>3.__tostring()魔术方式,构造payload
O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
,查看网页源码得到flag。
4.[SWPUCTF 2021 新生赛]no_wakeup
根据群里大佬发的文本资料,了解了几种魔术方式。
1.结尾有unserialize反序列化,会自动执行wakeup函数。
2.sha1不可逆,所以尝试绕过wakeup。
3.当序列化后对象的参数列表中成员个数和实际个数不符合时会绕过 wakeup。
根据题目要求构造字符串序列,改变成员个数,使其不相符,以get方式上传。
5.[SWPUCTF 2021 新生赛]ez_unserialize
进入环境,看不到题目,F12查看源码,看到以下提示:访问robots.txt试试
根据提示访问,看到题目,涉及魔术方式unserilize,__construct(),__destruct()。
类似第4题,构建字符串,以get方式访问,得到flag。
拓展:工具的使用真的是个难题,有点摸不着头脑>﹏<>﹏<。