DVWA靶場第一關--Brute force 新手入門必看!!!

文中涉及講解burp爆破模塊介紹可能不太準確,請大佬批評指正

就dvwa靶場而言,兩個常見漏洞讓我有了新的認知

第一個接觸的漏洞為弱口令漏洞,常見情況下,人們口中的弱口令可能為“姓名縮寫”“123456”“生日簡寫等”接觸了dvwa,知道了弱口令不止這些,為此我接觸到了各種各樣的弱口令字典,如github的fuzzdict和burp自帶的字典等,一般來說,弱口令可用的場景為常見登陸窗口,拿dvwa舉例子

大概為這樣,常規破解不應該為手動測試,更多的為工具測試,例如burp抓包后的破解方式,說到burp的抓包,更多的算是有一點代碼審計能力,抓dnva登陸包為下

此為完整的抓包頁面,默認情況下,我們只能抓到請求包,然后根據此請求包再攔截請求包對應的響應包

要想爆破出弱口令,應選擇此請求包后右鍵放入攻擊模塊,也就是inteuder模塊

放入后有4種攻擊方式

狙擊手模塊

為單一模塊攻擊,只能攻擊用戶名或密碼其中一個,使用場景為已知密碼或已知用戶名的情況下

撞擊物模塊

與狙擊手模塊相似,不過狙擊手只能用來爆破其中一個的數據,而撞擊物為二者相同攻擊,為用戶名和密碼相同下使用

交叉模塊

為雙模塊攻擊,可以同時攻擊用戶名和密碼兩者,適用于只有一個弱口令字典情況下對用戶名和密碼都不知道的情景

集束炸彈模塊

同樣為雙模塊攻擊,不過他適用于兩個字典的擁有者,并且對登錄窗口的用戶名信息 密碼信息有一些模糊的猜測情況下使用

言歸正傳

進行爆破前還有一個步驟,為設定要爆破的位置,此時需要一些分析請求包的基礎,以下數據包進行示例

第一行為請求行,標明路徑和請求方式還有http版本,后面的username對應著用戶名,password為密碼

第二行為要請求的域名,你要向誰發起請求,此行為誰的域名,例如你要對百度發起搜索去請求,那么第二行為baidu.com

......

選好位置示例

然后跳到位置旁邊的payload模塊,因為這里不知道靶場的用戶名和密碼,不過有些相關猜測,應該為很簡單的弱口令,有些模糊概念,而且作者有好幾本字典,所以攻擊類型為集束炸彈,圖中第一行位置模塊選擇攻擊類型,payload模塊導入字典

看圖中第一個問號,下有一個payload集,默認為1,點擊向下箭頭還會有2,這代表著你選中的內容順序,我喜歡將用戶名先選中,為payload1,密碼第二個選、為payload2

第二個問號代表字典導入,從文件中加載為導入文件按鈕,而從列表中添加為導入burp自帶的字典,其他的我們目前用不到,不多介紹

這里為導入后顯示

然后點擊右上角開始攻擊按鈕

會彈出這個窗口,代表爆破正在進行中

Ps:此圖狀態碼302為錯誤,因為作者在爆破前忘記設置難度了qwq,已更正,正常爆破響應碼為200

這里有一個很有意思的現象,因為判斷一個弱口令是否登錄會查看它的長度,長度只有獨一無二才會代表登錄成功,但是作者在等待途中迫不及待查看長度,發現有好幾個長度獨一無二的(一般來說,錯誤的長度基本是差不多)查看詳情后發現均為帶單引號的有,這代表存在sql注入點

可以進行萬能密碼嘗試

進行嘗試后發現可以登錄

這就很有意思,至于為什么burp的萬能密碼沒有成功,因為它使用的是admin’or”=”?注意,他前面有個單引號,所以沒有閉合,引起數據庫報錯,這算是一種解決方法(后續會有關于SQL的解法,這里不多闡述)

正常解法:

我們跑了大概一萬多種,暫停后查看,發現有兩個與眾不同的長度

發現基本大差不差,唯一的是大小寫不同,用這個登錄,發現登陸成功

所以在dvwa的低級難度,解決了這個靶場

我們換到中級難度,查看這個靶場,因為這個靶場之前有sql注入,這次我們先排查它

發現單引號沒有引起數據庫報錯,所以這次不存在sql萬能密碼注入,我們再次進行burp抓包,看看請求包是否有改變

發現username和password都是明文傳輸,這里還可以用burp進行爆破,同樣的步驟不多贅述(作者抓包破解一半發現爆破出了問題,查看源代碼(后續會單獨說明)是加入了sleep參數,也就是說發送登錄請求間隔為兩秒,可以在burp設置一下時間延遲參數,只要時間足夠,密碼會出來的)直接跳到高級難度步驟

因為中等難度沒有sql注入,所以高級肯定沒有,這里繼續抓包查看密碼是否為明文傳輸

發現多了token校驗,token就像我們的身份證,具有唯一性,但是這有刷新的機制,所以這里還需要繞過token驗證(每一次請求的token都是隨機的)這次我們不在爆破用戶名,所以password值為payload1,而usertoken為payload2。模式可能我講的不是很準確,各位觀眾大大可以看看別人文章,模式我們選擇交叉模式,注意,這里一定要把用戶名填寫為正確的admin,而不是亂輸入,因為我們這次不爆破用戶名!

具體步驟為 (算是本章重難點,所以全流程,全解析演示一遍,很重要的地方作者可能也理解錯誤,如果不對,請各位批評指正)

1 輸入正確的用戶名和錯誤密碼,抓包(用戶名一定要正確!!!)

2 放到intruder模塊,選擇交叉模塊(一定是這個模塊,因為它的特性)

3 定位payload1和2的位置(方便展示,作者password為payload1 usertoken為payload2)

3.5 Payload正常導入對應字典

在payload2中(重點)

先選擇類型為遞歸提取,選擇這個類型是因為token為隨時隨地變化的,不是固定,而遞歸提取會將這一過程自動化,雖然提高了難度,但是這個過程避免了手動的進程,提升效率,而遞歸提取,需要正則表達式,這個后期不能疏忽

4 選擇intruder的設置模塊

劃到下邊,找到檢索-提取一欄,點擊添加按鈕

5 選擇添加正則表達式 下 的獲取響應

6 會出現網頁代碼,下滑找到usertoken字樣,將token值勾選,burp會自動轉換為正則表達式,所以這步一定在勾選時注意(不能多,也不能少)

7選中后確定,發現檢索-提取 功能欄出現了正則表達式

8繼續下滑,找到重定向,將跟隨重定向選擇為總是

(之所以選擇重定向,是因為我們的user-token是每次刷新的,需要用到重定向來幫助我們提取新的user-token,而且我們選擇的遞歸提取依賴于重定向,不啟用重定向則提取到無用數據,導致token爆破失敗)

9在這些都完成的情況下,就可以點擊開始攻擊了,進行爆破

結果

這里能夠清晰地看到,前兩位長度不同,是因為payload1也就是密碼字典沒有運行,所以他倆長度為4787,而查看第2個請求,payload1為password,payload2為usertoken,并且與其他不相同,我們嘗試用這個登錄

成功登錄

代碼分析,低難度

大概意思為,出一個登錄窗口,分別為輸入用戶名(username)和密碼(password)的輸入框,并且將密碼以MD5值的形式返回數據庫,生成一個sql數據庫語句,意思是將用戶輸入的用戶名和密碼和數據庫存在的用戶和密碼進行對比,如果數據庫存在且只有一條數據匹配,則會提取用戶頭像值,并重定向于新窗口,出現歡迎信息:Welcome to the password ?protected incorrect area字樣

中等難度

基本沒有什么變化,不過多了sql敏感詞匯的校驗和延遲時間(已圖中標藍)

高級難度

不同的是,增加了動態刷新token的交互代碼(已圖中標藍)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917782.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917782.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917782.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

完美解決Docker pull時報錯:https://registry-1.docker.io/v2/

1、錯誤描述rootubuntu-database:/opt/dify/docker# docker compose up -d [] Running 9/9? api Error context canceled …

用 Python 批量處理 Excel:從重復值清洗到數據可視化

引言日常工作中,經常需要處理多份 Excel 表格:比如合并銷售數據、清洗重復的用戶信息,最后生成可視化圖表。手動操作不僅效率低,還容易出錯。這篇文章分享一套 Python 自動化流程,用pandas和matplotlib搞定從數據清洗到…

4.5 點云表達方式——圖

(一)定義與原理 圖4-5-1 點云圖結構

wordpress菜單調用的幾種常見形式

在WordPress主題開發里,“菜單”在前端頁面中常見的調用/輸出形式可以歸納為5種,按出現頻率從高到低列給你,并給出最簡代碼片段,方便直接復制粘貼。 標準菜單位置調用(99%場景) 后臺“外觀→菜單”里把菜單A指派到菜單位置prima…

linux中pthread_t 的值與top -Hp中線程id值的區別

linux中pthread_t 值與top -Hp中線程id值的區別 #include <stdio.h> #include <pthread.h> #include <thread>void thread_func() {printf("child thread id0x%x\n",pthread_self());while(1){ printf("hello world\n");} }int ma…

Idea集成Jenkins Control插件,在IDEA中觸發Jenkins中項目的構建

IDEA可以下一個這個插件 Jenkins Control&#xff0c;直接在idea中觸發測試環境項目的部署測試環境API-TOKEN&#xff1a;XXXXXXXXXXXXXXXX&#xff08;在jenkins的首頁 - 系統管理 - 管理用戶中獲取&#xff09;配置號后&#xff0c;測試連接&#xff0c;需要是成功的狀態&…

【ARM】CMSIS6 介紹

1、 簡介CMSIS是通用微控制器軟件接口標準(Common Microcontroller Software Interface Standard ) 的簡寫。CMSIS 包括API、軟件組件、工具及工作流程&#xff0c;主要用于簡化軟件重用、縮短開發人員學習曲線&#xff0c;加快項目構建和調試&#xff0c;從而使產品更快上市。…

【含文檔+PPT+源碼】基于SSM的旅游與自然保護平臺開發與實現

項目介紹 本課程演示的是一款&#xff1f;&#xff1f;&#xff0c;主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 包含&#xff1a;項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 帶你從零開始部署運行本套系統 該項目附帶的源碼資料…

QT6 源,十章繪圖(2)畫刷 QBrush:刷子只涉及填充顏色,線型,填充圖片,以及變換矩陣這幾個屬性,附源代碼帶注釋。

&#xff08;1&#xff09;本類的繼承關系如下 &#xff1a;&#xff08;2&#xff09;本類是支持流運算的 &#xff1a;&#xff08;3&#xff09;本類的構造函數與運算符 operator 函數 &#xff1a;關于本類的構造函數&#xff0c;進行以下測試 &#xff1a;只修改畫刷的構…

安科瑞智慧能源管理系統在啤酒廠5MW分布式光伏防逆流控制實踐

項目信息 光伏裝機1MW&#xff0c;3個并網點&#xff0c;低壓接 入配電系統。 要求自發自用、余電不上網。解決方案 通過防逆流保護裝置&#xff0c;做到剛性控制&#xff0c; 實現并網柜快速切斷&#xff1b;通過防逆流管理系統&#xff0c;做到柔性調節&#xff0c; 實現光伏…

VUE-第二季-02

3.Vue組件化 3.1 什么是組件 (1) 傳統方式開發的應用 一個網頁通常包括三部分&#xff1a;結構&#xff08;HTML&#xff09;、樣式&#xff08;CSS&#xff09;、交互&#xff08;JavaScript&#xff09; 傳統應用存在的問題&#xff1a; ① 關系縱橫交織&#xff0c;復雜…

【OpenGL】LearnOpenGL學習筆記02 - 繪制三角形、矩形

上接: https://blog.csdn.net/weixin_44506615/article/details/149861824 完整代碼&#xff1a;https://gitee.com/Duo1J/learn-open-gl 一、渲染管線 在開始之前&#xff0c;我們先簡單了解一下圖形渲染管線 在渲染3D物體時&#xff0c;我們常用到的一種幾何結構為網格模型…

Mysql的事務是什么?

簡單來說&#xff0c;MySQL 實現事務的核心就像是給你的數據庫操作加了一套“保險和存檔”機制。它確保了你的操作要么全部成功&#xff0c;要么全部失敗&#xff0c;并且在面對多人同時操作、系統突然崩潰等情況時&#xff0c;數據依然可靠、準確。 為什么需要事務呢&#xff…

測試開發:Python+Django實現接口測試工具

【測試開發天花板】DjangoVuePyTest打造企業級自動化平臺&#xff5c;能寫進簡歷的硬核項目最近被幾個公司實習生整自閉了&#xff0c;沒有基礎&#xff0c;想學自動化又不知道怎么去學&#xff0c;沒有方向沒有頭緒&#xff0c;說白了其實就是學習過程中沒有成就感&#xff0c…

TFS-2022《A Novel Data-Driven Approach to Autonomous Fuzzy Clustering》

核心思想 這篇論文的核心思想是提出一種全新的、數據驅動的自主模糊聚類&#xff08;Autonomous Fuzzy Clustering, AFC&#xff09;算法。其核心創新在于&#xff0c;它巧妙地結合了模糊聚類的靈活性和基于中位數&#xff08;medoids&#xff09;聚類的可解釋性&#xff0c;并…

ELK是什么

ELK 是一個廣受歡迎的開源技術棧&#xff0c;用于實時采集、處理、存儲、搜索、分析和可視化海量的日志數據&#xff08;log&#xff09;和機器生成的數據&#xff08;machine data&#xff09;&#xff0c;尤其是在 IT 系統監控、應用故障排查、安全分析和業務智能等領域應用廣…

[硬件電路-123]:模擬電路 - 信號處理電路 - 常見的高速運放芯片、典型電路、電路實施注意事項

一、高速運放常見芯片型號及特性高速運放&#xff08;高速運算放大器&#xff09;通常指帶寬&#xff08;GBW&#xff09;超過10MHz、壓擺率&#xff08;SR&#xff09;高于10V/μs的器件&#xff0c;適用于視頻處理、通信系統、高速數據采集等場景。以下是典型芯片及其特性&am…

關于解決WinRiver項目動態XmlElement的序列化與反序列化的問題

關于解決WinRiver項目動態XmlElement的序列化與反序列化的問題 一、WinRiver項目流量匯總XML內容 1.1、索引可變,索引下 XmlElement 元素內容固定 1.2、如何將對象 BottomTrack 的動態內容序列化為 XML ? 1.3、如何將 XML 動態內容反序列化為對象 BottomTrack ? 二、XML 動態…

【力扣 Hot100】 刷題日記

D3 128.最長連續序列 錯解 class Solution {public int longestConsecutive(int[] nums) {Arrays.sort(nums);int maxCnt 0;int cnt 0;for (int i 0; i < nums.length - 1; i) {if(nums[i] ! nums[i 1] - 1){//如果不連續&#xff0c;取cnt與maxCnt較大值&#xff0c…

飛算JavaAI編程插件:以AI之力賦能Java開發,讓編碼效率再升級

你是否希望自己敲代碼的時候總有一位大佬在你背后幫你保駕護航。想象一下&#xff0c;當你對著Java編輯器敲代碼時&#xff0c;身后站了位“隱形大神”——你剛敲出for&#xff0c;它就預判到你要遍歷集合&#xff0c;自動補全帶泛型的循環邏輯&#xff1b;你手滑把equals寫成&…