ctf | web 变量1 writeup

萌新楼主最近也是刚开始做ctf中web部分,在这里分享一下我自己做题经验。希望对大家有帮助。



                                             //以下是萌新分析 

flag In the variable !         //flag在变量中

<?php error_reporting(0);      //关闭php中错误提示            

include"flag1.php";             //将flag1.php文件包含进来。

highlight_file(__file__);            //highlight_file()函数是高亮显示PHP语法。详细参考:highllight()函数

if(isset($_GET['args'])){        //判断是否传入args参数

$args = $_GET['args'];            //赋值

if(!preg_match("/^\w+$/",$args)){      //重点来了。这是一个正则表达式匹配字符串的函数,在这里意思是匹配任意 [A-Z,a-z,0-9,_] 的字符,就是任意大小写字母和0到9以及下划线组成.详情参考:正则表达式

die("args error!");       // 因为if语句取反了,所以如果不匹配会输出  args error!

}

eval("var_dump($$args);");    //eval()  将文本变成php命令执行。  这里也就是打印变量。$$args可以理解为$($args)

}

?>



这是web中一道关于变量的题,代码的分析我已经写在上面了,代码也是这道题的关键。

综上所述,我们并不能直接将文件名直接带入变量中,但是我们可以想到GLOBALS这个超全局变量,于是我们可以用  args=GLOBALS 传入就得到了flag了。


觉得有帮助的就点个赞吧!关注楼主每天更新web题型,更有性感学长在线答疑。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容