操作系统命令注入(OS command injection)学习笔记

操作系统命令注入(OS command injection)是一种严重的安全漏洞,允许攻击者执行任意操作系统命令。文章介绍了OS命令注入的概念,展示了如何通过注入特殊字符执行命令,并列举了Linux和Windows平台上的有用命令。此外,还讨论了OS盲注的检测与利用,包括通过时间延迟、输出重定向和带外交互(OAST)技术。最后,提出了避免OS命令注入的策略,如避免调用OS命令和实施严格输入验证。
摘要由CSDN通过智能技术生成

笔者burpsuite在线安全学院的OS command injection学习笔记。限于本人水平,笔记质量不是很高,假如有看到的大佬轻喷,很多地方是Google翻译的,还请多多包涵。


操作系统命令注入
在本节中,我们将解释什么是OS命令注入,描述如何检测和利用漏洞,为不同的操作系统拼写一些有用的命令和技术,并总结如何防止OS命令注入。

什么是OS命令注入?

操作系统命令注入(也称为shell注入)是一个Web安全漏洞,它使攻击者可以在运行应用程序的服务器上执行任意操作系统(OS)命令,并且通常会完全破坏该应用程序及其所有数据。攻击者通常可以利用OS命令注入漏洞来破坏托管基础结构的其他部分,利用信任关系将攻击转移到组织内的其他系统。

操作系统命令注入

执行任意命令

考虑一个购物应用程序,该应用程序使用户可以查看特定商店中是否有库存商品。该信息可通过如下网址访问:

https://insecure-website.com/stockStatus?productID=381&storeID=29

为了提供库存信息,应用程序必须查询各种旧系统。由于历史原因,该功能是通过使用产品和存储ID作为参数调用shell命令来实现的:

stockreport.pl 381 29

此命令输出指定项目的库存状态,并返回给用户。
由于该应用程序无法防御OS命令注入,因此攻击者可以提交以下输入以执行任意命令:

& echo aiwefwlguh &

如果此输入是通过productID参数提交的,则应用程序执行的命令为:

stockreport.pl & echo aiwefwlguh & 29

该echo命令仅使提供的字符串在输出中回显,并且是测试某些类型的OS命令注入的有用方法。该&字符是一个shell命令分隔符,因此执行的实际上是一个接一个的三个独立命令。结果,返回给用户的输出为:

Error - productID was not provided
aiwefwlguh
29: command not found

输出的三行表明:

  • stockreport.pl执行 原始命令时没有预期的参数,因此返回了错误消息。
  • echo执行 注入的命令,并在输出中回显提供的字符串。
  • 原始参数29作为命令执行,从而导致错误。
    &通常, 将附加命令分隔符放在注入命令之后是有用的,因为它会将注入
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值