如何利用Google機(jī)器人進(jìn)行SQL注入攻擊
國(guó)外安全公司發(fā)現(xiàn)了來(lái)自Google機(jī)器人的SQL注入攻擊,迫使他們應(yīng)急的時(shí)候設(shè)置策略對(duì)Google的IP進(jìn)行屏蔽。
有件事情我們需要留意的是,幾乎所有的云防火墻的規(guī)則都會(huì)對(duì)搜索引擎機(jī)器人設(shè)置白名單。
目前來(lái)說(shuō)我們的生活還是很幸福的,但當(dāng)你發(fā)現(xiàn)一個(gè)合法的搜索引擎機(jī)器人被用來(lái)攻擊你的網(wǎng)站,你還睡得安穩(wěn)嗎?
這是幾天前我們一個(gè)客戶的網(wǎng)站所發(fā)生的實(shí)實(shí)在在的案例,我們開(kāi)始對(duì)Google機(jī)器人的IP進(jìn)行屏蔽,根據(jù)抓到的請(qǐng)求可以判斷它做的是SQL注入攻擊。你沒(méi)聽(tīng)錯(cuò),對(duì)!Google機(jī)器人在對(duì)你們做SQL注入!
請(qǐng)求
我們的發(fā)現(xiàn)始于Google機(jī)器人的IP地址被SQL注入防護(hù)策略屏蔽,各位看官看以下日志(打了點(diǎn)碼):
66.249.66.138 - - [05/Nov/2013:00:28:40 -0500] "GET /url.php?variable=")%20declare%20@q% 20varchar(8000(%20select%20@q%20=%200x527%20exec(@q)%20-- HTTP/1.1" 403 4439 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
我們的第一反應(yīng)是覺(jué)得這是個(gè)偽造的機(jī)器人,但當(dāng)我們檢查IP地址來(lái)源是卻發(fā)現(xiàn)這是實(shí)實(shí)在在的google機(jī)器人!
$ host 66.249.66.138 138.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-138.googlebot.com. NetRange: 66.249.64.0 - 66.249.95.255 CIDR: 66.249.64.0/19 OriginAS: NetName: GOOGLE
進(jìn)一步調(diào)查顯示其它相似的請(qǐng)求簽名都是來(lái)自于Google的IP地址。
到底咋回事?
其實(shí)Google并不是真有興趣要黑我們,它是真的愛(ài)我們。
場(chǎng)景是這樣的:
Google機(jī)器人正在網(wǎng)站A收集信息,網(wǎng)站A內(nèi)嵌入了對(duì)目標(biāo)網(wǎng)站B的SQL注入請(qǐng)求鏈接,Google機(jī)器人順著鏈接訪問(wèn)網(wǎng)站B,就無(wú)意中開(kāi)始對(duì)網(wǎng)站B執(zhí)行了SQL注入攻擊。
看到這里大家應(yīng)該懂了吧?
利用機(jī)器人做攻擊?
我們假設(shè)有個(gè)黑客叫小明。小明每天花很多時(shí)間在找web漏洞,所以小明也發(fā)現(xiàn)了一堆的漏洞站。而他也很清楚明白,他必須要掩飾他的行為。
而一個(gè)安全人員最普遍的方法都是分析日志。小明也知道這點(diǎn),所以他現(xiàn)在可能有一個(gè)B網(wǎng)站的漏洞,比如SQL注入或者RFI。
于是小明到自己的網(wǎng)站A上面,寫(xiě)下這些EXP,讓爬蟲(chóng)來(lái)爬……
這種類(lèi)似場(chǎng)景其實(shí)很容易想象吧?
我們已經(jīng)就這個(gè)問(wèn)題聯(lián)系谷歌了。對(duì)于爬蟲(chóng),我們不能僅僅只是做白名單,而應(yīng)該在這前面先對(duì)請(qǐng)求做檢測(cè)!
原文地址:http://blog.sucuri.net/2013/11/google-bots-doing-sql-injection-attacks.html