pikachu靶場-暴力破解(驗證碼、token)


甲.基於表單的破解

較為簡單,直接BurpSuite爆破。

 

乙.驗證碼繞過(on server)

打開題目,比第一題多了一個驗證碼驗證,很多初學者遇到驗證碼就會感覺不知所措。其實這題也較為簡單,首先正常進行測試。

 

 

點擊登錄,返回賬戶或密碼錯誤,並且驗證碼也更新了。

 

我們截取數據包看看

 

 

將數據包發到重發模塊,測試多次提交,結果發現返回信息僅提示賬戶密碼錯誤,驗證碼並未更新,所以驗證碼只隨頁面刷新而更新。在一次請求中多次提交數據,驗證碼不變,也是直接用BurpSuite爆破。

 

 

 

爆破出一個,看回包

 

 

提示login success,登錄成功。

 

丙.驗證碼繞過(no client)

打開題目和第二題不同,驗證碼不再是圖片方式呈現。

 

 

首先查看前端代碼。

<script language="javascript" type="text/javascript">     
     var code; //在全局 定義驗證碼
     function createCode() {
     code = ""; var codeLength = 5;//驗證碼的長度 var checkCode = document.getElementById("checkCode"); var selectChar = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');//所有候選組成驗證碼的字符,當然也可以用中文的 for (var i = 0; i < codeLength; i++) { var charIndex = Math.floor(Math.random() * 36); code += selectChar[charIndex]; } //alert(code); if (checkCode) { checkCode.className = "code"; checkCode.value = code; } } function validate() { var inputCode = document.querySelector('#bf_client .vcode').value; if (inputCode.length <= 0) { alert("請輸入驗證碼!"); return false; } else if (inputCode != code) { alert("驗證碼輸入錯誤!"); createCode();//刷新驗證碼 return false; } else { return true; } } createCode();

可以看出該驗證碼使用的是前段js腳本生成的,常規操作,直接禁用瀏覽器js腳本支持。

 

 

刷新后試試,這個時候就沒有驗證碼了。嘗試后也沒提示要我們輸入驗證碼。

 

 

直接爆破,登錄成功。

 

 

丁.token防爆破

 

題目和第一題看起來一樣,但進行數據重發的時候會提示token錯誤。

 

 

抓包后發現請求包參數中多了一個token。

 

 

抓個包看看

 

 

查看第二個包

 

 

查看第三個包

 

 

一共提交了兩次,觀察數據包中token值關系。

1---token-a---2  2---token-b---1  1---token-b---2  2---token-c---1

就是說我提交的token值等於上次服務器回應給我的token值。那么我需要做的就是在爆破時提交上次服務器回給我的token值。

 

解題方法:

1.截取數據包,線程數改為1,因為token值是單次傳遞的。

 

 

 

在下面重定向功能中選擇總是(always)。

 

 

2.在GREP-Extract中獲取響應包,從中提取參數。選中token值,這個時候工具會自動編輯規則,復制token值備用。點擊ok。

 

 

3.選擇攻擊模塊中有效負載,用戶和密碼按照之前配置,第三個token值選擇遞歸搜索(Recursive grep),然后填入剛剛復制的token值,開始暴破。

 

 

 

這里有一個坑,你在網上看到的大多數情況都是兩個參數做Pichfork爆破,但由於本題是三個參數,所以爆破起來會有問題,只有當你的賬號密碼能夠恰好都在各自字典的同一行時才會匹配上。網上我看到的賬號密碼加token參數做爆破都是作者自己有意添加的正確密碼,參考性不強。你要做這題也能做出來,類似這種

 

 

在不考慮有意默認用戶名,只做密碼和token爆破,以及有意把正確賬號密碼做匹配的情況下。

我能想到的方法是賬號和密碼做笛卡爾乘積模式爆破(最后一種),然后賬號密碼作為整體和token做Pichfork爆破。

但,,,,我不會,如果有大佬能教教我,我感激不盡。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM