之前立志做出需要编码解决和时间相关的那道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. linux 组管理

    修改文件所有者 chown  用户名  文件名 修改文件所在的组 chgrp  组名    文件名 r = 4 , w = 2, x = 2 u  :所有者   g :所在组   o:其他组   a: ...

  2. KMPlayer 一打开总是出现右面的窗口 导航区 怎样设置不会自动打开

    两步骤第一,右键-外观-标致-管理 删除默认标致 第二,打开hosts文件,位置在 C:\Windows\System32\drivers\etc 在最下面一行加入 127.0.0.1 player. ...

  3. 机器学习进阶-图像金字塔与轮廓检测-轮廓检测 1.cv2.cvtColor(图像颜色转换) 2.cv2.findContours(找出图像的轮廓) 3.cv2.drawContours(画出图像轮廓) 4.cv2.contourArea(轮廓面积) 5.cv2.arcLength(轮廓周长) 6.cv2.aprroxPloyDP(获得轮廓近似) 7.cv2.boudingrect(外接圆)..

    1. cv2.cvtcolor(img, cv2.COLOR_BGR2GRAY) # 将彩色图转换为灰度图 参数说明: img表示输入的图片, cv2.COLOR_BGR2GRAY表示颜色的变换形式 ...

  4. elk-Logstash

    ELK是三个工具的集合,Elasticsearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构,很多公司利用它来搭建可视化的海量日志分析平台. 2. Logs ...

  5. innosetup 安装前、卸载前判断是否有进程正在运行<转>

    [Code] //安装前判断是否有进程正在运行,istask.dll文件与打包的exe文件一起 function RunTask(FileName: string; bFullpath: Boolea ...

  6. curl 超时设置<转>

    PHP cURL 的超时设置有两个 CURLOPT_CONNECTTIMEOUT 和 CURLOPT_TIMEOUT,他们的区别是: CURLOPT_CONNECTTIMEOUT 用来告诉 PHP 在 ...

  7. 使用python实现人脸检测<转载>

    原文地址:https://www.cnblogs.com/vipstone/p/8884991.html =============================================== ...

  8. rocketmq 4.2.0 版本 控制台本地搭建(史上最简单教程)

    就像发现新大陆一般,瞎折腾,搞出来了..并没有网上说的一大串....(本人公司的项目从未使用过springboot....) rocketmq  控制台,官方使用springboot 做后端,前端使用 ...

  9. 安装vue CLI后, 出现安装权限问题

    问题:安装vue CLI后,出现:npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/usr/l ...

  10. Apache tica详述

    Tika是一个内容抽取的工具集合(a toolkit for text extracting).它集成了POI, Pdfbox 并且为文本抽取工作提供了一个统一的界面.其次,Tika也提供了便利的扩展 ...