1. 程式人生 > >Kali Linux滲透測試 101 手動漏洞挖掘-CSRF 漏洞

Kali Linux滲透測試 101 手動漏洞挖掘-CSRF 漏洞

本文記錄 Kali Linux 2018.1 學習使用和滲透測試的詳細過程,教程為安全牛課堂裡的《Kali Linux 滲透測試》課程

1. 簡介
2. 判斷漏洞
3. 伺服器原始碼
    3-1. dvwa Low 安全級別
    3-2. dvwa Medium 安全級別
    3-3. dvwa High 安全級別

1. 簡介

  1. 從信任角度

    • XSS:利用使用者對站點的信任,攻擊者通過注入程式來修改網站來使使用者瀏覽器被重定向等
    • CSRF:利用站帶你對已經身份認證的使用者的信任,攻擊者偽造一個連結誤導使用者點選連結來使用使用者的身份認證來訪問伺服器
  2. 結合社工在身份認證會話過程中實現供給

    • 修改賬號密碼、個人資訊(email、收貨地址)
    • 傳送偽造的業務請求(網銀、購物、投票)
    • 關注他人社交賬號、推送博文
    • 在使用者非自願、不知情的情況下提交請求
  3. 業務邏輯漏洞

    • 伺服器對關鍵操作缺少確認機制
    • 自動掃描程式無法發現此漏洞
  4. 漏洞利用條件

    • 被害使用者已經完成身份認證
    • 新請求的提交不需要重新身份認證或確認機制
    • 攻擊者必須瞭解 Web APP 請求的引數構造
    • 誘使使用者觸發攻擊的指令(社工)
  5. BurpSuite CSRF PoC gennretor

    • POST / GET 方法
  6. 自動掃描程式的檢測方法

    • 在請求和響應過程中檢查是否存在 anti-CSRF tokec 名
    • 見擦汗伺服器是否嚴恆 anti-CSRF token 的名值
    • 檢查 tiken 中可編輯的字串
    • 檢查 referer 頭是否可以偽造
  7. 對策

    • captcha
    • anti-CSRF token
    • referer 頭
    • 降低會話超時時間

2. 判斷漏洞

  1. 新的修改密碼請求不需要輸入原密碼、


  2. 攻擊者修改伺服器 URL 地址,誘導使用者點選修改密碼

    http://10.10.10.132/dvwa/vulnerabilities/csrf/?password_new=aaaaaaaa&password_conf=aaaaaaaa&Change=Change
    # 放在 kali 本機,kali 模擬訪問
    

  3. 普通使用者在正常登陸 dvwa 的時候,點選此連結

    # 被攻擊者的密碼被修改
    



    # 攻擊者可以使用新的密碼進行登入
    
  4. 生成 PoC 檔案,證明漏洞存在



    # 將 URL 儲存至檔案誘導使用者訪問(同上)
    



2. 伺服器原始碼

1. dvwa Low 安全級別

<?php        
    if (isset($_GET['Change'])) { 
        // Turn requests into variables 
        $pass_new = $_GET['password_new']; 
        $pass_conf = $_GET['password_conf']; 


        if (($pass_new == $pass_conf)){ 
            $pass_new = mysql_real_escape_string($pass_new); 
            $pass_new = md5($pass_new); 

            $insert="UPDATE `users` SET password = '$pass_new' WHERE user = 'admin';"; 
            $result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' ); 

            echo "<pre> Password Changed </pre>";         
            mysql_close(); 
        } 
        else{         
            echo "<pre> Passwords did not match. </pre>";             
        } 
    } 
?>  

2. dvwa Medium 安全級別

<?php     
    if (isset($_GET['Change'])) { 
        // Checks the http referer header 
        //只支援上一級的頁面是來自本機的(由本機的頁面跳轉的此頁面)
        if ( eregi ( "127.0.0.1", $_SERVER['HTTP_REFERER'] ) ){ 

            // Turn requests into variables 
            $pass_new = $_GET['password_new']; 
            $pass_conf = $_GET['password_conf']; 

            if ($pass_new == $pass_conf){ 
                $pass_new = mysql_real_escape_string($pass_new); 
                $pass_new = md5($pass_new); 

                $insert="UPDATE `users` SET password = '$pass_new' WHERE user = 'admin';"; 
                $result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' ); 

                echo "<pre> Password Changed </pre>";         
                mysql_close(); 
            } 
            else{         
                echo "<pre> Passwords did not match. </pre>";             
            }    
        }   
    } 
?>

# 只需要使用 burpsuite 修改 referer 值為本機

3. dvwa High 安全級別

<?php        
    if (isset($_GET['Change'])) { 

        // Turn requests into variables 
        $pass_curr = $_GET['password_current']; 
        $pass_new = $_GET['password_new']; 
        $pass_conf = $_GET['password_conf']; 

        // Sanitise current password input 
        $pass_curr = stripslashes( $pass_curr ); 
        $pass_curr = mysql_real_escape_string( $pass_curr ); 
        $pass_curr = md5( $pass_curr ); 

        // Check that the current password is correct 
        $qry = "SELECT password FROM `users` WHERE user='admin' AND password='$pass_curr';"; 
        $result = mysql_query($qry) or die('<pre>' . mysql_error() . '</pre>' ); 

        if (($pass_new == $pass_conf) && ( $result && mysql_num_rows( $result ) == 1 )){ 
            $pass_new = mysql_real_escape_string($pass_new); 
            $pass_new = md5($pass_new); 

            $insert="UPDATE `users` SET password = '$pass_new' WHERE user = 'admin';"; 
            $result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' ); 

            echo "<pre> Password Changed </pre>";         
            mysql_close(); 
        } 
        else{         
            echo "<pre> Passwords did not match or current password incorrect. </pre>";             
        } 
    } 
?>

相關推薦

Kali Linux滲透測試 101 手動漏洞挖掘-CSRF 漏洞

本文記錄 Kali Linux 2018.1 學習使用和滲透測試的詳細過程,教程為安全牛課堂裡的《Kali Linux 滲透測試》課程 1. 簡介 2. 判斷漏洞 3. 伺服器原始

Kali Linux滲透測試 086 手動漏洞挖掘-命令執行漏洞

本文記錄 Kali Linux 2018.1 學習使用和滲透測試的詳細過程,教程為安全牛課堂裡的《Kali Linux 滲透測試》課程 1. 命令執行漏洞 2. 測試 Low 安全

Kali Linux 滲透測試:掃描漏洞

                                     Kali Lin

【安全牛學習筆記】Kali Linux滲透測試方法

信息安全 kali linux security+ 1.安全問題的根源①由於分層思想,導致每個層次的相關人員都只關心自己層次的工作,因此每個人認識系統都是片面的,而安全是全方位的,整體的,所以造成安全問題。②技術人員追求效率,導致只追求功能實現,而很容易忽略安全性的工作③由於人都是會犯錯誤的,因此

kali linux滲透測試——信息收集

新網數碼 例子 .cn 收集 主機 工具 dns服務 發送 分析 一.公開網站 我們可以通過公開網站收集目標域的有關信息,這樣我們不必向目標網絡直接發送數據,從而避免使目標察覺我們的行動。 自行百度,不再贅述。 二.域名的註冊信息 whois數據庫記錄有該域名的DNS

Kali linux滲透測試系列————28、Kali linux 滲透攻擊之社會工程學攻擊

社會工程學社會工程學是利用人性的弱點體察、獲取有價值資訊的實踐方法,它是一種期盼的藝術。在缺少目標系統的必要資訊時,社會工程學技術是滲透測試人員獲取資訊的至關重要的手段。對於素有型別的組織而言,人都是安全防範措施李最為薄弱的一個環節,也是整個安全基礎設施最脆弱的層面。從安全的

Kali Linux 滲透測試手冊(1.1)安裝虛擬機器

翻譯來自:掣雷小組 成員資訊: thr0cyte, Gr33k, 花花, 小丑, R1ght0us, 7089bAt, 一.配置KALI Linux和滲透測試環境 在這一章,我們將覆蓋以下內容: 在Windows和Linux上安裝VirtualBox 建立一個Kali L

【安全牛學習筆記】​Kali Linux滲透測試介紹

Kali Linux滲透測試介紹 安全問題的根源         優點:分工明確,工作效率高。(把大問題簡化成易於解決的小問題)         缺點:從業人員對系統沒有整體的認識,對安全認識較為片面。(搞技術的為了提高工作效率,只追求功能實現, 很少能在實現功能後

Kali linux滲透測試系列————23、Kali linux 滲透攻擊之伺服器端攻擊

漏洞評估伺服器端攻擊即找出並利用伺服器上的服務、埠和應用程式中的漏洞。舉個例子,Web伺服器都有多個攻擊途徑(Attack Vector)。它會執行一個作業系統,並執行各種各樣的軟體來提供Web功能。它會有很多開啟的TCP埠。這些途徑中的每一個都有可能找出一個攻擊者能利用的漏

Kali Linux滲透測試 021 主動資訊收集

本文記錄 Kali Linux 2018.1 學習使用和滲透測試的詳細過程,教程為安全牛課堂裡的《Kali Linux 滲透測試》課程 1. 簡介 直接與目標系統互動通訊 無法避免留下訪問的痕跡 使用受控的第三方電腦進行探測

Kali linux滲透測試系列————12、Kali linux資訊收集之作業系統識別

識別作業系統在確定目標主機線上之後,應當識別他們使用的作業系統。這階段工作通常稱為識別作業系統(也稱為作業系統指紋識別)。識別作業系統的方式有三種:主動式和被動式。主動式識別工具向目標主機發送資料包,並根據目標的響應來確定其使用的作業系統。這種方式的優點在於探測速度快,缺點是

Kali Linux滲透測試 045 讀取windows本地密碼

本文記錄 Kali Linux 2018.1 學習使用和滲透測試的詳細過程,教程為安全牛課堂裡的《Kali Linux 滲透測試》課程 1. 抓包嗅探 2. 鍵盤記錄本地密碼 3. 檢視本地快取密碼 4. WCE (WINDOWS

Kali linux滲透測試(一)

最近在學習kali,所以開個系列來記錄下吧 0x01 寫在前面 要養成從根源解決問題的習慣 安全問題的根源 分層思想的優劣(化整為零,把大化小,逐一實現) 只追求功能的實現(久而久之,眼光侷限,沒辦法看全域性,看整體——安全) 最大的安全威脅是人(人

【安全牛學習筆記】Kali Linux滲透測試介紹

​Kali Linux滲透測試介紹      安全問題的根源         優點:分工明確,工作效率高。         缺點:從業人員對系統沒有整體的認識,對安全認識較為片面。         最大威脅是人,人都會犯錯,安全問題不能100%絕對根除。    

Kali Linux滲透測試 049 清除痕跡

本文記錄 Kali Linux 2018.1 學習使用和滲透測試的詳細過程,教程為安全牛課堂裡的《Kali Linux 滲透測試》課程 1. 清除滲透攻擊痕跡 1.清除滲透攻擊痕跡 最多也只是清除本地記錄,如果有日誌伺服器的話還是會被

Kali linux滲透測試系列————34、Kali linux 維持訪問之建立Web後門

WeBaCooWeBaCoo(Web Backdoor Cookie)是一款隱蔽的指令碼類Web後門工具。藉助HTTP協議,它可以在客戶端和伺服器端實現執行程式碼的網頁終端。WeBaCoo有兩種工作模式:Generation(生產線模式):指定-g選項可進入這種模式。使用者可

Kali linux滲透測試系列————13、Kali linux資訊收集之埠掃描

埠掃描簡單來說埠掃描就是一種用來確定目標主機的TCP埠和UDP埠狀態的方法。主機開發了某個埠,就意味著他在中國埠提供某種網路服務。如果某個埠處於關閉狀態,這說明主機在這個埠上並沒有提供網路服務。在確定某埠開發狀態之後,攻擊人員就會檢查在該埠提供相應的服務的程式版本,以判斷這個

kali linux 滲透測試 第五章 netcat--nc

繼續記筆記~~~ 有了netcat,可以不用telnet了 nc的作用: 偵聽模式 / 傳輸模式 telnet / 獲取banner資訊 傳輸文字資訊 傳輸檔案/目錄 加密傳輸文檔案 遠端控制/木木⻢馬 加密所有流量 流媒體伺服器 遠端克隆

我的Kali Linux滲透測試學習之路

少壯不努力,老大徒傷悲。這句話時刻提醒著我,我是一名本科學生,自從今年我的同學把這一網站推薦了給我。通過我的同學說他不斷的聽課請教老師,能把多種知識融匯貫通,讓他感覺自己就像一個什麼都不懂的2B程式設計師成為一個網路大佬。現在我已經快畢業了,在安全牛課堂我打算學網路方面的知

Kali Linux 滲透測試 部落格記錄

本文記錄 Kali Linux 2018.1 學習使用和滲透測試的詳細過程,教程為安全牛課堂裡的《Kali Linux 滲透測試》課程 ————————基本環境———————— Kali Linux滲透測試 001 安裝環境 Ka