描述
攻击者使用标准的SQL注入的方法注入数据执行的命令行。这样做可以直接通过滥用指令如MSSQL_xp_cmdshell或间接通过注入数据到数据库中,则会被视为shell命令。一段时间后,一个肆无忌惮的后端应用程序(或者可能是同一个应用程序的功能的一部分)获取注入数据存储在数据库中并使用这些数据作为命令行参数,而无需进行适当的验证。数据平面的恶意数据逃脱产卵新命令在主机上执行。
攻击的可能性
典型的严重性
执行流程
探索
探测SQL注入漏洞:攻击者注入SQL语法用户可控的数据输入到搜索过滤查询执行的SQL语法。
利用
通过SQL注入实现任意命令执行MSSQL_xp_cmdshell指令:攻击者利用一个SQL注入攻击注入shell代码利用xp_cmdshell指令执行。
注入恶意数据在数据库中:利用SQL注入注入数据库中的数据,以后可以用来实现命令注入如果作为命令行参数
触发命令行执行与注入参数:攻击者会导致执行命令行功能利用先前注入数据库内容作为参数。
先决条件
应用程序不正确验证数据之前存储在数据库中 |
后端应用程序隐式信任存储在数据库中的数据 |
恶意数据用于后端作为命令行参数 |
技能要求
(级别:高) 攻击者最有可能必须熟悉系统的内部功能推出这种攻击。如果没有知识,没有很多反馈机制给攻击者的指示如何执行命令注入或攻击是否成功。 |
所需资源
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
完整性 |
修改数据 |
|
保密 |
读取数据 |
|
可用性 |
不可靠的执行 |
|
保密
访问控制
授权 |
获得特权 |
|
保密
完整性
可用性 |
执行未经授权的命令 |
|
缓解措施
禁用该xp_cmdshell指令在数据库上 |
正确验证数据(语法和语义)在写作之前到数据库。 |
不隐式信任数据存储在数据库中。Re-validate前使用,以确保它是安全的使用在一个给定的上下文(例如,作为一个命令行参数)。 |
例子,实例
早些时候在仙人掌0.8.6i和SQL注入漏洞,当启用了register_argc_argv,允许远程攻击者执行任意SQL命令通过(1)cmd.php第二或(2)的第三个参数。注意:这个问题可以利用自执行任意命令中使用的SQL查询结果之后polling_items数组和popen函数(cve - 2006 - 6799)。 参考:https://www.cve.org/CVERecord?id=cve - 2006 - 6799 |
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2017-08-04
(版本2.11) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Resources_Required |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
|