天天看點

藍鲸CTF-web-密碼洩露

藍鲸CTF-web之密碼洩露:題目連結

藍鲸CTF-web-密碼洩露

進入到題目環境之後,頁面顯示登陸表單和“false”字樣,先猜解一些密碼是什麼,經過一系列的猜解之後,頁面一直顯示flase。此時,檢視網頁源代碼:

藍鲸CTF-web-密碼洩露

源代碼的注釋裡顯示了一個名為password.txt的檔案,現在我們可以去通路一下這個檔案,通路之後,頁面顯示了很多條密碼,着很顯然是一個密碼字典:

藍鲸CTF-web-密碼洩露

這個時候我們需要利用工具和密碼字典進行暴力破解。現将頁面的内容拷貝到一個txt文本檔案裡制作密碼字典,然後使用burpsuite進行抓包爆破

藍鲸CTF-web-密碼洩露
藍鲸CTF-web-密碼洩露
藍鲸CTF-web-密碼洩露
藍鲸CTF-web-密碼洩露

開始爆破過程,因為密碼字典隻有100多條密碼,是以爆破過程還是很快的,結束之後,點選Length進行排序,排序之後我們可以清晰的看到經過爆破得到的密碼。

藍鲸CTF-web-密碼洩露

既然得到了密碼,現在傳回到網頁送出一下密碼,送出密碼過程中,發現密碼長度為7位,而密碼的input表單卻隻能輸入5位,此時需要更改一下源代碼裡的input标簽的maxLength屬性值,改為7.再次輸入密碼。

藍鲸CTF-web-密碼洩露

輸入正确的密碼點選送出之後,頁面回顯資訊“這裡沒有flag哦”

藍鲸CTF-web-密碼洩露

這怎麼整了?再回到burpsuite裡面,看一下剛剛爆破密碼之後的Response。

藍鲸CTF-web-密碼洩露

在爆破結果裡,有一個Set-Cookie字樣,它的屬性值看樣子是一個base64的編碼,此時我們進行解碼看一下:

藍鲸CTF-web-密碼洩露

解碼出來竟然是一個.php檔案。。。再來通路一下這個php檔案。

藍鲸CTF-web-密碼洩露

通路之後的頁面是這樣的,有一個浏覽框,看到了留言框,首先我想到的是XSS漏洞,可是檢視源代碼之後,發現并不是。先在留言框裡輸入資訊看一下會是什麼情況。

藍鲸CTF-web-密碼洩露

留言之後,留言的資訊會顯示在下方的留言闆上。。。再想想,留言者這個地方很可疑,為什麼會是guest呢?自動建立的嗎,還是預設的訪客使用者。

繼續使用burpsuite進行抓包,看結果:

藍鲸CTF-web-密碼洩露

抓到包之後,發送到Repeater,然後Go一下,我們可以看到執行之後的資訊,頁面提示“你還沒有登入,不能留言”。嗯?什麼情況,剛剛我已經是可以留言的啊!再仔細觀察,頁面中有一個标藍的Cookie屬性的屬性值,Cookie的屬性值是IsLogin=0。IsLogin的值為0,這就說明了登入的時候并沒有記錄登入狀态,我們需要改為IsLogin=1。

藍鲸CTF-web-密碼洩露

改為1之後,點選Go執行,此時頁面回顯資訊“你沒有權限登入”,和剛才不一樣了,說明IsLogin的值改為1是正确的,可是這個權限到底是指什麼權限,在回頭看抓包的代碼資訊。抓包的資訊裡有一段“userlevel=guest”,這個guest有點意思了,訪客使用者,是要改成管理者賬戶嗎,現在來改成root執行試一下:

藍鲸CTF-web-密碼洩露

測試通過,确實是由于使用者權限引發的問題,執行之後我們可以看到,Response裡面顯示了一個flag,不過這個flag看起來有點怪,好像是什麼編碼,但又好像是部分編碼,使用%号開頭的編碼像是URL編碼,放在工具裡進行解碼,看結果:

藍鲸CTF-web-密碼洩露

解碼之後終于看到flag 了,這個flag再不對我就瘋掉了。

藍鲸CTF-web-密碼洩露

測試通過,end結束。

總結:這道題目感覺很有水準,題目設計的轉折點也是比較合理的。題目首先得突破點是第一個網頁的源代碼,通過源代碼裡“password.txt”的提示資訊,然後進行密碼爆破擷取密碼,之後再根據抓包的資訊進行base64解碼,然後在根據解碼資訊去通路指定的頁面,我覺得直到這裡才是關鍵,所有的結果都是通過修改Cookie的登入記錄資訊去擷取,因為沒有登入的狀态,我們去改變IsLogin的值,因為沒有權限登入,我們去改變登入的使用者名,最後才擷取到了flag,然鵝這個flag還是經過編碼的,解碼之後才是最終結果。是以感覺這樣一道題目設計的非常有腦洞,很鍛煉思維。

繼續閱讀