之前立志做出需要编码解决和时间相关的那道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. react-native android 报错 error calling Appregistry.runApplication

    解决了权限问题以为就没问题了,但是进来就红屏了,报错信息如下: 解决了,懒得截图了 error calling Appregistry.runApplication 这个问题也找了很久,开始找到 ht ...

  2. Crontab 删除N天前日志

    linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志 ...

  3. 命令行下将磁盘从GPT转换为MBR

    1.在系统提示无法安装的那一步,按住“shift+f10”,呼出“cmd”命令符 2.输入:diskpart,回车 进入diskpart 3.输入:list disk,回车 显示磁盘信息 4.输入:s ...

  4. Go语言学习笔记(2)

    数组 var a [2]string a[0] = "Hello" a[1] = "World" primes := [6]int{2, 3, 5, 7, 11 ...

  5. shell定时任务crontab

    cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details ...

  6. C++与java编程区别(一)

    转载自http://blog.sina.com.cn/s/blog_75f4e17c0101295o.html C++ HelloWorld main.cpp #include< iostrea ...

  7. 游戏引擎中三大及时光照渲染方法介绍(以unity3d为例)

    (转)游戏引擎中三大及时光照渲染方法介绍(以unity3d为例)   重要:在目前市面上常见的游戏引擎中,主要采用以下三种灯光实现方式: 顶点照明渲染路径细节 Vertex Lit Rendering ...

  8. ceph部署手册

    CentOS7.2部署Luminous版Ceph-12.2.0 在CentOS7.2上安装部署Luminous版Ceph-12.2.0.由于ceph的Luminous版本默认使用bluestore作为 ...

  9. spark pyspark 常用算法实现

    利用Spark-mllab进行聚类,分类,回归分析的代码实现(python) http://www.cnblogs.com/adienhsuan/p/5654481.html 稀疏向量: 关于Spar ...

  10. “2017面向对象程序设计(Java)第十三周学习总结”存在问题的反馈及本周教学安排

    “2017面向对象程序设计(Java)第十三周学习总结”存在问题的反馈及本周教学安排1. 图形界面事件处理技术是Java GUI编程核心技术,要求同学们掌握其基本原理和基本编程模型:2. 本周四理论课 ...