寫在前面的話
HTTP認(rèn)證實(shí)現(xiàn)的基礎(chǔ)是Web服務(wù)器與瀏覽器之間能夠安全地交換類似用戶名和密碼這樣的用戶憑證,我們也可以把HTTP認(rèn)證當(dāng)作是摘要驗(yàn)證(Digest Authentication),這種預(yù)定義方法/標(biāo)準(zhǔn)在HTTP協(xié)議中使用了編碼技術(shù)和MD5加密哈希。在這篇文章中,我們將會(huì)跟大家詳細(xì)討論一下HTTP認(rèn)證所采用的技術(shù)和標(biāo)準(zhǔn)。為了方便大家的理解,本文將使用我們自己編寫的一個(gè)php腳本,它可以方便地幫助我們捕獲用戶名和密碼。 【 腳本下載 】
使用Base64編碼的基本訪問認(rèn)證
在了解基本認(rèn)證這一部分中,我們將使用base64編碼來生成我們的加密字符串,這個(gè)字符串中將包含用戶名和密碼。需要注意的是,我們這里還可以選擇使用其他的編碼技術(shù),例如URL編碼或十六進(jìn)制編碼等等。
在下面給出的這個(gè)列子中,我們使用Burpsuite捕捉到了用戶請(qǐng)求。我們可以看到,Web頁面正在向客戶端請(qǐng)求輸入認(rèn)證數(shù)據(jù):
我們輸入的用戶名是“hackingarticles”,密碼為“ignite”。
基本認(rèn)證所采用的請(qǐng)求語句如下:
Value = http://www.chinaznyj.com//GuoNeiZiXun/username:password>在基本認(rèn)證過程中,用戶名和密碼會(huì)被組合成一個(gè)單獨(dú)的字符串,并且使用冒號(hào)進(jìn)行分割。