OS command injection 操作系统命令注入
1. 什么是OS命令注入?
操作系统命令注入也称为shell注入。它允许攻击者在运行应用程序的服务器上执行操作系统(OS)命令,通常会完全危及应用程序及其数据。通常,攻击者可以利用操作系统命令注入漏洞来危害托管基础架构的其他部分,并利用信任关系将攻击转移到组织内的其他系统。
2. 注入操作系统命令
在这个例子中,一个应用程序让用户查看某个商品在某个特定商店中是否有库存。此信息通过URL访问:
https://insecure-website.com/stockStatus?productID=381&storeID=29
为了提供股票信息,应用程序必须查询各种系统。由于历史原因,该功能是通过调用一个shell命令来实现的,该命令将产品和商店ID作为参数:
stockreport.pl 381 29
此命令输出指定项目的库存状态,并返回给用户。
该应用程序没有对操作系统命令注入实施防御,因此攻击者可以提交以下输入来执行任意命令:
& echo aiwefwlguh &
如果此输入在productID
参数中提交,则应用程序执行的命令为:
stockreport.pl & echo aiwefwlguh & 29
ec