描述
攻击者的行为或状态变化的目标应用程序通过注入数据或命令语法non-validated的目标使用,未经公开的服务或方法的参数。
攻击的可能性
典型的严重性
执行流程
探索
发现潜在的注入向量:使用自动化工具或手工发现,攻击者识别服务或方法参数可能被用作注射向量(操作系统、API、SQL过程等)。
技术 |
手动覆盖应用程序和记录的参数可以传递到外部系统的地方。 |
用一只蜘蛛,web应用程序中,创建一个关联的url和列表输入。 |
实验
1。尝试变化参数内容:可能使用一个自动化工具,攻击者将执行注射参数的变化。
技术 |
使用一个非常大的探针字符串列表,以检测是否有一个积极的结果,,什么类型的系统目标(如果模糊)。 |
使用一个代理工具记录结果,错误消息和/或如果访问日志。 |
利用
应用程序的滥用:攻击者注入特定的语法到特定的参数来生成一个特定的恶意的效果在目标应用程序。
先决条件
目标软件无法地带的所有用户提供的输入任何内容,可能导致shell执行意想不到的行为。 |
软件必须允许用户执行或未经过过滤的输入操作系统shell,,另外,系统配置允许输出必须发送回客户端。 |
技能要求
(级别:中等) 攻击者必须确定注入向量,确定操作系统特定的命令,有选择地收集输出。 |
所需资源
沟通能力与服务器同步或异步。可选地,能够捕获输出直接通过同步通信或其他方法如FTP。 |
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密
访问控制
授权 |
获得特权 |
|
完整性 |
修改数据 |
|
保密 |
读取数据 |
|
缓解措施
设计:不要程序输入值直接在命令shell,而不是把用户输入视为有罪推定。建立一个函数,它接受用户输入并将其转换为应用程序特定的类型和值,剥离或过滤掉所有未经授权的命令和字符。 |
设计:限制程序的特权,如果元字符或其他方法绕过程序输入验证例程和shell访问获得没有特权帐户下运行。chroot监狱为应用程序创建一个沙箱中执行,使攻击者更难提升特权甚至妥协的情况下发生。 |
实现:实现一个审计日志写入到一个单独的主机,如果妥协审计日志可以提供证据和细节的妥协。 |
例子,实例
最近的一个例子的实例论证注入发生针对Java Web Start技术,简化了客户端部署的Java程序。JNLP文件用于描述程序的属性。客户端Java运行时属性设置的参数用于定义执行参数,但是如果攻击者附加命令一个合法的属性文件,然后这些命令被发送到客户端命令shell。(ref - 482] |
引用
[REF-1] g·霍格伦德和g·麦格劳。“利用软件:如何打破代码”。addison - wesley。2004 - 02。 |
|
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2019-04-04
(版本3.1) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Weaknesses |
2019-09-30
(版本3.2) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Attack_Patterns |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
2021-06-24
(版本3.5) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Weaknesses |
|