日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

yakit的web fuzzer功能的使用

發布時間:2024/1/21 windows 47 coder
生活随笔 收集整理的這篇文章主要介紹了 yakit的web fuzzer功能的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題

yakit沒有Burp 的 Intruder 爆破模塊,那么yakit該怎么進行參數爆破?yakit參數爆破的方式與burp有什么區別?

前言

手工測試場景中需要滲透人員對報文進行反復的發送畸形或者特定的payload進行查看服務器的反饋并以此來進行下一步的判斷。
Fuzz標簽便是來配合滲透人員應對不同測試場景,可以到達免配置適配大量測試場景。
通過Fuzz標簽,自然且完美整合了Host碰撞、Intruder、目錄爆破等等功能。
我們如果想要使用 fuzz 標簽,需要明確兩個概念,標簽的格式是自定義的,目前支持{{和}}作為標簽的標記。

使用 Web Fuzzer 進行爆破

使用 Burp 的 Intruder 爆破其實是任何一個滲透測試同學的必修課,在原數據流程,我們需要做的事情是:

  1. 把需要爆破的數據包發送到 Intruder
  2. 為爆破的位置打標記
  3. 設置字典
  4. 配置爆破的線程、爆破規則等等
  5. 開始爆破
  6. 等待結果,查看爆破過程

然而在 Yakit 中,這個過程變得更加簡單并且符合人的邏輯。在yakit中進行爆破只需要以下這幾步(類比burp):

  1. 把需要爆破的數據包發送到 Intruder
  2. 選中需要打標記的位置
  3. 右鍵選擇字典
  4. 發包!

當然,這類場景非常多,很多時候我們想要的遍歷訂單類,遍歷手機號,甚至遍歷 Path 都可以通過這個方式做到。
實際 Yakit 在進行標記的時候,和 Burp 略微不同,并不是用序號進行標記,而是通過一個特殊的 Fuzz 標簽,標簽可以支持非常多的種類。而這也是yakit的一個亮點。
比如說,如果要進行一個參數遍歷 1-10,在 Yakit 中只需要 {{int(1-10)}} 即可把這個位置用數字 1-10 依次替換。如果需要用到字典,通過 {{x(your-dict)}} 即可把字典內容依次替換標簽位置內容,從而達到 Fuzz / 爆破的目的。比如下面這個數據包

POST /vul/burteforce/bf_form.php HTTP/1.1
Host: 106.225.223.72:9001
Cache-Control: max-age=0
x-forwarded-for: 127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Origin: http://106.225.223.72:9001
x-remote-ip: 127.0.0.1
Accept-Encoding: gzip, deflate
Referer: http://106.225.223.72:9001/vul/burteforce/bf_form.php
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=b7bg1strptq650mosus5no3rjl
Upgrade-Insecure-Requests: 1
x-remote-addr: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
x-originating-ip: 127.0.0.1
Content-Length: 45

username=admin&password=admin123&submit=Login

將passowrd這個參數進行爆破,爆破純數字1-10,那么數據包的fuzz標簽如下

POST /vul/burteforce/bf_form.php HTTP/1.1
Host: 106.225.223.72:9001
Cache-Control: max-age=0
x-forwarded-for: 127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Origin: http://106.225.223.72:9001
x-remote-ip: 127.0.0.1
Accept-Encoding: gzip, deflate
Referer: http://106.225.223.72:9001/vul/burteforce/bf_form.php
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=b7bg1strptq650mosus5no3rjl
Upgrade-Insecure-Requests: 1
x-remote-addr: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
x-originating-ip: 127.0.0.1
Content-Length: 45

username=admin&password={{int(1-10)}}&submit=Login


點擊發送即可看到效果

對純數字1-10的爆破結果如下


同時yakit在爆破之后也可以查看對應數據包詳情、響應大小(長度)。更讓人高興的是,實際上我們的爆破有時候并不完全依賴字典,如果單純只是想測試少數的幾個路徑,我們費力去傳一個字典,其實有點浪費了,在 Yakit 中我們可以通過 {{list(element1|element2|...)}} 來測試幾個特定的值。

POST /vul/burteforce/bf_form.php HTTP/1.1
Host: 106.225.223.72:9001
Cache-Control: max-age=0
x-forwarded-for: 127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Origin: http://106.225.223.72:9001
x-remote-ip: 127.0.0.1
Accept-Encoding: gzip, deflate
Referer: http://106.225.223.72:9001/vul/burteforce/bf_form.php
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=b7bg1strptq650mosus5no3rjl
Upgrade-Insecure-Requests: 1
x-remote-addr: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
x-originating-ip: 127.0.0.1
Content-Length: 45

username=admin&password={{list(123456|admin|admin123|000000)}}&submit=Login

比如這里就爆破了123456、admin、admin123、000000這幾個密碼,結果如下:

如何快速查找爆破參數

抓一個包,將其發送到web fuzzer,或者在History里面找到想爆破的這條數據

歷史記錄里找數據包


接下來查看你想爆破的這條數據的具體信息

點進來之后能看到數據包更具體的情況

里面會有對應的參數,我們按需選擇參數即可,比如我們要測試password這個參數,那么就直接點擊password這個參數后面的模糊測試按鈕即可


點擊之后會進入到web fuzzer模式

接下來就是正常的模糊測試流程

抓包發送到web fuzzer

上面是如何從歷史記錄中查找,這里是如何直接抓包進行爆破,畢竟考慮實用還是抓包直接發送到web fuzzer更快一點。
第一步:抓取想爆破的數據

然后右鍵點擊喚出右鍵菜單欄

選擇“發送到web fuzzer”即可

PS:這里有個小知識,有兩個發送到web fuzzer的選項,但是意義是不一樣的,第一個選項會強制https,如果你的目標是http,那么在選擇第一個選項后,發送到web fuzzer后需要手動取消https選項


不支持https的站點會發送出問題

取消強制https選項即可恢復

選擇爆破的字典

上面都是如何查找參數的問題,這里則是如何在需要爆破的參數上使用字典。畢竟yakit沒有像burp那樣單獨去設置一個Intruder(爆破)模塊。

等待標簽自己出現

在yakit中選擇想要爆破的參數,然后等待出現選項

在yakit的web fuzzer中選擇任意內容后會自動彈出功能菜單欄,常見“插入標簽”、“編碼”、“解碼”。其中“插入標簽”功能默認情況下如下

主動喚出右鍵菜單

選擇想要爆破的參數,然后點擊右鍵

點擊“插入標簽/字典”

三種使用字典的方式

① 插入臨時字典

通過手工方式添加一個臨時的字典,添加的文本可以直接讀取文件內容或者按行讀取


該模式適用于字典中密碼比較少、專向于某一目標的社工字典等等情況

上面就是使用這幾個密碼作為字典的內容去爆破,填寫完成后點擊“確定插入標簽”,如下,標簽變成了臨時字典文件了

點擊“發送請求”進行密碼爆破

② 插入模糊測試字典標簽

payload模塊里面,選擇需求的字典,復制Fuzz標簽,粘貼到你所需要fuzz的參數處,payload模塊的字典可以自行上傳保存等操作,payload模塊可以理解為一個字典庫。

點擊此處自己配置payload字典

點擊之后選擇自己想使用的fuzz字典(之前自己上傳的)

選完之后點擊確定插入

插入完成之后標簽如下

點擊“發送請求”進行字典爆破

③ 插入文件標簽

從本地導入字典文件,對文件內容可以按行讀取,或直接讀取文本內容

文件內容模式


默認模式是文件內容模式,該模式是將一個文件的所有內容當成一個完整的payload去發送

點擊“確定所選內容”進行插入,然后點擊發送

按行讀取文件模式

這個模式應該是大家比較熟悉的了,就是經典的burp的字典加載模式,即一個payload占一行。

發送請求

此外在爆破中還可以進行高級設置

點開高級配置,還可以設置爆破的并發線程數、代理、隨機延遲,對于爆破結果的篩選,可以通過正則、狀態碼、關鍵詞匹配對響應包進行過濾,并且支持正則提取響應數據。

常用 fuzz 標簽

通過上面的案例,想必大家對fuzz標簽有了初步的認識。在yakit中除了賬號密碼的爆破之外,fuzz標簽還有很多使用的場景

短信驗證碼類型Fuzz

4位數驗證碼:{{int(0000-9999|4)}}
隨機4位數驗證碼最小0000最大9999 枚舉200次 有效4位:{{randint(0000,9999,200|4)}}
6位數驗證碼:{{int(000000-999999|6)}}
隨機6位數驗證碼最小000000最大999999 枚舉200次 有效6位:{{randint(000000,999999,200|6)}}

學號/工號/手機號類型Fuzz

手機號Fuzz

手機號組成結構(3位網號+4位HLR號+4位的個人代碼)
網號固定,HLR和個人代碼隨機枚舉:

{{int(133,153,180)}}{{randint(0000,9999,100|4)}}{{randint(0000,9999,100|4)}}

網號固定,HLR和個人代碼遞歸枚舉:

{{int(133,153,180)}}{{int(0000-9999|4)}}{{int(0000-9999|4)}}
學號/工號Fuzz

學號/工號組成結構(入學年份+三位系別代碼+兩位專業代碼+三位學生編號):

{{int(2015-2023)}}{{int(000-999|3)}}{{int(00-99|2)}}{{int(000-999|3)}}

同理也可也用{{rangint()}}隨機生成幾位數值組成相關代碼

MD5 Fuzz

000-999的3位數MD5加密枚舉 Fuzz
{{md5({{int(000-999|3)}})}}
嵌套字典MD5加密枚舉 Fuzz
{{md5({{x(user_top10)}})}}

Base64 Fuzz

000-999的3位數base64加密枚舉 Fuzz
{{base64enc({{int(000-999|3)}})}}
嵌套字典base64加密枚舉 Fuzz
{{base64enc({{x(user_top10)}})}}

重定向并發 Fuzz

滲透測試需求中可能會對某些需求重復發包,或重復生成數據。repeat重復產生空字符串,例如:{{repeat(3)}},結果為:["", "", ""] 一般用來重復發包,或重復生成數據 重復發送100次數據包:{{repeat(100)}}。人話:重復將數據包發送指定次數,并且產生新的參數或其他參數。比如這里重復發送10次登錄數據包

POST /vul/burteforce/bf_form.php HTTP/1.1
Host: 106.225.223.72:9001
Cache-Control: max-age=0
x-forwarded-for: 127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Origin: http://106.225.223.72:9001
x-remote-ip: 127.0.0.1
Accept-Encoding: gzip, deflate
Referer: http://106.225.223.72:9001/vul/burteforce/bf_form.php
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=b7bg1strptq650mosus5no3rjl
Upgrade-Insecure-Requests: 1
x-remote-addr: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
x-originating-ip: 127.0.0.1
Content-Length: 45

username=admin&password=123456&submit=Login{{repeat(10)}}

結果如下:

host碰撞 Fuzz

Web Fuzzer 默認請求的是 Request 請求包中的 Host ,除此外也可以在 “高級配置” 中設置 “請求 Host”。 Host 碰撞時請求 Host 與請求包的 Host 不一致,可以在 “高級配置” 中指定目標 Host。

總結

以上是生活随笔為你收集整理的yakit的web fuzzer功能的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。