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