douphp代码执行漏洞

admin 2024年5月8日21:45:27评论27 views字数 1031阅读3分26秒阅读模式

代码执行漏洞原理:

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

代码执行函数:

    1.eval()和assert()函数

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

        eval能执行多行数据

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

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

douphp代码执行漏洞

    发现成功写入

douphp代码执行漏洞

        2.preg_replace()正则替换函数   

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

douphp代码执行漏洞

        3.create_function()匿名函数

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

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

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

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

douphp代码执行漏洞

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

下图是该函数用法

douphp代码执行漏洞

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

douphp代码执行漏洞

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

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

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

douphp代码执行漏洞

漏洞复现douphp1.5

douphp代码执行漏洞

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

douphp代码执行漏洞

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

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

douphp代码执行漏洞

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

douphp代码执行漏洞

成功控制value的值

douphp代码执行漏洞

点击删除

douphp代码执行漏洞

此处存在代码执行漏洞

douphp代码执行漏洞

douphp代码执行漏洞

原文始发于微信公众号(是恒恒呐):douphp代码执行漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月8日21:45:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   douphp代码执行漏洞http://cn-sec.com/archives/951828.html

发表评论

匿名网友 填写信息