之前立志做出需要编码解决和时间相关的那道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. UDP通讯协议实例

    1.服务端 import java.io.IOException; import java.net.*; public class UDPDemo { public static void main( ...

  2. 浅谈transient关键字

    1,用途 当一个对象实现了Serilizable接口,这个对象就可以被序列化.而有时候我们可能要求:当对象被序列化时(写入字节序列到目标文件)时,有些属性需要序列化,而其他属性不需要被序列化,打个比方 ...

  3. 机器学习进阶-图像基本操作-数值计算 1.cv2.add(将图片进行加和) 2.cv2.resize(图片的维度变换) 3.cv2.addWeighted(将图片按照公式进行重叠操作)

    1.cv2.add(dog_img, cat_img)  # 进行图片的加和 参数说明: cv2.add将两个图片进行加和,大于255的使用255计数 2.cv2.resize(img, (500, ...

  4. 递归获取包下的class文件

    ```java(这个居然隐藏不了) public class TestUrl { public static void main(String[] args) { String pageName = ...

  5. newCachedThreadPool使用案例

    newCachedThreadPool 缓存默认60s 猜下你的结果 package com.juc.threadpool; import java.util.concurrent.ExecutorS ...

  6. linux 使用spinlock的配对关系问题

    大家使用spinlock的时候,一般是这么配对: spin_lock---------------------spin_unlock------------------最轻 spin_lock_bh- ...

  7. python的解构

    今天学习python看到python的解构,觉得很有用就写下来,防止自己忘了 首先定义个列表 然后我们来解构 字典呢?字典需要两个*号才能解构 这样调用不明显 来个明显点的 上面错误是,你定义了一个形 ...

  8. 【转】JS windows.open()详解

    window.open(url, name, features, replace)  Arguments - 参数 url  可选字符串参数,指向要在新窗口中显示的文档的URL.如果省略该参数,或者参 ...

  9. LinkedHashMap 实现总结

    继承于HashMap,定义了新的内部类Entry用于实现双向链表保存记录的插入或访问顺序: accessOrder用于指示链表保存记录采用的顺序,true为访问顺序,false为插入顺序: 加入新的记 ...

  10. 关于T-SQL中exists或者not exists子查询的“伪优化”的做法

    问题起源 在使用t-sql中的exists(或者not exists)子查询的时候,不知道什么时候开始,发现一小部分人存在一种“伪优化”的一些做法,并且向不明真相的群众传递这一种写法“优越性”,实在看 ...