CAPEC-48:本地文件名传递给函数,期望一个URL |
描述
这种攻击依赖于客户端代码访问本地文件和资源而不是url。当客户端浏览器是期待一个URL字符串,而接收到请求的本地文件,在浏览器中执行可能发生的进程空间与本地文件浏览器的权威。攻击者可以将此请求的结果发送到本地文件到一个网站,他们控制。这种攻击可以用来窃取敏感的身份验证数据(本地或远程),或获得系统配置信息发动进一步攻击。
攻击的可能性
典型的严重性
执行流程
探索
识别web应用程序的URL输入:回顾应用程序输入找到那些被设计成url。
技术 |
手动浏览网站页面识别url。 |
使用自动化工具来识别url。 |
实验
识别URL输入允许本地访问。通过每个URL执行测试本地命令输入,以确定哪些是成功的。
技术 |
手动执行本地命令(比如pwd)通过URL输入。 |
使用一个自动化工具,测试每个URL输入的弱点。 |
利用
恶意执行命令:使用识别URL输入,允许本地命令执行,执行恶意命令。
先决条件
受害者的软件不能区分的位置和类型引用通过了客户端软件,如浏览器 |
技能要求
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 |
读取数据 |
|
完整性 |
修改数据 |
|
缓解措施
实现:确保所有内容交付给客户是消毒与一个可接受的内容规范。 |
实现:确保所有的配置文件和资源时移除或保护促进代码投入生产。 |
设计:使用浏览器技术,不允许客户端脚本。 |
实现:对所有远程执行输入验证的内容。 |
实现:对所有远程执行输出验证的内容。 |
实现:在浏览器中禁用脚本语言JavaScript等 |
例子,实例
J2EE应用程序通常使用. properties文件来存储配置信息包括JDBC连接LDAP连接字符串,代理信息,系统密码和其他元数据是有价值的,攻击者想要探测系统或绕过策略实施点。当这些文件存储在公开目录,允许公众阅读的用户,那么攻击者可以确定一个. properties文件的目录列表,只是在浏览器中加载其内容清单内容。一个标准的文件包含Hibernate属性
hibernate.connection。driver_class = org.postgresql.Driver hibernate.connection。url = jdbc: postgresql: / / localhost / mydatabase hibernate.connection。用户名=用户名 hibernate.connection。密码=密码 hibernate.c3p0.min_size = 5 hibernate.c3p0.max_size = 20 即使攻击者不能写这个文件,有大量的信息利用以获得进一步的访问。 |
引用
[REF-1] g·霍格伦德和g·麦格劳。“利用软件:如何打破代码”。addison - wesley。2004 - 02。 |
|
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2015-12-07
(版本2.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Attack_Patterns |
2017-08-04
(版本2.11) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Phases、描述描述总结,参考 |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Phases |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Attack_Patterns |
2020-12-17
(版本3.4) |
CAPEC内容团队 |
manbetx客户端首页 |
更新@Abstraction |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
|