RCE命令执行/代码执行总结
创始人
2024-06-02 07:58:47

RCE(remote command/code execute)

RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

命令注入

是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一。

当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。
 

漏洞危害

    继承Web服务器程序的权限,去执行系统命令
    继承Web服务器程序的权限,读写文件
    反弹shell
    控制整个网站
    甚至控制整个服务器

PHP命令执行函数

1. system() :

原型:string system ( string $command [, int &$return_var ] )
与passthru的基本相同,但是system返回结果并且输出。(查看system和pssthru的返回值可以看出)

2. shell_exec():

shell_exec — 通过 shell 环境执行命令 ( 这就意味着这个方法只能在 linux 或 mac os的shell环境中运行 ),并且将完整的输出以字符串的方式返回。如果执行过程中发生错误或者进程不产生输出,则返回 NULL。
是反撇号 (`) 操作符的变体.

3. exec():

原型:string exec ( string $command [, array &$output [, int &$return_var ]] )
exec执行command命令,但是不会输出全部结果,而是返回结果的最后一行,如果你想得到全部的结果,可以使用第二个参数,让其输出到一个数组,数组的每一个记录代表了输出的每一行,如果输出结果有10行,则数组就有10条记录。所以如果你需要反复输出调用不同系统外部命令的结果,你最好在输出每一条系统外部命令结果时清空这个数组,以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0

4. passthru():

原型:void passthru ( string $command [, int &$return_var ] )
与exec的区别:passthru直接将结果输出,不返回结果,不用使用echo查看结果。

PHP代码执行函数

代码执行漏洞与命令执行漏洞具有相通性。
利用系统函数实现命令执行,在php下,允许命令执行的函数有:
eval()、assert()、preg_replace()、**${}**等等,以后遇到在继续补充。
如果页面中存在这些函数并且对于用户的输入没有做严格的过滤,那么就可能造成远程命令执行漏洞。

注意: ${}执行代码(在 双引号 中倘若有${}出现,那么{}内的内容将被当做php代码块来执行。)
方法:${php代码}、

重点:eval 是代码执行,是执行php、python、java代码的。eval是一个语言构造器并不是一个函数,不能被可变函数调用

eval()函数与assert()函数的区别:

eval():函数把字符串按照 PHP 代码来计算,该字符串必须是合法的 PHP 代码,且必须以分号结尾。
如eval(“echo 1;”)

assert():功能是判断一个表达式是否成立,返回true or false,重点是函数会执行此表达式。如果表达式为函数如assert(“echo(1)”),则会输出1,而如果为assert(“echo 1;”)则不会有输出。

案例:

命令执行:

 分析:首先该功能点是测试ip使用的,那么他基本属于是命令执行,正常测试如下;判断操作系统为Windows系统,接下来我们输入系统命令尝试下,发现直接输入系统命令是不可以的,那我们可以使用 |  尝试下;验证成功!

代码执行:

 

 

 

相关内容

热门资讯

落地深圳,广东首个高校微校区如... 1月12日,深圳市罗湖区鸿蒙生态大厦内,第三届广东省教育行业信创生态大会同步举行了广东技术师范大学(...
原创 神... 火影忍者手游1月高招S忍十尾人柱力带土上架之后,接下来一段时间内还会上架多个新忍者,主要就是神驹佑将...
AI给出的搜索结果,可信吗? 出门旅游住哪家酒店,咖啡机买哪个品牌,电动牙刷哪款好用……随着生成式人工智能搜索工具的日趋成熟,人们...
【甘快看·迎两会 | 现场报道...   (新甘肃客户端记者李杨 李静 白羚媛 王登科)
贾国龙、罗永浩微博被禁言 微博... 据北京日报,微博CEO“来去之间”发布微博:以后想论战,应该还是需要通过媒体采访的方式来进行~~“网...