iT邦幫忙

0

Portswigger Lab: Username enumeration via response timing

前言

最近剛退伍了~~~
南部的缺好像沒很多QQ
許多HTB機器的沒寫到
但最近覺得該提升一下Web方面
因此打算開始做Portswigger的labs


題目內容

https://portswigger.net/web-security/authentication/password-based/lab-username-enumeration-via-response-timing

是關於User的列舉
講得很明白:
根據你的Request回應的時間來判斷是否有此用戶。
例如當你後端驗證程序上,
若一時的大意,只在有此用戶的情況下才去核對密碼的話,
根據驗證以及回傳給Request方的時間
變有可能以此Response Time作為爆破用戶名稱的漏洞!

虛擬碼大概會像這樣:

if( username == exist ){
    if( password.Correct() ){
        return Login_Success();
    } // if
    
    return Login_Fail();
} // if
else{
    return Login_Fail();
} // else

那麼我們來到題目頁面:
https://ithelp.ithome.com.tw/upload/images/20200531/20121620DTSRCAz582.jpg

利用Burp攔截到後我們把Request送到Intruder:
(不會攔截的小夥伴可以參考這邊喔!: https://www.itread01.com/content/1547158346.html)
https://ithelp.ithome.com.tw/upload/images/20200531/201216203EyR1qraNP.jpg

注意在這裡如果你錯誤太多次的話會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設定:

  • Attack Type: Pitchfork
  • payload 1: 我的IP文件
  • payload 2: 題目給的UserList
  • Post Request參數payload點:
    X-Forwared-For: §§
    username=§§
    password=aaaaaaaaaaaaaaaaaaaaaaaa

記的Password一定要長一點,不要像我一樣一開始用很短結果每個Response Time都差不多XD...

另外題目很有良心的還發了一組合法的用戶Creds給我們可以比較
以下是結果:
(記的預設是不會給你Response Time的)
(要自己去Columns -> Response completed打勾)
https://ithelp.ithome.com.tw/upload/images/20200531/201216201htbDDmyUK.jpg

你可以自己多測幾次,有時候因為網路或是伺服器等變數有時會有奇怪的Response Time出現
因此多次驗證比較好。
最後得出當UserName為ftp時,Response Time都會多一點
看來他就是我們的明日之星了!
接著只需要把Intruder的設定稍作修改(以紅色表示):

  • Attack Type: Pitchfork
  • payload 1: 我的IP文件
  • payload 2: 題目給的password List
  • Post Request參數payload點:
    X-Forwared-For: §§
    username=ftp
    password=§§
    https://ithelp.ithome.com.tw/upload/images/20200531/20121620HcnRGvMfPb.jpg

接下來只要再回傳結果
看到HTTP狀態為302(重新導向),應該就是登入成功了:
https://ithelp.ithome.com.tw/upload/images/20200531/20121620jlfmZAr48E.jpg

成功登入後
一般情況下CSRF TOKEN是會發新的給你的
(延伸閱讀:成功登入後要發新的CSRF token嗎?)
所以你要再重新刷進頁面一次。

之後就看到登入成功啦!
https://ithelp.ithome.com.tw/upload/images/20200531/20121620ZGZkxjgyPy.jpg


尚未有邦友留言

立即登入留言