链接注入(便于跨站请求伪造)

简介: 安全风险: 可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务可能会在 Web 服务器上上载、修改或删除 Web 页面、脚本和文件

安全风险:

可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息

可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务

可能会在 Web 服务器上上载、修改或删除 Web 页面、脚本和文件

可能原因

未对用户输入正确执行危险字符清理

技术描述

“链接注入”是修改站点内容的行为,其方式为将外部站点的 URL 嵌入其中,或将有易受攻击的站点中的脚本 的 URL 嵌入其中。将 URL 嵌入易受攻击的站点中,攻击者便能够以它为平台来启动对其他站点的攻击,以及攻击这个易受攻击的站点本身。

在这些可能的攻击中,有些需要用户在攻击期间登录站点。攻击者从这一易受攻击的站点本身启动这些攻击,成功的机会比较大,因为用户登录的可能性更大。

“链接注入”漏洞是用户输入清理不充分的结果,清理结果会在稍后的站点响应中返回给用户。攻击者能够将危险字符注入响应中,便能够嵌入 URL 及其他可能的内容修改。

以下是“链接注入”的示例(我们假设“www.vulnerable.com”站点有一个用来问候用户的参数,称为“name”)。

下列请求:HTTP://www.vulnerable.com/greet.asp?name=John Smith

会生成下列响应:

 <HTML>

 <BODY>

         Hello, <IMG SRC="http://www.ANY-SITE.com/ANY-SCRIPT.asp">.

 </BODY>

 </HTML>


如该示例所示,这有可能导致用户浏览器向几乎是攻击者所期待的任何站点发出自动请求。因此,他可能利用这个“链接注入”漏洞来启动若干类型的攻击:

跨站点伪造请求:攻击者可以让用户的浏览器向用户目前登录的站点发送请求,以及执行用户并不想执行的操作。

这些操作可能包括从站点中注销,或修改用户的概要文件、电子邮件地址,甚至是修改密码,结果造成彻底的帐户接管。

跨站点脚本编制:任何“跨站点脚本编制”攻击都开始自诱惑用户单击精心制作的 URL,以便利用受害者站点中的漏洞。

发送含有恶意链接的电子邮件,或创建一个 Web 站点来包含指向易受攻击的站点的链接,通常可以做到这一点。

当采用“链接注入”漏洞时,有可能在 A 站点中嵌入一个恶意的 URL,当单击这个链接时,便启动对 B 站点的“跨站点脚本编制”攻击。

网络钓鱼:攻击者有可能注入指向类似受攻击站点的恶意站点的链接。

不小心的用户可能单击这个链接,但并不知道自己即将离开原始站点而浏览到恶意站点。之后,攻击者便可以诱惑用户重新登录,然后获取他的登录凭证。

修订建议

一般

若干问题的补救方法在于对用户输入进行清理。 通过验证用户输入未包含危险字符,便可能防止恶意的用户导致应用程序执行计划外的任务,例如:启动任意 SQL 查询、嵌入将在客户端执行的 Javascript 代码、运行各种操作系统命令,等等。 建议过滤出所有以下字符:

[1] |(竖线符号)

[2] & (& 符号)

[3];(分号)

[4] $(美元符号)

[5] %(百分比符号)

[6] @(at 符号)

[7] '(单引号)

[8] "(引号)

[9] \'(反斜杠转义单引号)

[10] \"(反斜杠转义引号)

[11] <>(尖括号)

[12] ()(括号)

[13] +(加号)

[14] CR(回车符,ASCII 0x0d)

[15] LF(换行,ASCII 0x0a)

[16] ,(逗号)

[17] \(反斜杠)

以下部分描述各种问题、问题的修订建议以及可能触发这些问题的危险字符: SQL 注入和 SQL 盲注: A. 确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。 B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。当使用存储过程时,请利用 ADO 命令对象来实施它们,以强化变量类型。 C. 清理输入以排除上下文更改符号,例如:

[1] '(单引号)

[2] "(引号)

[3] \'(反斜线转义单引号)

[4] \"(反斜杠转义引号)

[5] )(结束括号)

[6] ;(分号)

跨站点脚本编制: A. 清理用户输入,并过滤出 JavaScript 代码。我们建议您过滤下列字符:

[1] <>(尖括号)

[2] "(引号)

[3] '(单引号)

[4] %(百分比符号)

[5] ;(分号)

[6] ()(括号)

[7] &(& 符号)

[8] +(加号)

B. 如果要修订 <%00script> 变体,请参阅 MS 文章 821349 C. 对于 UTF-7 攻击: [-] 可能的话,建议您施行特定字符集编码(使用 'Content-Type' 头或 <meta> 标记)。 HTTP 响应分割:清理用户输入(至少是稍后嵌入在 HTTP 响应中的输入)。 请确保输入未包含恶意的字符,例如:

[1] CR(回车符,ASCII 0x0d)

[2] LF(换行,ASCII 0x0a)远程命令执行:清理输入以排除对执行操作系统命令有意义的符号,例如:

[1] |(竖线符号)

[2] & (& 符号)

[3];(分号)

执行 shell 命令: A. 绝不将未检查的用户输入传递给 eval()、open()、sysopen()、system() 之类的 Perl 命令。 B. 确保输入未包含恶意的字符,例如:

[1] $(美元符号)

[2] %(百分比符号)

[3] @(at 符号)

XPath 注入:清理输入以排除上下文更改符号,例如:

[1] '(单引号)

[2] "(引号) 等

LDAP 注入: A. 使用正面验证。字母数字过滤(A..Z,a..z,0..9)适合大部分 LDAP 查询。 B. 应该过滤出或进行转义的特殊 LDAP 字符:

[1] 在字符串开头的空格或“#”字符

[2] 在字符串结尾的空格字符

[3] ,(逗号)

[4] +(加号)

[5] "(引号)

[6] \(反斜杠)

[7] <>(尖括号)

[8] ;(分号)

[9] ()(括号)

MX 注入: 应该过滤出特殊 MX 字符:

[1] CR(回车符,ASCII 0x0d)

[2] LF(换行,ASCII 0x0a)记录伪造:

应该过滤出特殊记录字符:

[1] CR(回车符,ASCII 0x0d)

[2] LF(换行,ASCII 0x0a)

[3] BS(退格,ASCII 0x08)

ORM 注入: A. 确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。 B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。 C. 使用参数化查询 API D. 清理输入以排除上下文更改符号,例如: (*):

[1] '(单引号)

[2] "(引号)

[3] \'(反斜线转义单引号)

[4] \"(反斜杠转义引号)

[5] )(结束括号)

[6] ;(分号)


(*) 这适用于 SQL。高级查询语言可能需要不同的清理机制。

目录
相关文章
|
11月前
解决Minikube运行拉取镜像慢的问题
使用国内镜像源加速Minikube启动:先拉取阿里云托管的kicbase基础镜像,删除原有集群,再通过指定镜像和中国区镜像源启动Minikube,提升部署效率。
1797 0
|
安全 Ubuntu
Ubuntu Samba高危安全漏洞修复
Ubuntu系统中使用的Samba版本存在一个或多个高风险安全漏洞。受影响的Samba版本包括但不限于4.13.x低于4.13.17、4.14.x低于4.14.12以及4.15.x低于4.15.5。这些漏洞可能会允许未经身份验证的攻击者远程执行恶意代码,获取未经授权的访问权限,或者进行其他形式的安全攻击。
988 0
|
安全 JavaScript 前端开发
Javascript框架库漏洞验证
Javascript框架库漏洞验证
4206 0
Javascript框架库漏洞验证
|
存储 安全 算法
FastAdmin框架超级管理员密码重置与常规admin安全机制解析-卓伊凡|大东家
FastAdmin框架超级管理员密码重置与常规admin安全机制解析-卓伊凡|大东家
1312 7
|
传感器 人工智能 Java
通义灵码 2.5 MCP功能优化上手体验
最近体验了通义灵码的新功能,尤其是新增的智能体模式,它能根据需求自动规划任务流程,例如创建Spring Boot项目、生成代码文件等,极大提升效率。同时,MCP工具支持2400多个服务,助力快速定位配置文件。Qwen3模型的加入增强了复杂逻辑处理能力,而记忆功能让助手更懂用户需求。上下文支持多文件选择和工程目录操作,进一步优化重构效率。这些新特性对个人开发者和团队协作都是强大助力,值得尝试!
|
Go 虚拟化 云计算
Docker 基础知识解析:容器与传统虚拟化对比:资源利用、启动时间、隔离性和部署效率
Docker 基础知识解析:容器与传统虚拟化对比:资源利用、启动时间、隔离性和部署效率
1315 0
|
人工智能 数据可视化 程序员
2024年值得推荐的4款免费且功能强大的在线文档工具
2024年值得推荐的4款免费且功能强大的在线文档工具
1215 4
2024年值得推荐的4款免费且功能强大的在线文档工具
MATLAB在风险管理中的应用:从VaR计算到压力测试
本文介绍如何使用MATLAB进行风险管理,涵盖风险度量(如VaR)、压力测试和风险分解。通过历史模拟法、参数法和蒙特卡洛模拟法计算VaR,评估投资组合在极端市场条件下的表现,并通过边际VaR和成分VaR识别风险来源。结合具体案例和代码实现,帮助读者掌握MATLAB在风险管理中的应用,确保投资组合的稳健性。
|
Java 数据安全/隐私保护
Fortify——安装并修改报告语言为中文
Fortify——安装并修改报告语言为中文
2196 0
Fortify——安装并修改报告语言为中文

热门文章

最新文章