利用搜索引擎蜘蛛绕过waf进行攻击

我们在写网站防火墙规则的时候可能都会做一件事:永远不屏蔽那些主流搜索引擎机器人的爬取(如,Google,Bing,Yahoo,Baidu等).

google-Bot

至今,我们觉得这样很好,但是现在我们时不时地碰到一些奇怪的现象,不得不让我们思考一个问题,如果一个合法的搜索引擎机器人被用来攻击网站那会怎样?难道我们仍然让这样的攻击畅通无阻而不去屏蔽他?

这种情况几天前确实在我们的一个网站上发生了,我们要开始屏蔽Google的ip地址,因为谷歌蜘蛛爬网站时发送的请求确实存在SQLi攻击.你没看错,谷歌蜘蛛确实正在攻击网站.

发送的请求

一切起源于我们发现一个真实的Google ip地址由于SQL注入被屏蔽了.这是日志记录的(为了保护无辜的受害者做了一点点改动)

我们一开始以为它是一个假的Google bot,但是审查ip后发现这个ip真的是Google的:

oo

进一步调查发现还有很多其他相似的请求ip都来自Google.

到底发生了什么?

按理来说Google应该没有兴趣hack我们我们的网站啊,他们的自动化机器人应该是被攻击者利用了.

在上面那个场景中,机器人正在爬取网站A.网站A有很多暗藏的链接可以发送SQLi请求到目标网站B.Google机器人爬取页面的时候看到了这几个连接,然后就会顺着这个链接爬过去,这样的话,Google机器人就无意地攻击了网站B.这个事实可能我们都没特别注意到,但是确实是一个应该深思的问题.

是否可以创建很多恶意链接,然后让机器人访问这些连接,然后就能对别的网站进行一次攻击呢?

利用机器人隐秘攻击

让我们假设一下,有一个攻击者叫John.John每天的事就是爬取页面,然后发现新的漏洞.很久以后,他发现了很多网站都有漏洞,是时候该一次性把这些网站都收了.但是John不是一般的黑客,他非常熟悉计算机取证过程,深知一个成功的hacker必须是不能留下任何痕迹.

计算机取证中,我们会查看日志.John当然知道这个.但是如果John如果做得足够仔细,仔细到

自己没有被发现呢?John现在有一个漏洞列表,其中就有一个是B网站上的SQLi或者RFI.John打开自己的网站A,添加了一些看起来不错的内容,但是他还默默地添加了几个链接,这几个链接对普通访问网站的人是看不到的,但是却非常吸引爬虫来爬取.这些链接全都可以发起RFI和SQLi攻击.利用浏览器,这样John就可以完成更高效的攻击,还不让人发现.

也许这是一个猜想,或许也不是..有什么想法么?

我们会就这件事联系Google,但是我们必须记住的是,不能仅仅把他们的IP放到白名单里,而让其任何的窥视都畅通无阻.

[via@sucuri]

日币奖励:

本文为译文,首发91ri.org,根据本站积分规则给予日币奖励共4枚。团队目前正在招募新同学,有兴趣加入团队的同学可以查看“加入我们”。