命令执行漏洞

一、命令执行漏洞的概念

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

二、命令执行漏洞的危害

它可以继承web服务程序的权限去执行系统命令或者读写文件

反弹Shell

控制整个网站或者整个服务器

进一步内网渗透

三、命令执行漏洞的原理

       当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如果用户可以控制命令执行函数中的参数时,将可以注入恶意系统命令到正常的命令中,造成命令执行漏洞。
       在操作系统中,“&、I、||”都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,从而造成漏洞。

四、命令执行漏洞成因

1、代码层过滤不严格

     商业应用需要执行命令,商业应用的一些核心代码可能封住在二进制文件当中,在web应用中通过system函数调用。例如system(" /bin/program --arg $arg");

2、系统漏洞造成命令注入

例如bash破壳漏洞(CVE-2014-6271),如果我们控制执行的bash的环境变量,就可以通过破壳漏洞来执行任意代码。

3、第三方组件造成命令注入

如Wordpress,可以选择ImageMagick这个常用的图片处理组件,处理用户上传图片时造成命令执行。再如JAVA中Struts2/ElasticsearchGroovy等。

五、命令执行漏洞常见函数

1、system函数

system ( string $command [, int &$return_var ])

同C版本的system()函数一样  本函数执行command参数所指定的命令,并且输出执行结果命令执行后的返回值为输出值的最后一行   函数本身也会打印全部的输出值

2、Exec函数

exec ( string $command [, array &$output [, int &$return_var ] )
这个函数的作用是执行command参数所指定的命令
命令执行后的值为输出值的最后一行
函数本身不会打印任何内容

3、Passthru函数

passthru ( string $command [, int &$return_var ])

同exec()函数类似
passthru()函数也是用来执行外部命令command的
当所执行的系统命令输出二进制数据,并且需要直接传送到浏览器的时候,需要用此函数来替代exec()或system()函数。

六、命令执行漏洞连接符

&:顺序执行多条命令,而不管命令是否执行成功;
&&:逻辑与,当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与||正好相反﹔
|:显示后面命令的结果;
||:逻辑或,当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行;

七、实例演示

八、漏洞防御

拓展

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SmartBI是一种企业级的商业智能系统软件,用于数据分析和报告生成。近期,SmartBI被发现存在远程命令执行漏洞。 该漏洞的存在使得攻击者可以通过构造恶意的命令,并通过远程访问的方式执行这些命令,从而获取系统权限并进行未授权操作。这可能导致许多安全风险,包括未经授权的数据访问、敏感信息泄漏、系统瘫痪等。 远程命令执行漏洞通常是由于软件代码中的缺陷或不安全配置导致的。在SmartBI的情况下,攻击者可以通过用户输入参数中的特殊字符来注入恶意命令,由于软件没有对这些输入进行充分的验证和过滤,导致了漏洞的存在。 为了防止此类漏洞的利用,SmartBI的开发者应该加强对用户输入的验证与过滤。验证用户输入的合法性,确保输入中不包含任何潜在的恶意命令,如特殊字符、命令标识符等。此外,软件应该限制命令执行的权限,只允许执行必要的操作,并保证执行环境的安全性。 对于用户来说,应该及时更新SmartBI软件到最新版本,以获取安全补丁和修复。此外,用户在使用SmartBI时应保持警惕,避免点击不明链接、下载可疑附件,以及及时报告任何异常情况。 总之,SmartBI远程命令执行漏洞的存在给企业数据安全带来了潜在威胁。开发者需要加强软件的安全性设计和防护措施,而用户则应该保持警惕并采取合适的安全措施来最大程度地降低风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值