會(huì)話和cookie是這一部分最重要的內(nèi)容。安全使用app系統(tǒng)時(shí),如何根據(jù)客戶的身份提供不同的功能和相關(guān)數(shù)據(jù),大家都有過這樣的經(jīng)歷。例如,當(dāng)你訪問淘寶,時(shí),你不會(huì)把你喜歡的產(chǎn)品添加到別人的購物車中。如何區(qū)分不同的客戶?打開任何網(wǎng)站,抓取包,cookie字段就存在了。Cookies會(huì)隨著客戶的操作自動(dòng)提交給服務(wù)器。為了區(qū)分認(rèn)證前和認(rèn)證后,用戶可以在認(rèn)證成功后在cookies上寫一個(gè)標(biāo)記,服務(wù)器在處理請(qǐng)求時(shí)可以判斷這個(gè)標(biāo)記。
對(duì)于設(shè)置標(biāo)志,如果客戶的名字直接以顯式或加密的方式放在cookie中,如果加密方式被破解,客戶的身份可能是偽造的,所以不建議將客戶的身份信息直接插入cookie中。關(guān)于客戶身份的設(shè)置,還有一個(gè)會(huì)話機(jī)制。用戶認(rèn)證成功后,客戶的個(gè)人信息和身份信息被寫入會(huì)話,cookie中只出現(xiàn)sessionID。服務(wù)器通過sessionID在服務(wù)器上找到指定的數(shù)據(jù)。服務(wù)器內(nèi)存在敏感數(shù)據(jù),sessionID值為隨機(jī)字符串,攻擊者很難猜測(cè)其他用戶的sessionID,從而偽造客戶身份。當(dāng)我們安全使用xss漏洞時(shí),我們都喜歡從客戶那里獲取cookie。獲得cookie后最重要的字段是sessionID。有了他,我們可以偽造他人的身份,獲取他們的數(shù)據(jù)。
根據(jù)對(duì)話內(nèi)容,可以完成以下操作:
Job 1:搜索幾個(gè)可以通過搜索引擎注冊(cè)的網(wǎng)站。burp抓取包并分析注冊(cè)后的對(duì)話是如何實(shí)現(xiàn)的,是否使用session保存用戶信息,令牌是否可以偽造,用戶信息是否保存在cookie中等。作業(yè)2:基于前一個(gè)作業(yè)開發(fā)的登錄身份驗(yàn)證頁面。認(rèn)證成功后,對(duì)不同的賬戶設(shè)置不同的權(quán)限,使用cookie和session顯示客戶身份,并測(cè)試不同顯示模式下可能存在的安全風(fēng)險(xiǎn)。記錄測(cè)試過程和結(jié)果、相關(guān)代碼和設(shè)計(jì)思路,形成報(bào)告,分享并一起討論。
目前網(wǎng)站和App安全漏洞中關(guān)于獲取SESSION和COOKIES的問題很多,很多程序員對(duì)一些提交功能沒有做更多的過濾,導(dǎo)致被惡意XSS代碼插入,獲取后臺(tái)權(quán)限。如果想更全面地檢測(cè)安全漏洞,可以向國內(nèi)網(wǎng)站安全公司等人工滲透測(cè)試服務(wù)尋求幫助。