• 代码执行
    • 当应用在调用一些能将字符串转化成为代码的函数(比如php中的eval、assert等),没有考虑到用户能否控制这个字符。将会造成代码执行
    • 使用方法:<?php eval($_GET['cmd']);?>
    • 访问:xx.php?x=phpinfo();
    • 注意,eval不属于函数而属于结构体,所以在构造回调函数得到后门时,eval函数无法使用时可用assert函数代替
    • assert()
      •   使用方法:<?php assert($_GET['cmd']);?>
      •         访问:xx.php?x=phpinfo();
    • preg_replace() --执行一个正则表达式的搜索与替换
      •   使用方法:<?php preg_replace("/moon/e",$_GET['a'],"i love moon");?>
    • call_user_func()
      •   使用方法:mixed call_user_func ( callable $callback [, mixed $parameter [, mixed
        $... ]]
      •        示例代码:<?php call_user_func($_GET['a'], $_GET['b']); ?>
      •       访问:codeexec.php?a=assert&b=phpinfo()
    • call_user_func_array()
      •   使用方法:mixed call_user_func_array ( callable $callback , array $param_arr )
      •        把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函
        数的的参数传入。
      •        示例代码:<?php call_user_func_array($_GET['a'], $_GET['b']); ?>
      •        访问:codeexec.php?a=assert&b[]=phpinfo()
    • create_function()
      •   使用方法:string create_function ( string $args , string $code )
      •        该函数的内部实现用到了eval,所以也具有相同的安全问题。第一个参数args是后面
        定义函数的参数,第二个参数是函数的代码。
      •        示例代码:<?php
        $a = $_GET['a'];
        $b = create_function('$a',"echo $a");
        $b('');
        ?>
      •  

      •  

      •  

      •  

    • ThinkPHP框架漏洞

      •   漏洞名称:ThinkPHP远程代码执行漏洞

      •         介绍:由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。

      • 框架漏洞

        •   POC

        •        s2-046远程代码执行漏洞

        •        手工操作我看不懂......不理解原理

           

           

           

           

           

  • 命令执行
    •   web应用需要调用一些执行系统命令的函数时,如PHP中的systemexecshell_execpassthrupopenproc_popen,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行
      漏洞



posted on 2023-05-25 21:05  Jcaky  阅读(20)  评论(0编辑  收藏  举报