Google 是一個很強的搜尋引擎,你可以在 Google 找到很多知識與學問,但是你有被 Google 給駭客過嗎? 沒錯
很久的曾經,我接過一個客戶的案子,內容是這樣的,我的客戶正在做一個強力的後台管理系統,其中有會員、最新消息、留言版、商品等等子系統,而客戶希望我使用他們的系統,去製作一個網站,而且還要有文章管理的功能。
這個案子我一聽到,就覺得是客戶是想藉由這個案子,要我幫他們多完成一個文章管理系統,這樣客戶未來就有更多可以直接拿來套版的功能,不管怎麼,我還是接了這個案子。
一個小小網站加上文章管理系統,當然不會難到我,幾天的功夫就做完了,並且我提供了一個測試網站,讓客戶的客戶可以先在測試系統中上傳他的產品內容。
管理介面,大約像下面這個樣子的表格。
標題 | 圖片 | 內容 | 編輯 | 刪除 |
---|---|---|---|---|
第一篇 xx | xx | 文章內容?? | Edit | Delete |
第二篇 xx | xx | 文章內容?? | Edit | Delete |
第三篇 xx | xx | 文章內容?? | Edit | Delete |
奇怪的是,就在客戶上完一部分資料後的二週左右,有一天所有的文章突然不見了,當天客戶也打電話問我為什麼他上傳的資料都不見了,在那個剛睡醒的早晨,我也沒辦法說明原因,還被客戶問說是不是網站被人 hack 了...
接著我開始追查 Access Log ,發現的確有刪除文章的記錄,而且是一筆一筆刪除,Log 中還有 Browser User Agent 的資料,上面寫著 「Google Bot」,內容如下。
- 10.53.xx.x [01/Jan/2008] "GET /admin/delete.php?id=1 HTTP/1.1" 200 > 39 "Google Bot xxxx"
- 10.53.xx.x [01/Jan/2008] "GET /admin/delete.php?id=2 HTTP/1.1" 200 > 39 "Google Bot xxxx"
- 10.53.xx.x [01/Jan/2008] "GET /admin/delete.php?id=3 HTTP/1.1" 200 > 39 "Google Bot xxxx"
當時寫的 PHP 檔案,大約像下面這段 Code.
- if (!login()) {
- header("location: index.php");
- }
- deleteArticle($id);
這段程式有一個很大的問題,就在於 php 在執行 header 這個 function 時,只會印出如下的重導 header ,但在程式並不會中止,而是繼續往下執行 deleteArticle。
- HTTP/1.1 302
- location index.php
也就是因為這個原因, Google Spider 每掃一個刪除的連結,就會刪掉一篇文章 @@ ,最後一篇不留的刪光光。
目前回應 Comments(5 comments)
Sven.He 2022/08/05
It's so funny.
Jonathan Goh 2016/12/29
低级漏洞..
IL 2016/12/29
自己的過失請不要推給駭客,操作資料請一律用POST或其他HTTP Verb
ReplyAdmin
單純分享自已的經驗,沒有要推卸責任啦,而要不要用 POST/PUT 等等 HTTP Method ,也跟我們使用的 Framework 有關,不是每個 Framework 都設計得很完善, 很容易在不夠了解該 Framework / Library 的情形下就中招了。
unood 2015/06/16
header("location: index.php");下面加一行exit(); 應該藉能解決這種詭異的現象了吧?
ReplyAdmin
沒錯
alan 2014/11/11
看到這篇 !真的是非常感謝,因為我當初也遇到同樣狀況
Reply但是就沒有人相信,後來我把移除讓他失效,才保住文章 !!!
Admin