最近剛退伍了~~~
南部的缺好像沒很多QQ
許多HTB機器的沒寫到
但最近覺得該提升一下Web方面
因此打算開始做Portswigger的labs
是關於User的列舉。
講得很明白:
根據你的Request回應的時間來判斷是否有此用戶。
例如當你後端驗證程序上,
若一時的大意,只在有此用戶的情況下才去核對密碼的話,
根據驗證以及回傳給Request方的時間
變有可能以此Response Time作為爆破用戶名稱的漏洞!
虛擬碼大概會像這樣:
if( username == exist ){
if( password.Correct() ){
return Login_Success();
} // if
return Login_Fail();
} // if
else{
return Login_Fail();
} // else
那麼我們來到題目頁面:
利用Burp攔截到後我們把Request送到Intruder:
(不會攔截的小夥伴可以參考這邊喔!: https://www.itread01.com/content/1547158346.html)
注意在這裡如果你錯誤太多次的話會Ban你的IP
我們可以嘗試修改X-Forwarded-For這個標頭內容來繞過
可以參考這個參數的說明:https://zh.wikipedia.org/wiki/X-Forwarded-For
根據他給的爆破名單大約有一百個
我自己寫個bash來產生一個IP文件好讓我等等能使用不同的IP標頭來爆破。
#!/bin/sh
END=245
for i in $(seq 1 $END)
do
echo 203.123.132.$i >> IPList.txt
done
說一下我的Intruder設定:
記的Password一定要長一點,不要像我一樣一開始用很短結果每個Response Time都差不多XD...
另外題目很有良心的還發了一組合法的用戶Creds給我們可以比較
以下是結果:
(記的預設是不會給你Response Time的)
(要自己去Columns -> Response completed打勾)
你可以自己多測幾次,有時候因為網路或是伺服器等變數有時會有奇怪的Response Time出現
因此多次驗證比較好。
最後得出當UserName為ftp
時,Response Time都會多一點
看來他就是我們的明日之星了!
接著只需要把Intruder的設定稍作修改(以紅色
表示):
題目給的password List
ftp
§§
接下來只要再回傳結果
看到HTTP狀態為302(重新導向),應該就是登入成功了:
成功登入後
一般情況下CSRF TOKEN是會發新的給你的
(延伸閱讀:成功登入後要發新的CSRF token嗎?)
所以你要再重新刷進頁面一次。
之後就看到登入成功啦!