iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0
Security

資安補漏洞,越補越大洞系列 第 22

[Day 22] 來玩WebGoat!之10:Authentication Flaws - Authentication Bypasses

今天來介紹Authentication Flaws這個課程,簡單來說就是利用網頁中身分認證的設計缺陷,進而達到取得帳號權限目的的意思,而在WebGoat中將這個部分分為3個部分,分別為Authentication Bypasses 、JWT tokens及Password reset,分別將於後續介紹。

身分驗證繞過 (Authentication Bypasses)

首先是身分驗證繞過的部分,主要分為幾種方式,包含觀察網頁是否有隱藏表單輸入欄位、請求中的參數是否可以被修改或移除、及強行瀏覽不允許存取的頁面等。

馬上就進到挑戰的部分,首先,Paypal以前曾經有過一個雙因子驗證 (Two factor authentication, 2FA)的漏洞,首先你要有一組可用的帳號及密碼,然而這時卻因為沒有帶手機而無法接收雙因子認證的認證碼,導致無法登入,但Paypal貼心的提供另一個功能,也就是只要你回答得出之前曾經記錄在系統的安全認證問題,就可以略過收認證簡訊的部分成功登入。

透過擷取回答安全問題的HTTP請求,發現請求的內容如下,其中有兩個參數分別叫做「securityQuestion0」and「securityQuestion1」。

https://ithelp.ithome.com.tw/upload/images/20181106/20107304XfbvoppGXq.png

而Paypal的這個漏洞利用方式就是,在請求中將這兩個參數及其值移除,並繼續將請求送出,就可以在不知道問題答案的狀況下順利通過安全問題,並取得該帳號的存取權。

在這一題我們就利用類似的方式來解題吧,這一題要我們利用非正常方式略過安全認證問題。

https://ithelp.ithome.com.tw/upload/images/20181106/20107304bIX7ut7gJp.png

首先,我們先觀察在兩個欄位中填入隨意值後送出,利用ZAP把請求攔截下來,並看看HTTP請求長什麼樣子,而我們也可以發現這些參數的值都是藏在隱藏的表單欄位中的。

https://ithelp.ithome.com.tw/upload/images/20181106/20107304ppO8oHtYJQ.png

https://ithelp.ithome.com.tw/upload/images/20181106/20107304OtcsqH2rUw.png

在這一題,如果模仿剛剛提到的Paypal漏洞是不會有結果的,也就是如果直接把secQuestion0跟secQuestion1兩個參數刪掉是不能過關的,在不知道該怎麼辦的狀況下,決定偷偷看一下提示,發現提示中有提到在這一題內並不是要將參數刪掉,而是要對參數進行竄改。

https://ithelp.ithome.com.tw/upload/images/20181106/20107304XXlG0mYKm9.png

所以我們就將兩個參數的名稱改掉後再送出。

https://ithelp.ithome.com.tw/upload/images/20181106/20107304Zgf93FXFk3.png

接著就發現過關了,並可以可以直接修改密碼了!

https://ithelp.ithome.com.tw/upload/images/20181106/20107304H5WW0OQHpZ.png

參考資料:
[1] https://henryhoggard.co.uk/blog/Paypal-2FA-Bypass


上一篇
[Day 21] 來玩WebGoat!之9:XXE Injection 3
下一篇
[Day 23] 來玩WebGoat!之11:Authentication Flaws - JWT tokens 1
系列文
資安補漏洞,越補越大洞30

尚未有邦友留言

立即登入留言