進入網站,提示要登陸,妥爆破
抓包
注意到最下行的base64編碼
發現就是剛剛輸入的賬號密碼
因此這里就是要選擇爆破的地方了
發給inruder,添加爆破位
載入題目給的字典,并且添加爆破的規則
爆
略
代碼審計
題目很簡單,只要能滿足以上條件即可輸出flag
但是仍需要一定的編寫代碼能力
ctf里,能夠用工具解決的都是簡單題,所以編寫代碼的能力是很重要的,希望大家別做腳本小子,多親自寫寫,相信一定會有不同的感悟和提升
這里我給出兩種方法
import requests
import string
strings=string.ascii_lowercase+string.digits
for i in strings:
for j in strings:
url = "http://08945b13-a3f3-425d-a7c5-ae238e8ec15a.challenge.ctf.show/?token="+str(i)+str(j)
res = requests.get(url=url)
if 'ctf' in res.text:
print(res.text)
exit()
這種方法比較慢,但更簡單更容易理解,推薦新手使用
php腳本
這個腳本優點是速度更快,但需要一定的php基礎
以上兩種方式都是可以的
源碼:
error_reporting(0);
include("flag.php");
if(isset($_GET['r'])){
$r = $_GET['r'];
mt_srand(372619038);
if(intval($r)===intval(mt_rand())){
echo $flag;
}
}else{
highlight_file(__FILE__);
echo system('cat /proc/version');
}
?>
這里搜索一下mt_strand()函數:
即生成隨機數
其實說是隨機數,但并不是真正的隨機,這里其實生成的是偽隨機數
如何理解?
首先我們要知道,計算機不能產生絕對的隨機數,只能產生偽隨機數。偽就是有規律的意思。偽隨機數就是說計算機產生的隨機數是有規律的。那么計算機是怎么產生隨機數的?當然是通過算法,這個算法是有映射關系的,如我放進1234,他會出來一個特定的數。
而系統實現隨機數是把當前的系統時間放進去,每次時間都不一樣,所以可以實現每次出來的數都不一樣。如果你每次都放進一樣的種子,生成的隨機數列就是一樣的了。
也就是說,你在不同的電腦上輸入同樣的種子(比如1234),輸出的隨機數是一致的
也就是說這道題里產生的隨機數其實是固定的
自己電腦上生成一下
這里還要注意一個細節,你所使用的php版本要和服務器的一樣,生成的偽隨機數才能一致
源碼
審計,種子沒有明確給出,但是需要種子才能繼續推進,因此需要對種子進行爆破
看到這里,get一個r=0的值,則得到的rand為偽隨機一次的相反數
爆破seed,由php的版本,選取7.1以上的進行嘗試
嘗試可能的seed即可
對數據庫密碼進行爆破
進入靶場,頁面是登陸系統,可以下載附件查看相關考生信息
身份證號不全,需要完整身份證號進行查詢,因此對身份證號爆破
unicode轉中文:
登陸得到flag:
對目錄進行爆破
兩個位置均設置好爆破規則即可
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
分享文章:web入門-爆破-創新互聯
標題路徑:http://vcdvsql.cn/article38/ccedsp.html
成都網站建設公司_創新互聯,為您提供靜態網站、建站公司、定制網站、網站內鏈、Google、品牌網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯