暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

douphp代码执行漏洞

是恒恒呐 2021-05-11
3338

代码执行漏洞原理:

    代码执行漏洞是指应用程序本身过滤不严谨,导致用户可以通过请求将代码注入到应用程序中执行,简单的说就是用户输入的数据被当作后端代码来执行。

代码执行函数:

    1.eval()和assert()函数

        这两个函数原本的作用就是用来动态执行代码,所以他们的参数直接就           是php代码,

        eval能执行多行数据

<?php
@eval($_REQUEST[8])
?>

        而assert只能执行单行数据,如何执行多行数据呢,可以使用写入文件函            数
        

    发现成功写入

        2.preg_replace()正则替换函数   

<?php preg_replace('/a/e',$_REQUEST[8],'asdf')?>
修饰符e可以表示被替换的字符替换成的数据可以当作代码执行

        3.create_function()匿名函数    

<?php 
$a = create_function('$id','echo $id);';//自定义函数$a
echo $a(8); //调用函数$a 执行echo $id
?>

        想要触发此匿名函数还需要调用,其实这个匿名函数去定义的时候类似           于

<?php
function a($id)
{
echo $id;
}
?>

       所以这里可以直接不调用而触发

        4.array_map()  回调函数,调用某个函数,第二个参数必须为数组

下图是该函数用法

eval无法调用,eval比较特殊,不认为是函数,属于特殊写法。

        5.特殊组合(双引号二次解析)

            php版本5.5及其以上可以使用

            

"${phpinfo()}";  => 代码执行phpinfo()      
php字符串可以使用复杂的表达式的  ${调用的函数};

漏洞复现douphp1.5

    

63和64行发现是键值分离将config表中的value值设置为POST传参中的键

发现在73和74行处删除图片,73行执行数据库语句正是要删除我们63行value,而value可控我们就可以删除任意文件了。

成功上传一个文件value=logo.jpg

我们可以构造我们上传的图片的数据包来控制value的值

成功控制value的值

点击删除

此处存在代码执行漏洞


文章转载自是恒恒呐,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论