一种基于webvpn的钓鱼网站原理及防御

目录

  1. 1. 背景
  2. 2. 原理
  3. 3. 效果
  4. 4. 防范

最近学校里面很多同学的校园邮箱都收到了钓鱼邮件,不过这些钓鱼邮件都挺简陋的,很难说真的有人会上当。

但是前天夜里,在与群友攀谈时,突然想到了这种基于webvpn的钓鱼网站,难以分辨真假。

背景

很显然,学校内部的很多资源是无法从外部去访问的。同时,部分受限资源,例如万方查重等等,都需要登录校园门户才能使用。

另一方面,作为一个本科生,除非特殊去向辅导员申请,否则没有普通的校园内网vpn访问权限。如果平时在外,需要选课、查重等等操作,需要使用webvpn。

这便是这个钓鱼网站的切入点。webvpn在第一次使用时,需要用户去进行登录,这个需要去填写用户名和密码,没什么问题。如果需要进行选颗操作,那么在webvpn内打开教务系统后,还需要再次进行登录。钓鱼网站的目标就是在这个时候,伪装成统一登录的登录页面,骗取用户的用户名和密码。

原理

学校的webvpn本身是一个外包的系统,采用AES加密了要访问的目标域名。也就是说,无法仅根据webvpn的url来判断当前访问了什么页面。

因此,我们可以构建一个网站,例如本博客下部署了一个单页面版的统一登录页面的伪装网站。当然这个网站不会窃取任何用户名和密码,仅仅是用于演示目的。为了骗过浏览器和用户,我们还需要将其加密为webvpn使用的链接。具体的加密方式见调试DLUT WebVPN获取编码密钥。通过这种方式获取到加密所需的key和iv后,我们就可以轻松地将网站加密为webvpn链接。

效果

这是未加密的网站:
1722875675728

这是使用webvpn访问的效果:
1722875826134

可以看到,套上webvpn后,内容丝毫不差,同时域名被“洗白”成了webvpn.dlut.edu.cn,难以分辨真伪。

防范

首先当然是不要点来未知来源、未经验证的链接,邮件什么的也不要乱点,这样可以避免99%的盗号问题。

其次,作为webvpn平台,在页面的顶部加上一个可以实时显示当前页面真实url的功能并不过分。考虑到页面的内部使用了运行在js上的js虚拟机,实际也应当不会与页面产生冲突。