Web安全與防護(hù) (微課版) 課件 項(xiàng)目二 安全的登錄認(rèn)證_第1頁(yè)
Web安全與防護(hù) (微課版) 課件 項(xiàng)目二 安全的登錄認(rèn)證_第2頁(yè)
Web安全與防護(hù) (微課版) 課件 項(xiàng)目二 安全的登錄認(rèn)證_第3頁(yè)
Web安全與防護(hù) (微課版) 課件 項(xiàng)目二 安全的登錄認(rèn)證_第4頁(yè)
Web安全與防護(hù) (微課版) 課件 項(xiàng)目二 安全的登錄認(rèn)證_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目二

安全的登錄認(rèn)證Web安全與防護(hù)本任務(wù)要點(diǎn)學(xué)習(xí)目標(biāo)登錄認(rèn)證步驟登錄頁(yè)面表單創(chuàng)建驗(yàn)證碼實(shí)現(xiàn)熟悉登錄認(rèn)證原理及實(shí)現(xiàn)方法。能夠?qū)崿F(xiàn)基本的登錄認(rèn)證功能。任務(wù)一

登錄認(rèn)證功能實(shí)現(xiàn)目錄CONTENTS01/了解登錄認(rèn)證02/創(chuàng)建登錄頁(yè)面03/判斷登錄狀態(tài)04/增加驗(yàn)證碼了解登錄認(rèn)證01什么是登錄認(rèn)證?登錄認(rèn)證是在Web應(yīng)用程序中實(shí)現(xiàn)身份驗(yàn)證和授權(quán)的過(guò)程。在用戶嘗試登錄到Web應(yīng)用程序時(shí),登錄認(rèn)證將驗(yàn)證用戶的身份并授予相應(yīng)的訪問(wèn)權(quán)限。通常,登錄認(rèn)證包括兩個(gè)步驟:身份驗(yàn)證和授權(quán)。身份驗(yàn)證是確定用戶是否是所聲稱的用戶的過(guò)程。通常,在Web應(yīng)用程序中,這是通過(guò)用戶名和密碼的組合來(lái)驗(yàn)證用戶的身份。用戶提供用戶名和密碼,然后Web應(yīng)用程序?qū)z查這些憑據(jù)是否與已知的憑據(jù)匹配。如果驗(yàn)證成功,用戶就被認(rèn)為是合法用戶。授權(quán)是在確定用戶的身份后確定用戶的訪問(wèn)權(quán)限。授權(quán)通常基于用戶的身份和角色,確定用戶可以訪問(wèn)哪些資源。授權(quán)可以限制用戶訪問(wèn)特定頁(yè)面、數(shù)據(jù)或功能。了解登錄認(rèn)證01驗(yàn)證用戶

憑據(jù)創(chuàng)建登錄頁(yè)面確認(rèn)用戶

權(quán)限登錄狀態(tài)存儲(chǔ)在Web應(yīng)用程序中,常用的身份驗(yàn)證方法包括基于用戶密碼的身份驗(yàn)證、基于證書(shū)的身份驗(yàn)證、基于令牌的身份驗(yàn)證等。這些方法各有優(yōu)缺點(diǎn),根據(jù)應(yīng)用程序的需求和安全要求選擇合適的身份驗(yàn)證方法非常重要。頁(yè)面允許用戶輸入他們的用戶名和密碼使用數(shù)據(jù)庫(kù)中存儲(chǔ)的憑據(jù)信息根據(jù)用戶的角色和訪問(wèn)權(quán)限確定用戶的訪問(wèn)權(quán)限后續(xù)頁(yè)面訪問(wèn)時(shí)可以使用此狀態(tài)進(jìn)行授權(quán)創(chuàng)建登錄頁(yè)面02在實(shí)現(xiàn)登錄認(rèn)證的第一步是創(chuàng)建登錄頁(yè)面,該頁(yè)面允許用戶輸入他們的用戶名和密碼。通過(guò)HTML代碼創(chuàng)建用于用戶輸入的基本表單包含:用戶名輸入框密碼輸入框驗(yàn)證碼輸入框登錄按鈕

通過(guò)按提交按鈕將用戶輸入的信息發(fā)送至check.php頁(yè)面檢查用戶輸入是否正確。完整代碼見(jiàn)教材2.1.2admin/login.php判斷登錄狀態(tài)03為了防止未授權(quán)訪問(wèn),用戶在訪問(wèn)index.php時(shí)應(yīng)該判斷用戶是否登錄并且為管理員用戶。在博客系統(tǒng)中admin/index.php中增加如下代碼:該代碼的功能是引入admin/header.php文件。我們?cè)谠撐募信袛嗟卿浻脩羰欠駷楣芾韱T,如果不為管理就跳轉(zhuǎn)到登錄頁(yè)防止非管理員訪問(wèn)后臺(tái)頁(yè)面。代碼如下:完整代碼見(jiàn)教材2.1.3當(dāng)$_SESSION['is_admin']為False的時(shí)候說(shuō)明用戶不為管理員則跳轉(zhuǎn)到admin/login.php頁(yè)面強(qiáng)制要求登錄才能訪問(wèn)。admin/index.phpadmin/header.php判斷登錄狀態(tài)03完整代碼見(jiàn)教材2.1.3admin/check.php增加對(duì)用戶提交表單信息的校驗(yàn),以確認(rèn)用戶身份信息是否正確,首先從請(qǐng)求中獲取用戶輸入的用戶名、密碼以及驗(yàn)證碼首先獲取了用戶通過(guò)表單提交的用戶名和密碼,并進(jìn)行了初步的驗(yàn)證,如果其中有任意一個(gè)為空,則直接輸出錯(cuò)誤提示信息并跳轉(zhuǎn)回登錄頁(yè)面。然后獲取了用戶通過(guò)表單提交的驗(yàn)證碼,并將其轉(zhuǎn)換為小寫(xiě)形式并對(duì)驗(yàn)證碼進(jìn)行驗(yàn)證,如果為空或不正確,則輸出錯(cuò)誤提示信息并跳轉(zhuǎn)回登錄頁(yè)面。接下來(lái)將用戶輸入的密碼進(jìn)行了MD5加密。通過(guò)SQL語(yǔ)句查詢數(shù)據(jù)庫(kù),以檢查用戶名是否存在。如果存在,則再次查詢數(shù)據(jù)庫(kù),以檢查用戶名和密碼是否匹配。如果匹配成功,則將會(huì)話中的$is_admin變量設(shè)置為true,并輸出登錄成功提示信息,并跳轉(zhuǎn)到主頁(yè)面。如果匹配失敗,則輸出相應(yīng)的錯(cuò)誤提示信息,并跳轉(zhuǎn)回登錄頁(yè)面。增加驗(yàn)證碼04驗(yàn)證碼(CAPTCHA)是一種計(jì)算機(jī)程序,用于判斷訪問(wèn)網(wǎng)站的用戶是否是人類或惡意程序。驗(yàn)證碼系統(tǒng)可以生成不同類型的圖形、文字或聲音的測(cè)試來(lái)識(shí)別用戶身份,以幫助網(wǎng)站防止自動(dòng)化攻擊和濫用。驗(yàn)證碼根據(jù)使用的技術(shù)和實(shí)現(xiàn)方式的不同,可以分為以下幾種類型:圖像驗(yàn)證碼數(shù)學(xué)計(jì)算驗(yàn)證碼聲音驗(yàn)證碼滑動(dòng)驗(yàn)證碼驗(yàn)證碼的主要目的是保護(hù)網(wǎng)站和用戶的信息免受惡意攻擊和濫用。許多自動(dòng)化攻擊和濫用都是通過(guò)機(jī)器人和腳本來(lái)進(jìn)行的,這些腳本可以自動(dòng)化訪問(wèn)網(wǎng)站并進(jìn)行各種活動(dòng),例如發(fā)送垃圾郵件、惡意軟件分發(fā)、網(wǎng)絡(luò)爬蟲(chóng)等等。增加驗(yàn)證碼04以圖像驗(yàn)證碼為例增加驗(yàn)證碼功能,防止惡意程序攻擊。在博客系統(tǒng)源文件admin/login.php中增加如下代碼:admin/login.php在用戶訪問(wèn)該頁(yè)面時(shí)去請(qǐng)求admin/code.php頁(yè)面,獲取一個(gè)新的驗(yàn)證碼。在博客系統(tǒng)源文件admin/code.php中實(shí)現(xiàn)了如下邏輯:

首先,通過(guò)調(diào)用random()函數(shù)生成一個(gè)4位隨機(jī)字符串,用于作為驗(yàn)證碼。然后,定義了驗(yàn)證碼圖片的寬度和高度,以及需要?jiǎng)?chuàng)建的圖層的圖片格式為image/png。接著,創(chuàng)建一個(gè)指定大小的圖層,設(shè)置背景色、模糊點(diǎn)顏色和字體顏色。通過(guò)隨機(jī)繪制許多點(diǎn)來(lái)創(chuàng)建背景的模糊效果。使用imagestring函數(shù)將驗(yàn)證碼字符串繪制到圖像上,同時(shí)在圖像周?chē)L制矩形。最后,輸出圖像并銷毀圖層對(duì)象,將驗(yàn)證碼字符串存儲(chǔ)到PHPSession變量$_SESSION['vertify']中以供后續(xù)驗(yàn)證使用。完整代碼見(jiàn)教材2.1.4課堂實(shí)踐一、任務(wù)名稱:登錄認(rèn)證功能實(shí)現(xiàn)二、任務(wù)內(nèi)容:編輯博客系統(tǒng)源碼實(shí)現(xiàn)登錄認(rèn)證功能,包含表單頁(yè)面中用戶名、密碼、驗(yàn)證碼的交互以及后端校驗(yàn)邏輯。三、工具需求:PHP開(kāi)發(fā)環(huán)境四、任務(wù)要求:完成實(shí)踐練習(xí)后,由老師檢查完成情況。課堂思考一、服務(wù)端是如何保存用戶登錄狀態(tài)的?二、滑動(dòng)驗(yàn)證碼是怎么實(shí)現(xiàn)的?三、為什么要用MD5加密用戶提交的密碼?四、用戶提交的表單信息為什么存儲(chǔ)在$POST變量中?五、登錄認(rèn)證流程中有哪些可能存在的問(wèn)題?六、除了通過(guò)Session可以保存用戶認(rèn)證狀態(tài)還有哪些?課后拓展:登錄認(rèn)證策略調(diào)查請(qǐng)同學(xué)們通過(guò)互聯(lián)網(wǎng)查找還有哪些登錄認(rèn)證的方式,分析這些登錄認(rèn)證的業(yè)務(wù)流程,了解不同認(rèn)證方式優(yōu)缺點(diǎn)。THANK

YOUToBeContinued項(xiàng)目二

安全的登錄認(rèn)證Web安全與防護(hù)本任務(wù)要點(diǎn)學(xué)習(xí)目標(biāo)登錄認(rèn)證漏洞的概念登錄認(rèn)證漏洞的分類登錄認(rèn)證漏洞的危害熟悉登錄認(rèn)證漏洞的類型。掌握登錄認(rèn)證漏洞的特點(diǎn)。任務(wù)二

登錄認(rèn)證漏洞形成原理目錄CONTENTS01/登錄認(rèn)證漏洞的概念02/登錄認(rèn)證漏洞的分類03/登錄認(rèn)證漏洞的危害登錄認(rèn)證漏洞的概念01什么是登錄認(rèn)證漏洞?登錄認(rèn)證是指在訪問(wèn)系統(tǒng)或者應(yīng)用程序時(shí),需要用戶提供身份證明以驗(yàn)證其身份。通常,用戶需要提供用戶名和口令來(lái)進(jìn)行身份驗(yàn)證,以便訪問(wèn)其個(gè)人信息或進(jìn)行某些特定的操作。在現(xiàn)代網(wǎng)絡(luò)應(yīng)用中,登錄認(rèn)證是一種重要的安全措施,用于保護(hù)用戶的隱私和數(shù)據(jù)。然而,由于軟件開(kāi)發(fā)人員的疏忽或安全性設(shè)計(jì)不足,登錄認(rèn)證漏洞可能會(huì)導(dǎo)致攻擊者突破安全防線,獲取敏感信息或者執(zhí)行惡意操作。登錄認(rèn)證漏洞是指攻擊者可以利用應(yīng)用程序的漏洞來(lái)繞過(guò)正常的身份驗(yàn)證程序,從而成功登錄系統(tǒng)或者應(yīng)用程序,獲得未經(jīng)授權(quán)的訪問(wèn)權(quán)限。CSRF會(huì)話劫持SQL注入攻擊者利用會(huì)話管理漏洞,獲取用戶的會(huì)話標(biāo)識(shí)符,從而偽裝成合法用戶并訪問(wèn)受保護(hù)的資源。攻擊者利用用戶在未注銷或者未超時(shí)的情況下的會(huì)話狀態(tài),向目標(biāo)網(wǎng)站發(fā)起欺騙性請(qǐng)求,導(dǎo)致目標(biāo)網(wǎng)站執(zhí)行非授權(quán)操作。攻擊者通過(guò)在登錄表單中輸入特定的SQL查詢語(yǔ)句,繞過(guò)正常的身份驗(yàn)證程序,直接訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。攻擊者通過(guò)偽裝成合法用戶,以獲取其用戶名和口令的方式進(jìn)行攻擊,例如欺騙用戶提供登錄憑據(jù)。密碼猜測(cè)攻擊者通過(guò)暴力破解、字典攻擊等方式嘗試多個(gè)用戶名和口令的組合,以找到正確的登錄憑證。社會(huì)工程學(xué)登錄認(rèn)證漏洞的分類0101數(shù)據(jù)泄露:攻擊者可以通過(guò)繞過(guò)身份驗(yàn)證程序,訪問(wèn)未經(jīng)授權(quán)的數(shù)據(jù),從而獲取敏感信息;03損害聲譽(yù):如果登錄認(rèn)證漏洞被利用,可能會(huì)導(dǎo)致用戶的隱私數(shù)據(jù)遭到泄露,嚴(yán)重的話可能會(huì)導(dǎo)致聲譽(yù)受損;05惡意篡改:攻擊者可以利用登錄認(rèn)證漏洞修改用戶數(shù)據(jù)或者網(wǎng)站內(nèi)容,導(dǎo)致用戶的數(shù)據(jù)或者網(wǎng)站內(nèi)容被篡改,給用戶和網(wǎng)站運(yùn)營(yíng)者帶來(lái)不必要的損失;02資源濫用:攻擊者可以利用登錄認(rèn)證漏洞獲得非授權(quán)訪問(wèn)權(quán)限,并對(duì)系統(tǒng)或者應(yīng)用程序進(jìn)行惡意操作,例如篡改數(shù)據(jù)、刪除文件、發(fā)布不當(dāng)內(nèi)容等;04竊取用戶信息:攻擊者可以利用登錄認(rèn)證漏洞獲取用戶賬號(hào)和密碼等敏感信息,從而進(jìn)一步竊取用戶個(gè)人信息、財(cái)務(wù)信息等;06后門(mén)攻擊:攻擊者可以利用登錄認(rèn)證漏洞在系統(tǒng)中留下后門(mén),以便在未來(lái)進(jìn)行更多的攻擊和操作。登錄認(rèn)證漏洞的分類01課堂實(shí)踐一、任務(wù)名稱:分析登錄認(rèn)證流程中有哪些邏輯漏洞二、任務(wù)內(nèi)容:分析登錄認(rèn)證流程中可能出現(xiàn)的邏輯漏洞,包括但不限于密碼猜測(cè)、暴力破解、SQL注入、會(huì)話固定、跨站腳本攻擊等。三、工具需求:瀏覽器四、任務(wù)要求:完成實(shí)踐練習(xí)后,由老師檢查完成情況。課堂思考一、登錄認(rèn)證方式有哪些?二、開(kāi)發(fā)人員會(huì)在登錄認(rèn)證開(kāi)發(fā)過(guò)程中忽略哪些問(wèn)題?三、有哪些社會(huì)工程學(xué)的攻擊方法?課后拓展:登錄認(rèn)證導(dǎo)致的安全事件請(qǐng)同學(xué)們通過(guò)互聯(lián)網(wǎng)查找有哪些因?yàn)榈卿浾J(rèn)證漏洞導(dǎo)致的安全事件,分析這些導(dǎo)致登錄認(rèn)證漏洞出現(xiàn)的原因并思考如何避免此安全漏洞的產(chǎn)生。THANK

YOUToBeContinued項(xiàng)目二

安全的登錄認(rèn)證Web安全與防護(hù)本任務(wù)要點(diǎn)學(xué)習(xí)目標(biāo)驗(yàn)證碼重放漏洞用戶探測(cè)漏洞弱口令漏洞能夠檢測(cè)出登錄認(rèn)證中存在的漏洞。能夠?qū)Φ卿浾J(rèn)證中存在的漏洞進(jìn)行安全驗(yàn)證。任務(wù)三

登錄認(rèn)證漏洞檢測(cè)與驗(yàn)證目錄CONTENTS01/驗(yàn)證碼重放漏洞02/用戶探測(cè)漏洞03/弱口令漏洞驗(yàn)證碼重放漏洞01什么是驗(yàn)證碼重放漏洞?驗(yàn)證碼通常用于防止惡意機(jī)器人和自動(dòng)程序攻擊。當(dāng)用戶嘗試登錄或執(zhí)行敏感操作時(shí),系統(tǒng)會(huì)要求用戶輸入驗(yàn)證碼,以證明其是真實(shí)用戶而不是機(jī)器人。驗(yàn)證碼通常是由一些數(shù)字、字母、符號(hào)等組成的圖形或文字,用戶需要正確地輸入這些信息才能通過(guò)驗(yàn)證。驗(yàn)證碼重放漏洞(CAPTCHAReplayAttack)是一種安全漏洞,攻擊者通過(guò)重復(fù)利用有效的驗(yàn)證碼來(lái)偽造或冒充合法用戶進(jìn)行惡意操作。驗(yàn)證碼重放漏洞通常是由于使用了弱隨機(jī)數(shù)生成算法、固定驗(yàn)證碼等安全措施不當(dāng)所導(dǎo)致的。攻擊者可以通過(guò)抓取合法用戶在系統(tǒng)中使用的驗(yàn)證碼,然后將其多次重復(fù)使用,以達(dá)到欺騙系統(tǒng)的目的。啟動(dòng)Burp后查看Option頂部菜單欄選擇Proxy啟動(dòng)工具再次修改vertify字段為原正確驗(yàn)證碼,服務(wù)端響應(yīng)顯示顯示用戶名錯(cuò)誤重放驗(yàn)證碼設(shè)置對(duì)本地8080端口進(jìn)行監(jiān)聽(tīng)配置端口修改vertify字段為錯(cuò)誤的驗(yàn)證碼,并發(fā)送請(qǐng)求包,服務(wù)端響應(yīng)顯示驗(yàn)證碼不正確使用錯(cuò)誤驗(yàn)證碼訪問(wèn)登錄頁(yè)輸入任意用戶名、密碼并輸入正確的驗(yàn)證碼訪問(wèn)登錄頁(yè)點(diǎn)擊左上角橙色Send按鈕發(fā)送請(qǐng)求,回顯顯示用戶名錯(cuò)誤使用正確驗(yàn)證碼在Burp中將Intercept切換為on開(kāi)啟攔截查看重發(fā)器中的請(qǐng)求體中vertify字段查看請(qǐng)求體在博客系統(tǒng)后臺(tái)登錄頁(yè)面中點(diǎn)擊登錄并在Burp中查看請(qǐng)求攔截請(qǐng)求在Burp中鼠標(biāo)右鍵選中SendToRepeater轉(zhuǎn)發(fā)至重發(fā)器驗(yàn)證碼重放漏洞01驗(yàn)證碼重放漏洞02什么是驗(yàn)證碼重放漏洞?例如在登陸的地方設(shè)置訪問(wèn)一個(gè)腳本文件,該文件生成含驗(yàn)證碼的圖片并將值寫(xiě)入到session里,提交的時(shí)候驗(yàn)證登陸的腳本就會(huì)判斷提交的驗(yàn)證碼是否與session里的一致。如果服務(wù)器端受理請(qǐng)求后,沒(méi)有將上一次保存的session驗(yàn)證碼及時(shí)清空,將會(huì)導(dǎo)致驗(yàn)證碼可重復(fù)使用。Clusterbomb(集束炸彈模式)Batteringram(攻城錘模式)Pitchfork(草叉模式)Sniper(狙擊手模式)Burp測(cè)試器的四種模式驗(yàn)證碼重放漏洞02使用Burp攔截登錄請(qǐng)求并轉(zhuǎn)發(fā)至Intruder中轉(zhuǎn)發(fā)請(qǐng)求至測(cè)試器點(diǎn)擊Clear清除Burp自動(dòng)添加的payload清除所有攻擊負(fù)載使用Sniper模式配置username為Payload配置攻擊方式切換至Payloads選項(xiàng)對(duì)payload進(jìn)行配置Payloads配置在PayloadOptions中配置測(cè)試字典,點(diǎn)擊Load加載字典配置測(cè)試字典通過(guò)Length排序快找出正確的用戶名查看測(cè)試結(jié)果點(diǎn)擊右上方Startattack開(kāi)始測(cè)試開(kāi)始測(cè)試驗(yàn)證碼重放漏洞02弱口令漏洞03什么是弱口令漏洞?弱口令是指系統(tǒng)登錄口令的設(shè)置強(qiáng)度不高,容易被攻擊者猜到或破解。造成弱口令的主要原因是系統(tǒng)的運(yùn)維人員、管理人員安全意識(shí)不足。常見(jiàn)的弱口令形式包括:系統(tǒng)出廠默認(rèn)口令沒(méi)有修改;密碼設(shè)置過(guò)于簡(jiǎn)單,如口令長(zhǎng)度不足,單一使用字母或數(shù)字;使用了生日、姓名、電話號(hào)碼、身份證號(hào)碼等比較容易被攻擊者猜到的信息設(shè)置口令;設(shè)置的口令屬于流行口令庫(kù)中的流行口令。使用Burp攔截登錄請(qǐng)求并轉(zhuǎn)發(fā)至Intruder中轉(zhuǎn)發(fā)請(qǐng)求至測(cè)試器點(diǎn)擊Clear清除Burp自動(dòng)添加的payload清除所有攻擊負(fù)載使用Sniper模式配置password為Payload配置攻擊方式切換至Payloads選項(xiàng)對(duì)payload進(jìn)行配置Payloads配置在PayloadOptions中配置測(cè)試字典,點(diǎn)擊Load加載字典配置測(cè)試字典通過(guò)查看響應(yīng)體確定正確的密碼查看測(cè)試結(jié)果點(diǎn)擊右上方Startattack開(kāi)始測(cè)試開(kāi)始測(cè)試弱口令漏洞03課堂實(shí)踐一、任務(wù)名稱:獲取博客系統(tǒng)登錄權(quán)限二、任務(wù)內(nèi)容:通過(guò)驗(yàn)證碼重放、用戶名探測(cè)、弱口令漏洞組合的方式獲取到博客系統(tǒng)后臺(tái)。三、工具需求:Burp四、任務(wù)要求:完成實(shí)踐練習(xí)后,由老師檢查完成情況。課堂思考一、如何避免驗(yàn)證碼重放?二、如何避免用戶名被暴力破解?三、如何避免密碼被暴力破解?四、登錄認(rèn)證過(guò)程中還可能存在哪些問(wèn)題?課后拓展:登錄認(rèn)證漏洞挖掘請(qǐng)同學(xué)們對(duì)博客系統(tǒng)進(jìn)行測(cè)試、找到博客系統(tǒng)重登錄認(rèn)證部分還存在哪些問(wèn)題并思考如何解決。THANK

YOUToBeContinued項(xiàng)目二

安全的登錄認(rèn)證Web安全與防護(hù)本任務(wù)要點(diǎn)學(xué)習(xí)目標(biāo)驗(yàn)證碼重放漏洞修復(fù)用戶探測(cè)漏洞修復(fù)弱口令漏洞修復(fù)能夠修復(fù)登錄認(rèn)證中存在的漏洞。能夠?qū)σ研迯?fù)的漏洞進(jìn)行復(fù)測(cè)。任務(wù)四

安全的登錄認(rèn)證目錄CONTENTS01/驗(yàn)證碼重放漏洞修復(fù)02/用戶探測(cè)漏洞修復(fù)03/弱口令漏洞修復(fù)驗(yàn)證碼重放漏洞修復(fù)01什么是驗(yàn)證碼重放漏洞修復(fù)?為了避免驗(yàn)證碼重放漏洞的發(fā)生,開(kāi)發(fā)人員應(yīng)該使用強(qiáng)隨機(jī)數(shù)生成算法、動(dòng)態(tài)驗(yàn)證碼等更為安全的措施,以增強(qiáng)系統(tǒng)的安全性。此外,定期檢查系統(tǒng)漏洞并及時(shí)修復(fù)也是防止此類漏洞發(fā)生的有效方法。驗(yàn)證碼重放漏洞修復(fù)01為了了解驗(yàn)證碼機(jī)制的重要性,我們可以了解博客系統(tǒng)源碼中admin/code.php生成驗(yàn)證碼的方式:完整代碼見(jiàn)教材2.4.1將生成的驗(yàn)證碼字符串存儲(chǔ)到PHP會(huì)話中。admin/code.php驗(yàn)證碼重放漏洞修復(fù)01導(dǎo)致驗(yàn)證碼重放的漏洞在于:POST提交的驗(yàn)證碼值小寫(xiě)并存儲(chǔ)到vertify變量等待使用、然后與之前存儲(chǔ)在Session會(huì)話中的驗(yàn)證碼進(jìn)行比對(duì)只有結(jié)果一致才能進(jìn)入用戶名密碼校驗(yàn)的邏輯中。完整代碼見(jiàn)教材2.4.1admin/check.php驗(yàn)證碼重放漏洞修復(fù)01修復(fù)該漏洞最方便直接的方式即是在用戶請(qǐng)求admin/check.php后將存儲(chǔ)在Session會(huì)話中的驗(yàn)證碼值銷毀即可讓驗(yàn)證碼只能使用一次、防止出現(xiàn)驗(yàn)證碼重放的問(wèn)題。完整代碼見(jiàn)教材2.4.1admin/check.php驗(yàn)證碼重放漏洞修復(fù)01改完成后,我們可以看到生成驗(yàn)證碼的源代碼比較混亂也不便于調(diào)用,我們進(jìn)行使用函數(shù)封裝對(duì)代碼就行優(yōu)化,修改博客系統(tǒng)源碼admin/code.php中的代碼為以下代碼完整代碼見(jiàn)教材2.4.1admin/code.php驗(yàn)證碼重放漏洞修復(fù)01修復(fù)該漏洞最方便直接的方式即是在用戶請(qǐng)求admin/check.php后將存儲(chǔ)在Session會(huì)話中的驗(yàn)證碼值銷毀即可讓驗(yàn)證碼只能使用一次、防止出現(xiàn)驗(yàn)證碼重放的問(wèn)題。完整代碼見(jiàn)教材2.4.1admin/check.php驗(yàn)證碼重放漏洞修復(fù)01修改完成后,我們需要對(duì)實(shí)現(xiàn)功能進(jìn)行功能測(cè)試。首先登錄http://localhost/admin/login.php網(wǎng)址;其次輸入用戶名密碼:admin/admin;輸入正確的驗(yàn)證碼在Burp中開(kāi)啟截?cái)嗖Ⅻc(diǎn)擊登錄,將Burp截?cái)嗟恼?qǐng)求發(fā)送至Repeater中。設(shè)置正確的登錄信息驗(yàn)證碼重放漏洞修復(fù)01點(diǎn)擊Send獲取結(jié)果,此次結(jié)果應(yīng)為‘登錄成功’登錄成功的響應(yīng)使用更加安全的驗(yàn)證碼形式驗(yàn)證碼重放漏洞修復(fù)01強(qiáng)制使用HTTPS限制驗(yàn)證碼有效期限制驗(yàn)證碼使用次數(shù)驗(yàn)證碼加密實(shí)現(xiàn)安全的隨機(jī)數(shù)生成添加防止機(jī)制避免驗(yàn)證碼重放漏洞的措施什么是用戶名探測(cè)漏洞修復(fù)?用戶名探測(cè)漏洞是一種常見(jiàn)的安全漏洞,它允許攻擊者通過(guò)系統(tǒng)的反饋信息來(lái)確定哪些用戶名是有效的。這種漏洞通常存在于登錄界面,當(dāng)輸入錯(cuò)誤的用戶名時(shí),系統(tǒng)可能會(huì)返回不同的錯(cuò)誤消息,從而讓攻擊者能夠區(qū)分用戶名是否存在。在之前獲取管理員用戶名密碼的測(cè)試中,我們可以成功爆破出用戶名的根本原因在于,當(dāng)我們提交錯(cuò)誤的用戶名時(shí),博客系統(tǒng)會(huì)明確響應(yīng)我們用戶名錯(cuò)誤。用戶名探測(cè)漏洞修復(fù)02用戶名探測(cè)漏洞修復(fù)02我們可以發(fā)現(xiàn)進(jìn)行用戶認(rèn)證的邏輯為通過(guò)將用戶提交的密碼進(jìn)行MD5加密、并將用戶提交的用戶名帶入數(shù)據(jù)庫(kù)查詢,如果未查詢到該用戶名則提示用戶名錯(cuò)誤,查詢到用戶名正確但密碼錯(cuò)誤則提示密碼錯(cuò)誤。這是導(dǎo)致黑客便于猜解用戶名的根本原因。最簡(jiǎn)單的解決方案則是將用戶名錯(cuò)誤以及密碼錯(cuò)誤的響應(yīng)提示設(shè)置得較為模糊例如:用戶名或密碼錯(cuò)誤、登錄失敗、請(qǐng)求錯(cuò)誤等讓攻擊者無(wú)法判斷是用戶名錯(cuò)誤還是密碼錯(cuò)誤。這樣至少會(huì)延長(zhǎng)數(shù)倍的攻擊時(shí)長(zhǎng)。完整代碼見(jiàn)教材2.4.2admin/check.php為了驗(yàn)證是否修改該漏洞,我們需要:訪問(wèn)后臺(tái)登陸頁(yè)面,輸入錯(cuò)誤的用戶名正確的密碼進(jìn)行查看響應(yīng);緊接著輸入正確的用戶名及錯(cuò)誤的密碼查看響應(yīng)。錯(cuò)誤用戶名的響應(yīng)結(jié)果用戶名探測(cè)漏洞修復(fù)02錯(cuò)誤用戶名的響應(yīng)結(jié)果用戶名探測(cè)漏洞修復(fù)02使用安全的開(kāi)發(fā)實(shí)踐可以限制用戶登錄嘗試次數(shù),例如嘗試3次失敗后鎖定賬戶。可以在登錄過(guò)程中添加驗(yàn)證碼,以防止攻擊者進(jìn)行自動(dòng)化的嘗試??梢允褂枚嘀厣矸蒡?yàn)證,例如短信驗(yàn)證碼或令牌,提高登錄過(guò)程的安全性??梢允褂冒踩O(jiān)測(cè)系統(tǒng)來(lái)監(jiān)測(cè)異常登錄行為,及時(shí)發(fā)現(xiàn)并阻止攻擊者。在設(shè)計(jì)和開(kāi)發(fā)登錄頁(yè)面時(shí),應(yīng)該采用安全的開(kāi)發(fā)實(shí)踐,包括對(duì)輸入數(shù)據(jù)進(jìn)行驗(yàn)證和過(guò)濾,防止SQL注入、XSS等攻擊。用戶應(yīng)該使用強(qiáng)密碼,包含數(shù)字、字母和特殊字符。在登錄過(guò)程中,不應(yīng)該泄露任何有關(guān)用戶名或密碼是否存在的信息。監(jiān)測(cè)異常登錄行為使用多重身份驗(yàn)證添加驗(yàn)證碼禁止泄露錯(cuò)誤信息限制登錄次數(shù)使用強(qiáng)密碼用戶名探測(cè)漏洞的修復(fù)措施弱密碼漏洞修復(fù)03什么是弱密碼漏洞修復(fù)?弱密碼漏洞是指用戶設(shè)置的密碼強(qiáng)度不夠,容易被他人猜測(cè)或通過(guò)工具破解,從而導(dǎo)致賬戶安全性降低的問(wèn)題。我們則需要采取一些措施來(lái)避免用戶名弱密碼和暴力破解漏洞的發(fā)生。這段代碼存在弱密碼漏洞的原因是在用戶輸入的密碼被MD5加密后直接與數(shù)據(jù)庫(kù)中存儲(chǔ)的密碼進(jìn)行比對(duì)。這種方式容易受到彩虹表等攻擊手段的破解,導(dǎo)致安全性問(wèn)題。我們修復(fù)可采用以下方式:增加鹽值、使用更安全的加密方式、限制登錄次數(shù)、強(qiáng)制用戶設(shè)置更復(fù)雜的密碼。但最好的方式是采用多種安全措施相結(jié)合,以達(dá)到更高的安全性。我們使用限制登錄次數(shù)的方案防止暴力破解的發(fā)生。

首先獲取用戶的IP地址,可以使用$_SERVER[‘REMOTE_ADDR’]來(lái)獲取。其次判斷當(dāng)前IP地址是否已經(jīng)在記錄中,如果沒(méi)有則新增一條記錄,記錄當(dāng)前IP地址和登錄次數(shù)為1,如果已經(jīng)存在,則將對(duì)應(yīng)的登錄次數(shù)加1。接著判斷認(rèn)證次數(shù)是否超過(guò)限制,如果超過(guò)則禁止登錄并給出提示信息。最后如果登錄成功,則刪除記錄中對(duì)應(yīng)的IP地址。完整代碼見(jiàn)教材2.4.3admin/check.php弱密碼漏洞修復(fù)03首先為了記錄認(rèn)證嘗試的次數(shù),我們創(chuàng)建了一個(gè)名為blog_login_l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論