之前立志做出需要编码解决和时间相关的那道CTF题目,但是这次没找到,相关人士找到了麻烦告诉我一声。本次再学习一下子关于正则表达式和PHP的相关知识。开课咯-。-
 
刚看题目就发现提示,说题目在变量中,emmmmmmmmmmm。太菜,不懂。

好,分析代码。
分析代码得知思路是,首先得到GET到的参数【args】的值,然后要求此参数必须符合正则表达式的规范,然后才能显示数据,才可能获取到flag-。-
怎么获得flag呢?知识匮乏,难以想象。【剧透 】:PHP的全局变量可以获取到目前所有的变量信息。详细步骤如下。
 
首先,分析preg_match(...)方法
       preg_match( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ),返回 pattern 的匹配次数。它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后将会停止搜索。详情查看http://php.net/docs.php
 
本题的pattern是"/^\w+$/",这啥意思!!!哦对,正则表达式。
第二步,分析正则表达式
^ 表示开头,是转义字符,使用时在前面加"\"
$ 表示结束,是转义字符,使用时在前面加"\"
\w 任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
       清晰明了,这段正则表达式的意思就是字符全部由【A~Z,a~z,0~9,_ 】组成,肯定不能为空。
 
       args倒是知道设置范围了,可如何获得flag呢?看见【include "flag1.php";】没,我猜测, 此文件提供了flag值,获取方法就是【通过输出全局变量来输出flag的值】。
第三步,var_dump(...)与全局变量的联合
       题目是var_dump($$args)。
var_dump This function displays structured information about one or more expressions that includes its type and value.这儿如果感觉抽象就看示例http://php.net/manual/en/function.var-dump.php
       那题目中var_dump($$args)的意思就是【将args的值作为变量v,输出变量v的类型和数值】。那要输出flag值,关键就是使变量v中存在flag的值。第二步末尾提示了全局变量拥有所有值。则变量v的名字为全局变量就OK了,此时args的值为全局变量。咱们这是PHP代码,PHP中全局变量就是GLOBALS。
$GLOBALS References all variables available in global scope.
       结合现有题目,args=GLOBALS,实践后成功获取flag,非常棒-。-

 

http://www.bugku.com:Bugku——变量1(http://120.24.86.145:8004/index1.php)的更多相关文章

  1. http://www.bugku.com:Bugku——备份是个好习惯(http://120.24.86.145:8002/web16/)

      看了bugku的这道题,陌生又熟悉.     题目首先说[备份是个好习惯],访问网站只有一串字符,,,,,emmmmm,这句话表明人家经常做备份,所以咯,肯定在网站哪里备份有网页信息.嘻嘻   1 ...

  2. Bugku——Flag在index里(http://120.24.86.145:8005/post/)

    Bugku——Flag在index里(http://120.24.86.145:8005/post/) 进入题目发现有一个file参数,查看源码,发现该参数可以包含php文件,并且题目提示,flag在 ...

  3. http://www.bugku.com:Bugku——PHP伪协议+魔幻函数+序列化的综合应用(http://120.24.86.145:8006/test1/)

      这一道题目,幸好俺有基础知识护体,不然还真干不掉.     首先,登录看题目,取消隐藏代码的注释.可知可输入三个参数txt.file和password并进行逻辑判断:应该让txt==‘welcom ...

  4. http://www.bugku.com:Bugku——jsfuckWEB5(http://120.24.86.145:8002/web5/index.php)

      今天又做了bugku上面的一道题.使用到了jsfuck,它是什么捏?   它是Javascript原子化的一种简易表达方式,用[]()!+就可以表示所有的Javascript字符,不依赖于浏览器. ...

  5. win10 如何配置 java jdk1.8环境变量(2017.2.24)

    win10 如何配置 java jdk 环境变量 这里的win10 为全新安装的系统 一.安装 下载 jdk 64位 windows 版本安装(默认安装) 默认安装的路径: C:\Program Fi ...

  6. Bugku web(1—35)

    1.web2 打开网页: 哈哈,其实按下F12你就会发现flag. 2.计算器 打开网页,只是让你输入计算结果,但是发现只能输入一个数字,这时按下F12,修改一下参数,使之可以输入多个数字,修改后输入 ...

  7. Bugku-CTF之变量1

    Day9 变量1 http://123.206.87.240:8004/index1.php      

  8. CTF中遇到的php

    1.if(eregi("hackerDJ",$_GET[id])) {   //eregi字符串对比 echo("<p>not allowed!</p& ...

  9. 记bugku的——“welcome to bugkuctf”

    今天终于拾起来ctf的比赛了,开始了练习之旅.今天写一道bugku上的题目wp,属于利用php源码泄漏的题目吧,我觉得不是很简单...所以把自己的思路放上来. 题目源头:http://120.24.8 ...

随机推荐

  1. PHP数据库基于PDO操作类(mysql)

    这是网上找的关于Mysql的操作类,非常适合初学者使用 <?php class Mysql { protected static $_dbh = null; //静态属性,所有数据库实例共用,避 ...

  2. leetcode题解 candy

    要求的条件是: 1.每个人最少一个糖果. 2.相邻的小朋友,要保证,评分高的比评分低的糖果多. 如果从一侧扫描的话,容易确定的就是递增序列,只要上升1个就够了. 容易出现问题的就是:遇到下降期,或者相 ...

  3. python multithread task_done

    queue.task_done()用在queue消费者中,在queue.get()调用之后调用queue.task_done()用于通知队列已经完成了工作,使queue.join()知道任务已经完成. ...

  4. Excel导入

    public static Collection importExcelByIs(InputStream inputstream, List<CgFormFieldEntity> list ...

  5. zTree插件 角色、部门、人员分类选择

    // 传参数调用 function test(){roleOrOrgSelect(3,function(data){console.log(data);});} /** * * @param type ...

  6. 24.Hibernate-各种类型的查询.md

    目录 1.查询的类别 2.实例 1.查询的类别 按照查询的方式分为面向对象和非面向对象 面向对象 HQL查询:面向对象方式,可以跨数据库,但是需要SQL基础.最常用的方式.查询的对象是类和类的属性,不 ...

  7. idea2017授权

    http://blog.csdn.net/qq_27686779/article/details/78870816 文章中注册码: BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUc ...

  8. 14.Java集合简述.md

    Java的集合类别,分为两类Collection和Map,Collenction包含了Set: •Set:无序,不可重复的集合 •List:有序,重复的集合 •Map:具有映射关系的集合 •Queue ...

  9. 16.2 profile 显示或者隐藏页面 修改密码

    我们auth在clent端有更加强大的功能 显示或者隐藏component 或者 我们可以阻止或者允许某个用户访问url

  10. hdu5391-Zball in Tina Town-威尔逊定理(假证明)

    Tina Town is a friendly place. People there care about each other. Tina has a ball called zball. Zba ...