CBCTF2024 WP

CBCTF2024 WP

Web

1.SignIn

主要是 get 传参 a、b,参数本身的值不等,md5 的结果强比较相等,结合提示的置顶帖子即可。

1
2
?a=TEXTCOLLBYfGiJUETHQ4hAcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak
&b=TEXTCOLLBYfGiJUETHQ4hEcKSMd5zYpgqf1YRDhkmxHkhPWptrkoyz28wnI9V0aHeAuaKnak

得到答案。

2.Notes 1

一开始以为是路径穿越的题。

URL 尝试 /notes_read.php?file=note3.txt 时发现返回 Error: File not found : /var/www/html/note3.txt 也就得知访问的根目录在 /var/www/html/,通过 /notes_read.php?file=...

传参读取该目录下的文件,因此访问 URL /notes_read.php?file=notes_read.php 就可以看到 notes_read.php 的源码。

读完代码发现对于参数 $file 存在正则匹配,且实际读取文件的路径 $filePath$notes_directory$file 拼接而成,无法直接获取 /flag。而后发现 extract() 存在变量覆盖漏洞,所以传参 /notes_read.php?file=flag&notes_directory=/ 将变量 $notes_directory 的原内容覆盖,再拼接后即为/flag 路径,读取到 flag。

3.Notes 2

未完成

已有思路是反序列化后 _0rays 类下的 __wakeup() 先自动调用,而后 __toString()__set($a, $b)__get($c)__invoke()__construct($filepath),最终 readfile($filepath); 获取 flag

但是实践起来还不熟练,没有做完。

后记

阳光长跑

补做了阳光长跑一题,主要考点是前后端的通信交互,用BP抓包发现开始跑步后浏览器向后端发送位置(经纬度)信息,推测后端根据位置信息的变化距离判断跑步长度,跑步时长由后端计算后返回,不受前端影响。

所以通过BP改变位置信息使距离达到要求然后再等时长到达合适的时间即可。

Notes 2

该题为基础 PHP 反序列化,思路同上所述,具体参考我的另一篇博文PHP反序列化小结

官方WP


CBCTF2024 WP
http://5i1encee.top/2025/01/24/CBCTF2024/
作者
5i1encee
发布于
2025年1月24日
许可协议