赛博音乐会
我觉得界面做得挺好看的,你觉得呢 :)
Ctrl+U 看看源码,发现可疑的 get_resource.php。猜测可以任意文件读,访问以下任意一个 URL 以确认:
/get_resource.php?path=/etc/passwd
/get_resource.php?path=../../../../../../../../../../../../../../../../../etc/passwd
解释:/etc/passwd
是 Linux 系统一定存在的一个文件,且任意用户都可读。如果我们能读到 /etc/passwd
,则可以确定存在任意文件读漏洞。
对第二行 payload 的解释:如果已经走到根目录 /
,还接受到 ../
就忽略。所以我们使用很多个 ../
确保走到根目录,而不用猜测目录级数。
利用任意文件读漏洞,我们可以获取 flag。读出 /flag.txt
即可。
正式 CTF 竞赛中,一般无法直接读到 flag,而是通过任意文件读收集信息。有一个 fuzz 列表可供参考: https://github.com/ev0A/ArbitraryFileReadList