buu學習之旅(一)
前言
許久沒刷buu的題了,這次的我又雙叒叕來了!(別問為什麼來了,問就是水題來了)
正文
自閉一 upload1
開啟題目
然後一看這不是有手就行嗎?自己想了一下他的目錄,猜測是upload
,因為在原始碼裡看到了類似的東西。所以嘗試了一下,結果還真的對了。
接下來就是上傳後門檔案了。所以首先嚐試正常的來了一個
發現結果提示
然後該檔案格式,接著嘗試發現不對
所以,這是過濾了字元?
於是就直接改了一下,變為
接著上傳
然後就是想了一下,結合網上的一些大師傅的經驗(也就是類似提醒的wp),知道了一種新的檔案上傳的方式,叫做檔案幻術頭
,也就是在你寫的一句話前面加上一個圖片型別的檔案頭,然後接著百度發現只需要在前面加一個GIF89a
就可以,所以進行嘗試
上傳成功。
然後路徑就是upload後面跟檔名。
接下來就bp抓包
修改檔案字尾為phtml
,(至於為什麼不選擇php等,在我嘗試後發現會報錯,應該存在過濾的)接著蟻劍連線,搜尋flag得到結果
自閉二 HTTP
開啟題目,
看到這裡直接滑鼠右鍵檢視原始碼,發現了一個.php
檔案,
訪問之後發現
花裡胡哨的一大堆沒用,看到提示意思是說這個請求不是https://www.Sycsecret.com
發出的。所以就直接抓包,修改頭資訊。
新增referer
資訊
這裡提示使用Syclover
進行瀏覽,所以再次修改
得到
提示只能本地訪問,所以xff
資訊改為:127.0.0.1
,訪問得到flag
自閉三 admin
開啟題目,上面提示
給我嚇了一跳,就開啟吧,然後進去
因為題目名字是admin,所以我就嘗試了一下admin+123登入,結果,就很,
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值
總結
初次瞭解到session偽造
,感覺就很神奇,有點那種csrf漏洞攻擊的味道,同樣是利用cookie而不是進行攻擊。等下次研究一下flask
再詳細的記錄下來
結束語
部落格水完了,但是在水的同時同樣感受到了自己知識上的不足,已經對於做題方面的不老到,這些有待於提高。
相關文章
- BUU_RE學習記錄
- buu Reverse學習記錄(10) 不一樣的flag
- buu Reverse學習記錄(8) xor
- gRPC入門學習之旅(一)RPC
- 學習jQuery之旅jQuery
- java學習之旅-1Java
- 爬蜥學習之旅
- HDR影像學習之旅
- java學習之旅(續)Java
- Linux學習之旅Linux
- Python學習之旅(十九)Python
- Python學習之旅(十七)Python
- Python學習之旅(七)Python
- python學習之旅(四)Python
- python學習之旅(五)Python
- Python學習之旅(三十)Python
- Rust 語言學習之旅Rust
- Kubernetes學習之旅
- web開發學習之旅Web
- OpenCV學習之旅 簡介OpenCV
- Android 學習之旅!(2)Android
- Android 學習之旅!(1)Android
- 一個程式設計師的數學學習探索之旅程式設計師
- Spring boot學習(一)開啟Spring boot之旅Spring Boot
- ARCore學習之旅:基礎概念
- 筆記-JavaWeb學習之旅17筆記JavaWeb
- Flask學習之旅--資料庫Flask資料庫
- Python學習之旅(三十三)Python
- Rust 語言學習之旅(6)Rust
- Rust 語言學習之旅(3)Rust
- Rust 語言學習之旅(2)Rust
- Rust 語言學習之旅(7)Rust
- opencv-python學習之旅OpenCVPython
- JavaScript學習之旅-9(原創)JavaScript
- Java Web學習之旅開始JavaWeb
- Dubbo架構的學習之旅架構
- 開始我的學習之旅。。。。
- ARCore學習之旅:ARCore Sample 導讀