你可能会认为钓鱼网站很难检测和跟踪,但实际上,许多钓鱼网站都包含唯一标识它们的HTML片段。

你可能会认为钓鱼网站很难检测和跟踪,但实际上,许多钓鱼网站都包含唯一标识它们的HTML片段。本文就以英国皇家邮政(Royal Mail)钓鱼网站为例来进行说明,它们都包含字符串css_4WjozGK8ccMNs2W9MfwvMVZNPzpmiyysOUq4_0NulQo。

这些长而随机的字符串是追踪钓鱼网站的绝佳指标,几乎可以肯定,任何含有css_4WjozGK8ccMNs2W9MfwvMVZNPzpmiyysOUq4_0NulQo的网页都是皇家邮政钓鱼工具的实例。

但是,像这样的独特字符串最终如何成为检测网络钓鱼工具标识的呢?

不幸的是,我们并不是RFC 3514的模仿者,在RFC 3514中,如果所有的IP数据包是恶意的,那么它们都包含一个标志信号。不,这些识别字符串完全是由钓鱼工具开发者无意中包含的。

→【网络安全更多技术学习资料包】←

钓鱼工具是如何诞生的?

钓鱼网站试图尽可能接近他们真正的目标网站,然而,大多数钓鱼者并不具备复制公司网站的技能。相反,他们采用了快捷方式,只是假冒了原始网站的HTML并对其进行了一些小的调整。

假冒目标网站并将其变成钓鱼工具的过程大致如下:

1.使用诸如HTTrack之类的工具复制目标网站,甚至只需在网络浏览器中点击文件→保存即可。

2.调整HTML以添加一个请求受害者个人信息的表单。

3.将其与PHP后端粘合在一起,以保存收集到的数据。

然后,可以将该工具包轻松部署到便宜的托管服务提供商上,并准备收集受害者的详细信息。

4.通过复制整个网页,钓鱼者几乎不需要什么技巧或精力即可获得一个超级逼真的钓鱼页面。但是,这种假冒模式意味着他们的钓鱼页面充满了他们实际上并不需要的东西。

特别是,原始网站中的任何特殊字符串都有可能意外地出现在最终的钓鱼工具中。这对我们来说很好,因为寻找特殊字符串是一种非常容易和可靠的方法来检测钓鱼网站。

所谓的特殊字符串就是一个足够长或复杂的字符串,该字符串在整个互联网上都是独一无二的,这可能是因为它是随机字符(如64a9e3b8)或只是因为它足够长。

那么,问题来了:为什么在最初的网站中会有这些字符串?事实证明,在现代开发实践中,网站到处都是这些足够长或复杂的字符串。

网页中长或复杂的字符串是怎么来的?

现代网站很少是100%静态的内容,当前的开发实践和网络安全特性意味着,有多种方法可以使冗长的随机字符串最终出现在网站中。以下是我所见过的各种来源的概述:

1.文件名中的哈希

现代网站通常使用诸如Webpack或Parcel之类的“捆绑包”进行处理,这些捆绑包将所有JavaScript和CSS组合成一组文件。例如,网站的sidebar.css和footer.css可能合并为一个styles.css文件。

为了确保浏览器获得这些文件的正确版本,捆绑程序通常在文件名中包含一个哈希。昨天你的网页可能使用的是styles.64a9e3b8.css,但是在更新你的样式表之后,它现在使用的是styles.a4b3a5ee.css。这个文件名的改变迫使浏览器获取新的文件,而不是依赖于它的缓存。

但这些足够长或复杂的文件名正是最近皇家邮政(Royal Mail)的钓鱼工具被发现的原因。

当钓鱼者假冒真正的皇家邮政网站时,HTML看起来是这样的:

不幸的是,不管他们用什么技术来假冒网站,文件名都没有改变。因此,通过urlscan.io查找大量使用CSS文件的钓鱼网站是很容易的:

2. 版本控制参考

网络钓鱼者针对的任何网站很可能都是由一个团队开发的,他们很可能会使用git等版本控制系统(VCS)进行协作。

一个合理的常见的选择是在网站的每一个构建中嵌入一个来自VCS的参考,这有助于完成诸如将漏洞报告与当时正在运行的代码版本相关联之类的任务。

例如,Monzo网站使用一个小的JavaScript代码片段嵌入了git commit哈希:

VCS参考资料对于安防人员来说非常有用,因为它们很容易在版本控制系统中找到。如果你发现一个钓鱼网站无意中包含了VCS参考,你就可以直接查找该网站的编写时间(也就是该网站被假冒的时间)。

3.SaaS的API密钥

网站经常使用各种第三方服务,如对讲机或reCAPTCHA。为了使用这些服务,网站通常需要包含相关的JavaScript库以及一个API密钥。

例如,Tide使用reCAPTCHA,并将这段代码作为其集成的一部分:

因为reCAPTCHA “sitekey” 对每个网站来说都是唯一的,因此任何包含字符串6Lclb0UaAAAAAJJVHqW2L8FXFAgpIlLZF3SPAo3w且不在tide.co上的页面都很可能是假冒的网站。

虽然SaaS API密钥是非常独特的,并且具有很好的指示作用,但它们变化非常少,因此无法区分从同一网站假冒出来的不同钓鱼工具。一个网站可能会使用相同的API密钥达数年之久,因此在那时创建的所有工具包都将包含相同的密钥。出于同样的原因,API密钥对于识别何时创建网络钓鱼工具包也没有任何帮助。

4. 跨站请求伪造(CSRF)令牌

事实证明,许多网络安全最佳实践也使网络钓鱼成为重要的指标。其中最常见的可能是“跨网站请求伪造”(CSRF)令牌。

简单地说,CSRF是一个漏洞,恶意网站可以借此诱骗用户在目标网站上执行经过身份验证的操作。例如,此HTML创建了一个按钮,点击该按钮可将POST请求发送到https://example.com/api/delete-my-account":

如果example.com不能防御CSRF,它将处理此请求并删除毫无戒心的用户帐户。

防御CSRF的最常见方法是使用所谓的CSRF令牌,这是一个嵌入在每个网页中的随机值,服务器希望将其与敏感请求一起发送回去。例如,example.com的“删除我的账户”按钮应该是这样的:

服务器将拒绝任何不包含预期随机值的请求。

CSRF令牌非常适合检测钓鱼网站,因为从设计上看,它们是独一无二的。

5. 内容安全策略随机数

内容安全策略(CSP)是一种较新的安全手段,可帮助防御跨网站脚本(XSS)攻击。它允许开发人员指定策略,比如只允许特定域的< script >标记,或更有趣的是,对于我们的用例,仅允许包含指定“nonce”的< script >标记。

要使用基于随机数的CSP,网站需要包含以下政策:

并使用具有匹配随机值的脚本标签:

这有助于防止XSS攻击,因为恶意注入的JavaScript不会具有匹配的现时值,因此浏览器将拒绝运行它。

就像CSRF令牌一样,CSP随机数也构成了完美的网络钓鱼工具包检测器:它们的设计不可篡改,因此通常会为每个请求随机生成长且复杂的字符串。

6. 子资源完整性哈希

现代浏览器中可用的另一个安全功能是子资源完整性(SRI),通过允许你指定期望内容的哈希值,可以保护你免受恶意修改的JavaScript / CSS的侵害。当浏览器加载受SRI保护的JavaScript / CSS文件时,它将对内容进行哈希处理并将其与HTML中的预期哈希进行比较。如果不匹配,则会引发漏洞。

例如,以下是研究人员的博客如介绍的如何将子资源完整性用于其CSS:

这个SRI哈希值是根据研究者网站上所有CSS计算得出的,结果,尽管研究者使用的是公共博客模板,但极不可能有另一个网站具有相同的哈希值,他们必须使用完全相同的模板版本,并且必须包含所有相同的插件。

对于自定义网站比研究者更多的公司,实际上可以确保没有其他网站拥有完全相同的CSS。

如何使用这些长且复杂的字符串来防御网络钓鱼

下次当你分析网络钓鱼网站时,请注意其中一些有用的长且复杂的字符串。

文件名中的哈希可能是你遇到的最常见的示例,这些也是最有用的,因为你可以在urlscan.io上搜索文件名以查找同一工具包的其他实例。

【WEB安全】轻松检测钓鱼网站的技巧相关推荐

  1. web安全渗透之钓鱼网站提权

    本实验实现1:要生成一个钓鱼网址链接,诱导用户点击,实验过程是让win7去点击这个钓鱼网站链接,则会自动打开一个文件共享服务器的文件夹,在这个文件夹里面会有两个文件,当用户分别点击执行后,则会主动连接 ...

  2. 2021-07-23 Week1 基于截图的钓鱼网站检测、中小微企业安全现状调查

    Phishpedia: A Hybrid Deep Learning Based Approach to Visually Identify Phishing Webpages 使用机器学习方法,利用 ...

  3. 基于 Milvus 的钓鱼网站检测

    文章作者: Seven-机器学习算法工程师 李晴-Zilliz 数据工程师 背景介绍 在海量信息中,不乏非法分子利用网络骗取用户信任并从中获利,钓鱼网站就是其中之一."钓鱼"网站的 ...

  4. 五大技巧识别钓鱼网站

    网上购物和网上银行凭借其便捷性和通达性,在互联网上日渐流行.在互联网上,你可以随时进行转账汇款或进行交易.据艾瑞咨询发布<2008-2009年中国网上支付行业发展报告>显示:中国互联网支付 ...

  5. 钓鱼网站检测 repo复现

    写在前面 纠结要起个什么样的文章标题-这篇帖子不会写的太硬核,就是想稍微理一下我自己的思路. 最近看了入侵检测和钓鱼检测的论文.入侵检测给我的感觉是系统太大了,而且从199几年就开始用机器学习做了?? ...

  6. 对某钓鱼网站的一次渗透测试

    周末在某个CTF群偶然看到这个钓鱼网站:http://gggggg.cn(声明:本文中出现的域名.IP均被替换,并非真实存在,请勿测试),于是开始对该网站进行渗透.观察网站页面,可知这个网站应该是用来 ...

  7. 路由表+常用网络命令+SSL的WEB安全访问+常用网络命令使用技巧

    路由表+常用网络命令+SSL的WEB安全访问+常用网络命令使用技巧 一.如何看路由表 ========================================================= ...

  8. 7月共处理钓鱼网站1921个:非CN域名达1911 个

    中国IDC评述网08月14日报道:近日,中国反钓鱼网站联盟公布了<2012年7月钓鱼网站处理简报>.据报告显示,7月份,联盟共处理钓鱼网站1921个,截至2012年7月份,联盟累计认定并处 ...

  9. 投毒、伪装、攻击,DNS 欺骗和钓鱼网站如何一步步诱人掉入陷阱?

    [编者按]这篇文章将详细讲解DNS欺骗(DNS投毒)及钓鱼网站原理知识,并通过Ettercap工具复现某购物网站的钓鱼漏洞,本文的重点是让您对ARP欺骗.DNS欺骗和钓鱼攻击有一定认识.真心希望这篇基 ...

最新文章

  1. 国内高校硕博补贴大公开!(某校博士在读已经年薪 25w 了)
  2. 抢了人类编辑饭碗的AI算法,会完胜吗?
  3. Hibernate 连接池的三种配置方式
  4. dataGridView1去掉第一列
  5. 关于高并发,我想告诉你这些!
  6. [我的1024开源程序]350元写的HTML5程序
  7. Quick BI助力云上大数据分析---深圳云栖大会 1
  8. exchange java对象,【原】Java并发程序的一个应用Exchanger的实例
  9. 漫画:什么是布隆算法?
  10. 四大步骤做好需求调研
  11. axure web组件_主流设计组件规范amp;下载地址汇编
  12. iOS音频播放 (一):概述 转
  13. Android5手动root,魅蓝Note5如何获取ROOT权限?魅蓝Note5 ROOT教程(亲测可行)
  14. 深度学习需要掌握的 13 个概率分布
  15. 海康网络摄像头web端展示
  16. 佳能Canon PIXMA MP236 打印机驱动
  17. 【JVM】17、垃圾回收器
  18. 南卡和声阔蓝牙耳机哪个比较好用?降噪效果好的蓝牙耳机推荐
  19. 使用虚拟机备份软件恢复OpenStack虚拟机
  20. 在Windows Media Player中使用歌词插件显示歌曲歌词

热门文章

  1. vue在js上处理后台返回的数组_vuejs 根据后台返回数组,渲染图片路径
  2. AI:Algorithmia《2021 enterprise trends in machine learning 2021年机器学习的企业趋势》翻译与解读
  3. Personal preference
  4. MAT之GUI:GUI的方式创建/训练/仿真/预测神经网络
  5. ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测
  6. RL之Q Learning:利用强化学习之Q Learning实现走迷宫—训练智能体走到迷宫(复杂迷宫)的宝藏位置
  7. ML之Clustering之H-clustering:Hierarchical clustering算法相关论文、主要思路、关键步骤、代码实现等相关配图之详细攻略
  8. 成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2(二)
  9. MySQL用source命令导入不记入binlog中【原创】
  10. 天才大猩猩可可去世,享年 46 岁