Eval绕过限制参数限制

PHP Eval函数参数限制在16个字符

PHP代码

 <?php
 $param = $_REQUEST['param'];  
 if (
     strlen($param) < 17 &&  stripos($param, 'eval') === false &&  stripos($param, 'assert') === false
 )
 {
     eval($param);
 }
 ?>
     
 # 部署环境属于ubuntu系统

通过GET传参绕过

由于是接收param参数,并且在最后面通过eval执行,所以我们可以控制参数执行一些简单的命令。比如phpinfo();

我们学习过eval是PHP的代码执行方法,并且在Linux系统中是可以通过反引号来执行命令的。所以我们是不是可以通过eval + 反引号 吧代码执行转变为命令执行呢?

我们发现可以这样做,通过echo来输出结果。但是此时如果想写一句话木马就不行了,因为PHP代码中有限制长度。

所以我们是不是可以通过命名一个符合要求的新参数,并且通过GET或者POST传递参数,让eval执行传递的新参数,然后我们通过给新参数定义不同的内容来执行命令,那么不就可以突破

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值