[CTF题目总结-web篇]攻防世界-warmup

文章目录

    • 一、题目分析
    • 二、具体思路
    • 三、题目总结

you can’t see it? well,I guess i can.

一、题目分析

题目链接:warmup
进去看到一个调皮并使劲微笑的表情,查看源代码提示了source.php(也可以用御剑扫),在source页面是一段代码审计:大意要求参数file在白名单内(这里有两次检查),然后包含这个文件。对于第二次检查,这里可以使用url多次编码进行绕过(事实上这也是web过检测的常见操作)。
其实本题是根据chaMD5安全团队的一篇推文设计的,具体链接:phpmyadmin4.8.1后台getshell

二、具体思路

  1. 进入页面F12查看源代码,看到关键提示source.php,跟进。
    [CTF题目总结-web篇]攻防世界-warmup_第1张图片2.代码审计。如果参数file符合checkFile函数检测规则,则包含此文件。这里我们可以利用url多次编码绕过第二个检测。
    [CTF题目总结-web篇]攻防世界-warmup_第2张图片[CTF题目总结-web篇]攻防世界-warmup_第3张图片
    3.构造payload。哦对了,这里的ffffllllaaaagggg是在hint.php中发现的,显然flag在这个文件里。其实文件名提示了我们要使用四层目录,这里比较坑。
    [CTF题目总结-web篇]攻防世界-warmup_第4张图片

三、题目总结

其实本题的收获不是URL编码绕过(indeed,that’s normal),而是include函数有这么一个神奇的功能:以字符‘/’分隔(而且不计个数),若是在前面的字符串所代表的文件无法被PHP找到,则PHP会自动包含‘/’后面的文件——注意是最后一个‘/’。
笔者实测如下:
[CTF题目总结-web篇]攻防世界-warmup_第5张图片

你可能感兴趣的:(CTF大类)