製作一個釣魚網站到底有多簡單?

8 / 3, 2013 Facebook , 網路安全

網路上充斥著危險,最常被大家提起的,應該就是釣魚網站了,不要以為這個技術是多麼的高深困難,而且幾乎是十分鐘就可以完成一個,到底有多麼簡單呢?我們馬上來實作一個!
本篇文章是要藉由實作來告訴大家釣魚網站的威脅有多麼可怕,若使用本文章所提供的任何程式碼及檔案從事違法用途,本站不用負起任何責任,請程式使用者自行承擔

註:如果您的資料庫名稱不是fbhack,那請把以下程式碼中所有”fbhack”字串都改成你的資料庫名稱

我們先以Facebook為例,Facebook除了首頁登入,還有https://www.facebook.com/login可以登入,首先連入這個網站並觀看程式碼

fbhack-1

看不懂?沒關係,把整個程式碼複製下來,並貼到一個html網頁中

fbhack-2

更新:也可以直接另存網頁

請找到

form id="login_form"

把「/login.php?login_attempt=1」替換成「login.php」,現在都還是製作釣魚網站的主頁面,接著我們要開始製作將使用者帳號密碼儲存起來的程式,本篇教學採用php(因為小弟也只會php XD),新建一個php檔案,名為login.php,打開並先貼上

雖然簡單,但是還是解釋一下以上程式碼,以非常簡略的說,就是取得post中的「email」與「pass」的值,分別是帳號及密碼,然後我們要將其寫入資料庫。

一般來說,一旦拿到帳號密碼,就會將使用者轉移到真正的登入介面並顯示帳號密碼有誤,因為釣魚網站無法連結到真正的網站來檢測密碼是否正確,只好顯示密碼錯誤並導向到密碼錯誤的頁面,但是問題來了,Facebook是透過post值決定要顯示哪個錯誤訊息,因此不可能透過網址來讓使用者看到密碼錯誤訊息(不信可以看看這個網頁,不論是帳號、密碼錯誤,還是什麼都沒有填寫,看到的都是這個網址),解決的辦法,就是顯示一個錯誤訊息,然後導向到真正的登入畫面,請接著在login.php貼上:

最後回到Mysql的部份,我們要把資料寫入資料庫,第一行引入的「SQL.php」是等一下要連線到Mysql的資料,先不用管他,下一句

意思很簡單,就是寫一個SQL指令,第一個%s對應到 email,第二個%s對應到 pass,也就是依序把帳號密碼寫入到fbhack->account裡面。
第二句,就只是執行第二句的SQL指令。接著來到SQL.php,不講解了

接著就是Mysql資料表了,請建立一個資料庫名為「fbhack」,建立資料表名為「account」,並新增兩欄分別為「email」及「pass」,或是執行以下SQL指令

然後…..大功告成,看看自己做出來的彷Facebook釣魚網站,那麼的逼真,製作又很簡單,有沒有覺得很可怕啊!

最後~小弟把這個程式的所有檔案打包好了給大家下載,其中fbhack.sql是SQL檔,只要把這個檔案導入就可以建好資料庫了
http://s3131212.com/download.php?s=fbhack.zip


2015/04/07 更新:
由於好多人都說之前的 Code 有 SQL Injection 問題,但是小弟覺得這只是一個示範,並不是要大家拿來用,幹嘛防禦 == ,不過既然都說了,我就把 Code 更新了一下,雖然現在可以防禦攻擊,但是還是請勿使用此 Code 於任何非法用途