今天是A1的最後一部份了,今天的內容是Spoofing an Authentication Cookie,明天則是這四種漏洞該怎麼防禦
身分驗證Cookie作為驗證使用者身分的重要依據,生成時須注重唯一性及不可預測性,若生成演算方式不夠安全或有跡可循,攻擊者就有可能推導出其他帳號正確的身分驗證Cookie,從而冒充成功

這關要我們透過現有的帳號來推tom這個帳號的cookie,給了我們叫做webgoat和admin的帳號當範例,那我們就來登入看看


huh......可以看到cookie居然長得這麼像,一個是
NGY0ZTc0NjM0YjU2NGY1MzRmNGM3NDYxNmY2NzYyNjU3Nw==
另一個則是
NGY0ZTc0NjM0YjU2NGY1MzRmNGM2ZTY5NmQ2NDYx
而且第一個cookie後面居然有兩個==,那麼應該是base系列的,那讓我們來試看看解碼
這裡使用DCODE這個網站

得到4f4e74634b564f534f4c74616f67626577這一串數字
雖然不太確定,但英文字母只有a~f,搞不好是16進制? 那就用16進轉ASCII看看

得出了ONtcKVOSOLtaogbew,可以看到基本上就是ONtcKVOSOL加上倒過來的webgoat
這樣admin的cookie原文應該就是ONtcKVOSOLnimda,但我們還是來解碼一下以防萬一


果然和我們預測的沒錯,就是ONtcKVOSOLnimda
這樣的話tom的cookie原文我們也能推出來了,原文便是ONtcKVOSOLmoT
再把他反過來編碼成我們要的樣子


得到了T050Y0tWT1NPTG1vVA==
讓我們來試著登入看看

怎麼不對??
那只好先回推看看哪裡出錯了
把T050Y0tWT1NPTG1vVA==重新用Base64解碼看看

我的Hex編碼呢???? 怎麼直接變成原文了
看起來DCODE會把我的Hex編碼先轉成對應的英文原文再進行加密,難怪看起來和原本的不太一樣還有夠短
讓我們換個網站

得到了NEY0RTc0NjM0QjU2NEY1MzRGNEM2RDZGNTQ=
再送進Webgoat試著登入看看

成功!