buu學習之旅(一)

墨子軒、發表於2020-11-29

前言

許久沒刷buu的題了,這次的我又雙叒叕來了!(別問為什麼來了,問就是水題來了)

正文

自閉一 upload1

開啟題目
題目場景
然後一看這不是有手就行嗎?自己想了一下他的目錄,猜測是upload,因為在原始碼裡看到了類似的東西。所以嘗試了一下,結果還真的對了。upload目錄
接下來就是上傳後門檔案了。所以首先嚐試正常的來了一個
第一次
發現結果提示第一次提示
然後該檔案格式,接著嘗試發現不對第二次嘗試結果
所以,這是過濾了字元?
於是就直接改了一下,變為第一次修改之後
接著上傳結果
然後就是想了一下,結合網上的一些大師傅的經驗(也就是類似提醒的wp),知道了一種新的檔案上傳的方式,叫做檔案幻術頭,也就是在你寫的一句話前面加上一個圖片型別的檔案頭,然後接著百度發現只需要在前面加一個GIF89a就可以,所以進行嘗試
GIF檔案頭
上傳結果
上傳成功。
然後路徑就是upload後面跟檔名。
接下來就bp抓包結果
修改檔案字尾為phtml,(至於為什麼不選擇php等,在我嘗試後發現會報錯,應該存在過濾的)接著蟻劍連線,搜尋flag得到結果
flag

自閉二 HTTP

開啟題目,題目樣式
看到這裡直接滑鼠右鍵檢視原始碼,發現了一個.php檔案,
.php檔案
訪問之後發現訪問之後
花裡胡哨的一大堆沒用,看到提示意思是說這個請求不是https://www.Sycsecret.com發出的。所以就直接抓包,修改頭資訊。
修改第一次
新增referer資訊
修改第二次
這裡提示使用Syclover進行瀏覽,所以再次修改第三次
得到
第三次結果
提示只能本地訪問,所以xff資訊改為:127.0.0.1,訪問得到flag
flag

自閉三 admin

開啟題目,上面提示提示
給我嚇了一跳,就開啟吧,然後進去題目
因為題目名字是admin,所以我就嘗試了一下admin+123登入,結果,就很,flag
WHAT!!!我還沒開始就已經結束了?這,果然是最快的男人(tui),既然這樣就按照正常步驟解一下吧,剛開始想著會不會是密碼蠻力爆破,然後沒嘗試,因為buu存在請求次數。所以就換了一個思路。
正常註冊了一個賬號,然後進入修改密碼的頁面(因為之前在登陸頁面找了沒有,就來到了密碼修改頁面),發現了註釋的網頁連結<!-- https://github.com/woadsl1234/hctf_flask/ -->,所以百度該連結,直接得到了這個題目的原始碼,然後找到這個東西發現

 if request.method == 'POST':
        name = strlower(form.username.data)

進行了名字的小寫轉換,也就是說註冊的是大寫會自動轉換成小寫,所以就無法通過註冊大寫admin來操作了。接著在登入,註冊,修改頁面都發現了這個函式。但是這個函式並不是python自帶的,而是作者自己定義的,看一下作者定義這個函式的地方。

def strlower(username):
    username = nodeprep.prepare(username)
    return username

使用的是 nodeprep.prepare函式,這個函式是用Twisted模組匯入,而且檢視專案時發現這個專案的Twisted版本相對於當時題目釋出的時間是落後的,所以這裡肯定有問題。
就利用Unicode編碼轉換。
這裡有一個線上網站
可以自動生成需要的字元。
也就是說這個自定義函式的工作流程就是

ᴬdmin->Admin->admin

所以註冊之後,修改密碼,直接用admin+修改之後的密碼進行登入,得到flag。
然後看了大師傅的部落格之後發現還有另外兩種解題方法。

session偽造

這方面由於自身並不強,所以沒辦法進行詳細的解釋。

由於這個題現在知道了是利用flask,所以就直接百度瞭解了一下flask的一些原理,
知道了flask是把session存在客戶端的,而且只經過base64編碼和用金鑰簽名,雖然沒有簽名不可以偽造session,但是有很多資訊我們可以直接從session解碼找出來。

然後就隨便註冊了一個賬戶登入接著利用bp抓包,

登入抓包
發現session值,利用了base64加密。
然後就利用指令碼解密,得到解密
然後就把其中的name項修改為admin再進行加密。得到
加密

.eJw9kEGLwjAQhf_KMmcPtraXggclWlyYlCypJbmI2mqSdtylKlsj_vfNuounYd6Dj_feHTaHvjkbyC79tRnBxtaQ3eFtBxlwtja8Kr-1w0j5WaQZppy9W0281bTulBRDIeeOs9VEu9oUOUYFK1N0xqhKxEX-0SppLNK_zpadll2LFe_QL0lRmWCsLSecFLK22i0JpUgxFgPPy1jL2cDlPkaHN12VN6yC7rVBf0y4rA33q_AvEuXVFB4j2J_7w-by2TanV4UQ-YZMjNGrMWdluHPCfE0hPqGbW52LKKAT7n4rqFTTIsHZ9ImztD02L1KTf9md-HNOWwoGbGuyJxjB9dz0z90gGsPjB_2NbJ4.X8J7Cg.NQcbminT5MN3zUM9NApKSNakd58

然後用這個替換掉抓包時的cookie值得到flag

總結

初次瞭解到session偽造,感覺就很神奇,有點那種csrf漏洞攻擊的味道,同樣是利用cookie而不是進行攻擊。等下次研究一下flask再詳細的記錄下來

結束語

部落格水完了,但是在水的同時同樣感受到了自己知識上的不足,已經對於做題方面的不老到,這些有待於提高。

相關文章