邮件里那个「发票」其实是张网页:HTML附件在本地打开时发生了什么 图 1
邮件里那个「发票」其实是张网页:HTML附件在本地打开时发生了什么 · 图 1

一种不长在域名上的钓鱼页

绝大多数钓鱼防线都挂在「链接」上:邮件网关扫链接域名、浏览器标出安全连接、你被教导点之前先看地址。附件类钓鱼不在这条防线上。攻击者把一整页仿冒的登录界面或支付确认界面做成一个HTML文件,塞进邮件,标题通常是发票、行程单、对账单。你在自己电脑上双击打开它,页面从本地磁盘渲染出来,长得和品牌官网几乎一样,中间还有一个「查看明细」的按钮,点下去跳到一张登录卡片,卡片上让你输入邮箱和密码。

它的巧妙之处在于绕开的东西:这个页面没有域名,地址栏里显示的是一长串本地文件路径,多数浏览器根本不会把这种路径当成「网站」来审视;它不触发任何链接重写和网关查杀,因为邮件正文里可能一个外链都没有;它甚至不需要联网就完整可看,因为样式和图片都内嵌在文件里。链接审查体系从头到尾没被喂进一个可以判断的对象。

机制:假页面什么时候开始「工作」

一个纯静态的HTML文件打开后只是显示。真正要命的是两个时刻。第一个是表单提交:页面里的输入框配好了指向外部服务器的动作,你输入的账号密码或卡片信息,在你点确认那一刻通过本地文件发起了一次真实上传,目的地由页面代码决定,和你的邮箱、你的浏览器登录态无关。第二个是「查看明细」这类按钮:有的版本把完整仿真页放在文件里、只把最后一张输入凭证的卡片指向远程地址;也有的版本干脆用脚本来拉远程图片,你什么时候允许了远程内容加载,什么时候就把「我打开了这个附件、这台设备在用某个邮箱」报告给了对方。

辨认的线索恰恰藏在它不像网站的地方:双击打开的是一个文件,扩展名是网页格式,而它自称的内容本该是一个文档;邮件里承诺的是发票或账单,交付的却不是一眼能读的格式;真服务方现在发账单,多数给在线查看链接或直接附PDF,把登录界面打包成网页文件寄给你,这个行为本身就罕见。

为什么不输入,先看

把这类附件的安全读法固定成三步。第一步,看身份:这份「文件」和寄件方的真实关系,用官方入口核验一遍状态就好,账单是否存在,进平台站内查,不为一张附件打开输入界面。第二步,先看后输:想预览内容,把文件转存后用「以文本方式打开」或查看源代码的朴素方式扫一眼,看到大量表单字段、看到提交动作指向一个陌生域名,页面就现了形;愿意省事的话,用手机相册拍一张纸,多数场景根本不值得为一张来路不明的发票冒险。第三步,输入前看地址:任何情况下,账号密码只输入给一个你在浏览器里确认过域名的页面,地址栏是本地文件路径的,无论页面多漂亮,一律视为收集器。

已经输入了,按剧本分档处置

交出的是搜索词、昵称这类无凭据信息,记下时间即可。交出的是邮箱加密码,立即去那个邮箱及其同密码的账户改密、查一轮登录记录,凡是改密前刚出现的陌生会话都要按可疑处理;如果这个邮箱同时收验证码,按整条账号链的接管风险对待,优先处理资产相关服务。交出的是卡片信息,按挂失与争议通道走。无论哪一档,保留邮件原件与附件文件本身,它们连同你的输入时间是后续申诉和自查的证据,别急着删。

顺带清掉的两类习惯

HTML附件不是孤例,它背后是一族「用文件格式绕开链接审查」的套路:带密码的压缩包、双击运行的所谓发票、伪装成文档的下载器。共同的处置原则只有一条:正文里的链接你可以只看不动手,附件却是你亲手把它请进本地的,动作越主动,验看越应该严格。邮箱设置里把附件自动预览关掉、把远程内容默认拦截打开,这两个开关能把不少「打开即中招」的环节降级成「多问一句」。

还有一类习惯值得同步纠正:把「我最近没买过东西」当成判断依据。发票类钓鱼的大宗目标恰恰是没有任何消费的人,因为无消费的人不会去站内核对,而忙碌的人反而会。判断依据永远只有一个:这条信息说的事,能不能在你自己的官方入口里找到对应的状态记录。找得到,按流程办;找不到,格式再真也只是别人寄来的一张纸。

本文为安全防御指引,不构成投资建议。