代码执行定义:
------ 应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。远程代码执行实际上就是调用服务器网站代码进行执行。
------ 代码执行漏洞是指应用程序本身过滤不严,用户可以通过请求将代码注入到应用中执行。
将字符串当做函数进行执行,需要传入一个完整的语句,必须以分号 ; 结尾,最常用的函数:
eval('echo "hello";'); ?>
判断是否为字符串,是则当成代码执行。
在php7.0.29之后的版本不支持动态调用
低版本
<?php assert($_POST['a']); ?>
7.0.29之后
<?php
$a = 'assert';
$a(phpinfo());
?>
中间的php代码将会被解析。
${phpinfo()};
涉及到的函数不同
执行的方式不同
命令执行: 一般指操作系统命令
远程代码执行: 一般指的是脚本代码