三种简单粗暴的社工攻击手段: Self-XSS、CSRF、恶意服务器

时至今日, 由软件程序构成的大多数威胁已经被我们的防火墙和杀毒软件解决了, 可我们仍然无法享受到真正的安全. 虽然程序的漏洞是可以被修复的, 但人性的漏洞却是难以被填补的, 世界发展的很快, 人类已经很难离开互联网生活, 几乎每个网民都有被暴露在互联网上的个人信息, 然而正是这些看似无用的信息, 使得在社会工程学对于网民的威胁与日俱增.

本文简单的介绍Self-XSS(自跨站脚本攻击)、CSRF(跨站请求伪造攻击)和恶意服务器这三种社会工程学的辅助攻击手段, 希望能够给予自认为身处于安全环境中的网民以自知的同时, 学会不惮以最坏的恶意来推测他人.

Self-XSS

XSS(跨站脚本攻击)是一种攻击者在目标网站中嵌入恶意客户端脚本以达到其不可告人目的的攻击行为. 现在大多数的网站都对XSS有所防范, 攻击者已经很难在现代网站上找到可以提交恶意脚本的XSS漏洞.

在XSS前加上Self, 就是Self-XSS(自跨站脚本攻击), 与Self这个词的意思一样, 这是一种需要受害者自己配合才能成功的XSS攻击行为, 这也是它被我归类为一种社会工程学攻击的原因.

受害者出于某种原因, 在目标网站上运行了某段由攻击者提供的恶意脚本, 就使得Self-XSS攻击成立. 一些人看到这里可能会嗤之以鼻, 认为自己不会犯下这么低级的错误, 然而事实却是, Self-XSS可以从各种各样的渠道被实现, 尤其是很多没有代码审查能力的”自称极客”所使用的那些工具, 是的, 我说的就是Bookmarklet、Greasemonkey和其他在浏览器上安装的各种Extension, 它们都有可能被用于Self-XSS攻击, 成功的攻击范例数不胜数.

在Google+打开浏览器控制台, 会发现Google直接打印出了不要在此页面运行脚本的警告, 大多数的现代浏览器的地址栏, 也会在用户粘贴以”javascript:”开头的URL时, 自动去除”javascript:”内容, 可见Self-XSS的危险性.

CSRF

CSRF(Cross-Site Request Forgery)是一种欺骗式的攻击手段, 攻击者会构造一个带有恶意的目标网站的URL, 并引诱受害者点击链接或以其他方式迫使浏览器发出请求来达到攻击者的目的. 是否可以实现CSRF攻击, 与目标网站是否存在可供实现CSRF攻击的漏洞有关. 我们试想这样的一种情况, 目标网站有一个用于删除用户的URL地址, 当然, 只有拥有管理员Cookie的用户才可以通过请求这个URL来删除用户, 攻击者得知这个URL之后, 构造了一个带有欺骗性的链接, 引诱了拥有管理员Cookie的用户的点击, 使得目标用户被成功删除.

在非现代浏览器或同源策略存在漏洞的IE浏览器上, 可能会产生另一种利用带有Cookie的跨站请求实现的CSRF攻击, 不过只要用户使用大部分先进的现代浏览器, 便很难遭遇这种攻击. 另外, 网站开发者如果能严格遵守RESTful的URL规范和CORS协议, 不构建能通过GET请求对数据库进行增减操作的URL, 也能起到对CSRF攻击一定的防范效果.

恶意服务器

恶意服务器指那些被带有恶意的网站管理员控制的服务器, 是一个宽泛的概念, 恶意服务器有多种用法, 包括但不限于以下几种:

记录用户输入的错误密码

事实上, 有很多网站都可能是恶意服务器, 作为用户, 你不知道他们是否会将你在登录时的错误密码记录下来, 对于同时使用很多种密码的人而言, 这是一个巨大的威胁, 一旦你忘记自己在该网站上的密码, 你就会开始尝试自己常用的几种密码, 而在你使用正确的密码登录服务器之前, 你的错误密码已经被网站后台记录下来, 这在之后可能将被用于其他网站数据库的撞库测试.

要想避免这种攻击, 只能让网站本身不传输明文密码, 例如在前端的登录环节里加上一道单向加密, 这样你的明文密码才不会被传到服务器上, 当然, 后端也不能因为前端进行了加密, 就放弃双端加密的基本原则, 否则将得不偿失.

暴露目标用户的真实IP地址

这是一种典型的钓鱼手段, 在用户直接接入互联网的情况下, 如果打开了攻击者提供的网站, 那么用户的真实IP地址就很有可能被暴露给了攻击者, 攻击者就可以以此为基础实行其他的攻击.

不过在中国逐渐局域网化的今天, 这种攻击方式的成功率已经变得越来越低了.

行为记录

用户在网站上的行为, 实际上有可能被一一记录下来, 从这些记录里, 攻击者可以轻易的推算你的作息时间等信息, 网站规模越大, 可能掌握的信息也就越多, 可推测的情报也就越丰富. 一些现代浏览器加入了”防止追踪”的功能, 也是基于同样的考量.

恶意服务器的可怕之处在于你几乎无法知道你访问的是否是一个恶意服务器, 任何一个大网站都有可能是恶意服务器, 但你又不得不去使用它们提供的服务, 你时刻都有可能处于监视之中, 却无法自知.