Web安全—远程命令/代码执行(RCE)

本文阅读 4 分钟

远程代码/命令执行(RCE)

提要:RCE(remote command/code execute)远程命令/代码执行,开发人员在开发相关命令调用功能时,没有对用户输入的数据进行过滤和验证等操作,导致攻击者输入的恶意字符被代入后端服务器执行,从而产生危害应用服务器的后果。 漏洞简介: RCE属于服务端漏洞,可以归于"命令执行漏洞"这一分类中 远程命令执行漏洞:适用于前端给用户提供了一个ping或其他操作的界面,如果后端未对输入的字符做限制,那么用户便可以通过拼接其他参数来构造用户输入,实现命令注入漏洞的发生。 举例: windows下"&"字符含义:其含义连接多个命令,连接命令都会被执行,如果前面的语句为假则直接执行后面的语句,前面的语句可真可假 img 远程代码注入原理:因为Web应用功能需求的设计,后台有时候也需要把用户的输入作为代码的一部分执行,不管是使用了代码执行的函数,还是使用了不安全的反序列化等等,如果此时对用户的输入未作判断,那么将可能会造成代码执行漏洞。 举例: img img

命令执行常见PHP函数&防御:

PHP函数: system():执行一个外部的应用程序的输入并显示输出的结果 exec():执行一个外部的应用程序,但是不显示输出的结果 shell_exec():执行shell命令并返回输出的结果的字符串 popen() proc_open() shell_exec()和exec()函数功能相同 命令执行漏洞防御: 1,用户输入进入后端命令执行的函数或方法之前,对参数进行过滤 2,禁止能执行系统命令的函数,可在php配置文件中设置disable_functions 3,参数使用单引号包裹,并在拼接前调用addslashes进行转义

代码执行PHP常用函数:

PHP函数: eval():将字符串当作函数执行(需要传入一个完整的语句) 一句话木马就是利用的代码执行漏洞:

<?php @eval($_POST);?>      @eval表示执行错误后不进行报错

代码执行漏洞防御: 1,用户输入不轻易接触eval函数,使用正则严格判断用户的输入格式是否合适 2,字符串使用单引号包裹,并在插入前进行addslashes()进行转义

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/weixin_44431280/article/details/122846058
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复