基于php的web系統(tǒng)漏洞攻擊靶場(chǎng)設(shè)計(jì)與實(shí)踐_第1頁(yè)
基于php的web系統(tǒng)漏洞攻擊靶場(chǎng)設(shè)計(jì)與實(shí)踐_第2頁(yè)
基于php的web系統(tǒng)漏洞攻擊靶場(chǎng)設(shè)計(jì)與實(shí)踐_第3頁(yè)
基于php的web系統(tǒng)漏洞攻擊靶場(chǎng)設(shè)計(jì)與實(shí)踐_第4頁(yè)
基于php的web系統(tǒng)漏洞攻擊靶場(chǎng)設(shè)計(jì)與實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩41頁(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)介

1、web系統(tǒng)漏洞攻擊靶場(chǎng)摘 要互聯(lián)網(wǎng)極速發(fā)展的同時(shí),也會(huì)帶來(lái)一些安全性的風(fēng)險(xiǎn),一些不為人知的安全問(wèn)題也逐漸暴露出來(lái)。近年來(lái),媒體不斷披露了許多網(wǎng)絡(luò)安全事故,許多網(wǎng)絡(luò)應(yīng)用程序被黑客攻擊,導(dǎo)致內(nèi)部數(shù)據(jù)外泄,人們開(kāi)始認(rèn)識(shí)到網(wǎng)絡(luò)安全越來(lái)越重要?,F(xiàn)在的人普遍對(duì)網(wǎng)絡(luò)攻擊和攻擊危害這方面的知識(shí)了解較少,為了讓更多人了解網(wǎng)絡(luò)攻擊的危害性、學(xué)習(xí)網(wǎng)站漏洞攻擊的知識(shí)和學(xué)習(xí)如何找出網(wǎng)站的漏洞,于是建立了一個(gè)可供用戶了解和學(xué)習(xí)web攻擊類型和方法的漏洞攻擊靶場(chǎng)系統(tǒng)。web系統(tǒng)漏洞攻擊靶場(chǎng)是一個(gè)讓用戶學(xué)習(xí)如何去攻擊一個(gè)存在漏洞的系統(tǒng),為一些開(kāi)發(fā)人員去檢測(cè)自己的開(kāi)發(fā)技術(shù)和提供一個(gè)可合法測(cè)試的環(huán)境,在這個(gè)網(wǎng)站中,就存在著一些流

2、行的web漏洞,目的就是為了讓用戶看到被攻擊成果的效果。 web系統(tǒng)漏洞攻擊靶場(chǎng)是一個(gè)基于PHP+MySQL所開(kāi)發(fā)的Web應(yīng)用系統(tǒng),而這個(gè)系統(tǒng)主要是建立一個(gè)可供攻擊的靶場(chǎng),采用如今比較多的攻擊方式。用戶可自行選擇模塊進(jìn)行模擬攻擊,還設(shè)有不同等級(jí),隨著等級(jí)的提高防護(hù)機(jī)制也將提高,用戶需要找到防護(hù)機(jī)制的漏洞,采用不同的攻擊方式去達(dá)到攻擊網(wǎng)站的目的。關(guān)鍵字:web漏洞;攻擊方法;防護(hù)機(jī)制;Web System vulnerability attacking rangeAbstractThe fast development of the Web also brings some security q

3、uestions, hidden behind the security problems are gradually exposed. In recent years, many network security incidents have been continuously disclosed by the media, and a large number of Web applications have been attacked by hackers, resulting in data leakage, and people are starting to notice the

4、growing importance of cyber security. People are generally of network attack and attack damage this knowledge to understand less. For people to know the dangers of web attacks, learning website of vulnerability of knowledge and learn how to identify a loophole in the site, and has set up a available

5、 for users to understand and learn attack types and methods of website.The web system vulnerability attack range is a system that allows users to learn how to attack a vulnerability, providing a legitimate environment for security professionals to test their expertise and tools. In this website itse

6、lf, There are some popular web vulnerabilities, the purpose is to let the user see the results of the attack effect. The system vulnerability attacking range is such a website. The web system vulnerability attack target is a web application system developed based on PHP+MySQL, and this system is mai

7、nly to establish a target range for attack, using more attack methods.Users can choose their own module to simulate attacks, there are also different levels, with the level of protection mechanism will be improved, users need to find the protection mechanism vulnerability, use different ways to atta

8、ck the purpose of the site.Keywords: web loopholes; attack methods; protective mechanism;目 錄1 緒論11.1 本設(shè)計(jì)的目的和意義11.2系統(tǒng)概述21.3系統(tǒng)功能結(jié)構(gòu)21.4開(kāi)發(fā)技術(shù)介紹32 系統(tǒng)需求分析42.1 用戶需求42.2 功能性需求42.3 可行性分析42.3.1 技術(shù)可行性42.3.2 經(jīng)濟(jì)可行性42.3.3 操作可行性53 數(shù)據(jù)庫(kù)設(shè)計(jì)和構(gòu)建63.1 創(chuàng)建數(shù)據(jù)庫(kù)63.2 創(chuàng)建數(shù)據(jù)表64系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)84.1 整體的設(shè)計(jì)與實(shí)現(xiàn)84.1.1 整體的設(shè)計(jì)84.1.2 整體的實(shí)現(xiàn)84.2 用戶登錄的

9、設(shè)計(jì)與實(shí)現(xiàn)94.2.1 用戶登錄的設(shè)計(jì)94.2.2 用戶登錄的實(shí)現(xiàn)104.3蠻力攻擊的設(shè)計(jì)與實(shí)現(xiàn)114.3.1 蠻力攻擊的原理及危害114.3.2 蠻力攻擊的設(shè)計(jì)114.3.3 蠻力攻擊的實(shí)現(xiàn)124.4 命令注入攻擊的設(shè)計(jì)與實(shí)現(xiàn)144.4.1 命令注入攻擊的原理144.4.2 命令注入攻擊的設(shè)計(jì)144.4.3 命令注入攻擊的實(shí)現(xiàn)144.5 File Upload攻擊的設(shè)計(jì)與實(shí)現(xiàn)174.5.1 File Upload攻擊的原理及危害174.5.2 File Upload攻擊的設(shè)計(jì)174.5.3 File Upload攻擊的實(shí)現(xiàn)184.6 CSRF攻擊的設(shè)計(jì)與實(shí)現(xiàn)194.6.1 CSRF攻擊的原理

10、194.6.2 CSRF攻擊的設(shè)計(jì)204.6.3 CSRF攻擊的實(shí)現(xiàn)214.7 SQL注入攻擊的設(shè)計(jì)與實(shí)現(xiàn)214.7.1 SQL注入攻擊的原理及危害214.7.2 SQL注入攻擊的設(shè)計(jì)224.7.3 SQL注入攻擊的實(shí)現(xiàn)224.8 XSS攻擊的設(shè)計(jì)與實(shí)現(xiàn)244.8.1 XSS攻擊的原理及危害244.8.2 XSS(Reflected)攻擊的設(shè)計(jì)254.8.3 XSS(Reflected)攻擊的實(shí)現(xiàn)264.8.4 XSS(Stored)攻擊的設(shè)計(jì)284.8.5 XSS(Stored)攻擊的實(shí)現(xiàn)284.9安全等級(jí)設(shè)置的設(shè)計(jì)與實(shí)現(xiàn)304.9.1 安全等級(jí)設(shè)置的設(shè)計(jì)304.9.2 安全等級(jí)設(shè)置的實(shí)現(xiàn)3

11、05結(jié)論32參考文獻(xiàn)33謝辭34附錄351 緒論Web系統(tǒng)漏洞攻擊靶場(chǎng)(Web System Vulnerability attacking Range)是一個(gè)讓用戶學(xué)習(xí)如何去攻擊一個(gè)存在漏洞的系統(tǒng),該系統(tǒng)本身存在各種漏洞,目的就是讓用戶看到被攻擊成果的效果。而在這個(gè)系統(tǒng)去設(shè)計(jì)一些簡(jiǎn)單易用的界面,從而展示一些最為流行的Web漏洞,并且每個(gè)模塊代碼有四種安全級(jí)別:低,中,高,不可能。通過(guò)難度等級(jí)從低到高的逐漸變化測(cè)試和去參考不同難度代碼中的不同,可以幫助我們學(xué)習(xí)者更好地去理解漏洞存在的原理,隨著等級(jí)的提高防護(hù)機(jī)制也將提高,用戶需要找到防護(hù)機(jī)制的漏洞,用不同的攻擊方式去實(shí)現(xiàn)攻擊。用戶可以在這個(gè)系統(tǒng)

12、中學(xué)習(xí)一些web安全漏洞的原理,讓用戶在以后的開(kāi)發(fā)過(guò)程中盡量能自我發(fā)現(xiàn)一些漏洞的破綻,提高對(duì)自身安全開(kāi)發(fā)的意識(shí)。1.1 本設(shè)計(jì)的目的和意義隨著互聯(lián)網(wǎng)的飛速發(fā)展,越來(lái)越多的基于網(wǎng)絡(luò)的應(yīng)用程序被開(kāi)發(fā)出來(lái),企業(yè)信息化過(guò)程中,在Web平臺(tái)上建立了更多的應(yīng)用。與此同時(shí),Web服務(wù)不僅在信息化過(guò)程中發(fā)展越來(lái)越快,也吸引了大量黑客們的目光,其中最為突出的風(fēng)險(xiǎn)之一,就是web網(wǎng)絡(luò)安全威脅。黑客可以通過(guò)Web系統(tǒng)里的漏洞,去獲取到服務(wù)器的控制權(quán)限,輕易修改網(wǎng)頁(yè)里的內(nèi)容,甚至盜取內(nèi)部的重要信息數(shù)據(jù)。更有甚者會(huì)植入惡意代碼,使得用戶自身也可能中毒。這使用戶不得不開(kāi)始去關(guān)注web的安全問(wèn)題,對(duì)于Web應(yīng)用的如何安全開(kāi)

13、發(fā)也逐漸得到人們的重視。因此,為了讓更多的開(kāi)發(fā)者對(duì)自己的web網(wǎng)站能夠進(jìn)行安全鑒定,也為了能讓更多人學(xué)會(huì)找到網(wǎng)站的漏洞和了解各種漏洞的原理與危害,所以建設(shè)一個(gè)系統(tǒng)漏洞攻擊靶場(chǎng)供大家學(xué)習(xí)交流顯得尤為重要。而web系統(tǒng)漏洞攻擊靶場(chǎng)就是這樣的一個(gè)系統(tǒng),它本身存在各種各樣的漏洞,立志于讓更多的人了解其脆弱性,讓用戶模擬黑客去攻擊網(wǎng)站。系統(tǒng)中采用了如今主流的互聯(lián)網(wǎng)攻擊方式,例如有命令注入攻擊、蠻力攻擊、CSPF攻擊等,最大程度的模擬真實(shí)web系統(tǒng)中遇到的攻擊。本設(shè)計(jì)希望通過(guò)用戶自身操作的方式來(lái)去了解黑客們是如何攻擊網(wǎng)站,從而提高對(duì)自身安全開(kāi)發(fā)的防范意識(shí)。在以后的web系統(tǒng)的開(kāi)發(fā)過(guò)程中,要學(xué)會(huì)反思和審視自

14、己寫(xiě)出的代碼質(zhì)量,看是否會(huì)存在被非法者攻擊的可能 ,從而去創(chuàng)造一個(gè)完善的Web攻擊防御手段來(lái)阻擋攻擊。1.2系統(tǒng)概述本系統(tǒng)采用的開(kāi)發(fā)模式為PHP+MYSQL+HTML。整個(gè)系統(tǒng)設(shè)有蠻力攻擊、命令注入攻擊、CSRF攻擊、文件上傳、SQL數(shù)據(jù)庫(kù)注入攻擊、XSS攻擊的反射型和存儲(chǔ)型等多種功能模塊,還設(shè)有不同等級(jí),隨著等級(jí)的提高防護(hù)機(jī)制也將提高,用戶需要找到防護(hù)機(jī)制的漏洞,采用不同的攻擊方式去達(dá)到攻擊網(wǎng)站的目的。1.3系統(tǒng)功能結(jié)構(gòu)本設(shè)計(jì)的主要功能是通過(guò)數(shù)個(gè)功能模塊去完成需求。具體的功能結(jié)構(gòu)如下:(1)系統(tǒng)登錄。 (2)攻擊方式功能模塊包括以下:蠻力攻擊。命令注入攻擊。CSRF攻擊。文件上傳。SQL注入

15、攻擊。XSS攻擊(反射型)。XSS(存儲(chǔ)型)。(3)主頁(yè)顯示內(nèi)容:介紹本系統(tǒng)的主體功能特點(diǎn)和意義。(4)設(shè)置防御等級(jí):設(shè)置了四種等級(jí):低、中等、高、不可能的,隨著等級(jí)的提高防護(hù)機(jī)制也將提高。通過(guò)對(duì)系統(tǒng)功能的結(jié)構(gòu)分析,web系統(tǒng)漏洞攻擊靶場(chǎng)系統(tǒng)功能結(jié)構(gòu)圖如圖1.3.1所示。圖1.3.1 web系統(tǒng)漏洞攻擊靶場(chǎng)系統(tǒng)功能結(jié)構(gòu)圖1.4開(kāi)發(fā)技術(shù)介紹本設(shè)計(jì)所涉及的開(kāi)發(fā)技術(shù)介紹及功能說(shuō)明如下:該設(shè)計(jì)是在Windows 10 操作系統(tǒng)平臺(tái)上運(yùn)行,Web服務(wù)器為Apache,數(shù)據(jù)庫(kù)服務(wù)器選擇了MySQL,選擇WampServer集成工具(可集成apache,php,數(shù)據(jù)庫(kù)等)把各個(gè)環(huán)境統(tǒng)一集成。開(kāi)發(fā)工具采用的是

16、PhpStorm,開(kāi)發(fā)語(yǔ)言為PHP,頁(yè)面顯示主要采用HTML、CSS,結(jié)合JS,使用到VS Code等開(kāi)發(fā)軟件。表1.4.1開(kāi)發(fā)語(yǔ)言和環(huán)境介紹開(kāi)發(fā)語(yǔ)言PHP語(yǔ)言,HTML+CSS+JS前端集成工具WampServer系統(tǒng)環(huán)境Windows 10 64位操作系統(tǒng)開(kāi)發(fā)工具PhpStorm 、VS Code、Navicat for MySQL2 系統(tǒng)需求分析本系統(tǒng)主要是針對(duì)于有需求對(duì)web安全的了解,對(duì)象一般為開(kāi)發(fā)者。對(duì)于本設(shè)計(jì)的系統(tǒng)需求分析主要在用戶需求分析、功能性需求分析、可行性分析三大方面進(jìn)行分析,最終得出本設(shè)計(jì)的整體功能結(jié)構(gòu)。2.1 用戶需求為了讓更多的開(kāi)發(fā)者對(duì)自己的web網(wǎng)站進(jìn)行安全鑒定和

17、提高自身的安全開(kāi)發(fā)保護(hù)意識(shí),也為了能讓更多人了解各種漏洞的原理與危害,本設(shè)計(jì)主要讓人們能夠親身體驗(yàn)到攻擊一個(gè)存在漏洞的系統(tǒng)的過(guò)程。用戶需要使用不同的攻擊方式去實(shí)現(xiàn)攻擊,找到防護(hù)機(jī)制的漏洞,從而到達(dá)攻擊的目的。2.2 功能性需求根據(jù)開(kāi)發(fā)者最常見(jiàn)的攻擊方式等需求,本設(shè)計(jì)各模塊將要實(shí)現(xiàn)的功能如下:(1)系統(tǒng)登錄:用戶管理者需要通過(guò)輸入正確的用戶名和密碼,才能成功進(jìn)入到系統(tǒng)內(nèi)。(2)攻擊方式:用戶通過(guò)界面選擇要實(shí)現(xiàn)的攻擊方式,共有蠻力攻擊、命令注入攻擊、CSRF攻擊、文件上傳、SQL數(shù)據(jù)庫(kù)注入攻擊、XSS攻擊的反射型和存儲(chǔ)型七種不同的攻擊模式,然后去尋找此模式下的漏洞。(3)主頁(yè)顯示內(nèi)容模塊:介紹本系

18、統(tǒng)的主體功能特點(diǎn)和意義。(4)設(shè)置防御等級(jí)模塊:設(shè)置四個(gè)等級(jí):低,中,高,不可能的,隨著等級(jí)的提高防護(hù)機(jī)制也將提高。(5)幫助模塊:提供一些系統(tǒng)的相關(guān)介紹和一些基本的操作方式的說(shuō)明。2.3 可行性分析可行性分析就是對(duì)所設(shè)計(jì)的系統(tǒng)進(jìn)行是否可行的研究,對(duì)整個(gè)系統(tǒng)項(xiàng)目起著十分重要的作用。這次可行性分析主要從經(jīng)濟(jì)可行性、技術(shù)可行性、操作可行性等方面進(jìn)行分析,確定一些可能出現(xiàn)的問(wèn)題,避免一些開(kāi)發(fā)所帶來(lái)的風(fēng)險(xiǎn)。2.3.1 技術(shù)可行性本設(shè)計(jì)選擇PHP進(jìn)行web開(kāi)發(fā) ,php語(yǔ)言無(wú)須編譯,可在服務(wù)器端直接執(zhí)行且可以穩(wěn)定運(yùn)行。而采用WampServer集成工具(集成apache,php,數(shù)據(jù)庫(kù)等)進(jìn)行開(kāi)發(fā),節(jié)省

19、配置環(huán)境過(guò)程中浪費(fèi)的時(shí)間,從而提高開(kāi)發(fā)的效率。因此技術(shù)方面上是可以實(shí)行的。2.3.2 經(jīng)濟(jì)可行性開(kāi)發(fā)本系統(tǒng)所用的開(kāi)發(fā)工具和集成工具基本都是互聯(lián)網(wǎng)上開(kāi)源的工具。本設(shè)計(jì)主要采用個(gè)人的 PC 作為系統(tǒng)服務(wù)器和自身的網(wǎng)絡(luò)條件等,所需要的硬件資源基本上可以滿足。而且本系統(tǒng)會(huì)在未來(lái)的時(shí)間內(nèi)穩(wěn)定地發(fā)揮重要作用,在經(jīng)濟(jì)上是完全可行的。2.3.3 操作可行性該系統(tǒng)是在 windows 下面使用 phpstorm進(jìn)行php開(kāi)發(fā),目前這個(gè)軟件可以使用學(xué)生免費(fèi)的優(yōu)惠,有著良好的開(kāi)發(fā)環(huán)境,可以提高編碼效率。更好地去系統(tǒng)地開(kāi)發(fā)一個(gè)簡(jiǎn)潔可用的用戶界面,有良好的指向設(shè)置,幫助用戶可以快速掌握此系統(tǒng)的操作方法,所以操作方面上是

20、它可行的。3數(shù)據(jù)庫(kù)設(shè)計(jì)和構(gòu)建3.1 創(chuàng)建數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)是一個(gè)存儲(chǔ)數(shù)據(jù)的地方,本設(shè)計(jì)采用MySQL作為此次的數(shù)據(jù)庫(kù)。通過(guò)對(duì)本設(shè)計(jì)的系統(tǒng)功能結(jié)構(gòu)進(jìn)行分析,可以設(shè)計(jì)出系統(tǒng)中使用的數(shù)據(jù)庫(kù)dvwa,其中包含2張表:留言表和用戶表,數(shù)據(jù)庫(kù)和數(shù)據(jù)表的信息及系統(tǒng)ER圖如下圖所示。圖3.1.1 web系統(tǒng)漏洞攻擊靶場(chǎng)系統(tǒng)數(shù)據(jù)庫(kù)與數(shù)據(jù)表圖3.1.2 系統(tǒng)ER圖3.2 創(chuàng)建數(shù)據(jù)表通過(guò)對(duì)數(shù)據(jù)庫(kù)dvwa的功能結(jié)構(gòu)特點(diǎn)分析,創(chuàng)建各個(gè)數(shù)據(jù)表,下面看一下各個(gè)表的結(jié)構(gòu)和說(shuō)明。Gusetbook表用于SQL攻擊(存儲(chǔ)型)中的留言版,其中comment_id為主鍵且自動(dòng)增值,comment為留言注釋,name為留言標(biāo)題,其結(jié)構(gòu)如圖3

21、.2.1所示。圖3.2.1 guestbook數(shù)據(jù)表user表用于后臺(tái)登錄驗(yàn)證,其中use_id為主鍵且自動(dòng)增值,其他屬性的功能介紹如表3.2所示,其結(jié)構(gòu)如圖2.2所示。表3.2.1 user表各屬性的功能說(shuō)明字段名稱說(shuō)明字段類型是否為空user_id主鍵且自動(dòng)編號(hào)int(6)否frist_name用戶的姓varchar(15)是last_name用戶的名字varchar(15)是user賬號(hào)varchar(15)是password密碼varchar(32)是avatar上傳varchar(70)是last_login上次登錄時(shí)間timestamp是failed_login失敗登錄次數(shù)int(

22、3)是圖3.2.2 user數(shù)據(jù)表4系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)4.1 整體的設(shè)計(jì)與實(shí)現(xiàn)4.1.1 整體的設(shè)計(jì)本設(shè)計(jì)整體共分為系統(tǒng)登錄、主頁(yè)、攻擊方式模塊、設(shè)置防御等級(jí)四大功能模塊,用戶需經(jīng)過(guò)系統(tǒng)登錄后方可對(duì)系統(tǒng)其他模塊操作,而主頁(yè)顯示系統(tǒng)的主體功能特點(diǎn)。整個(gè)系統(tǒng)最為重要的二個(gè)模塊為攻擊方式模塊和設(shè)置防御等級(jí),其中攻擊方式分為7大模塊:蠻力攻擊、命令注入攻擊、CSRF攻擊、文件上傳、SQL注入攻擊、XSS攻擊(反射型)、XSS攻擊(存儲(chǔ)型),其中蠻力攻擊、CSRF攻擊、文件上傳只設(shè)置了兩個(gè)等級(jí):low和medium。SQL攻擊只設(shè)置了三個(gè)等級(jí),而剩下的攻擊方式都分別設(shè)有低、中等、高、不可能的四個(gè)防御等級(jí)。

23、而在攻擊方式模塊里每個(gè)頁(yè)面都設(shè)有一些提示的小功能,幫助一些不熟悉操作的用戶了解如何使用。圖 整體設(shè)計(jì)效果圖4.1.2 整體的實(shí)現(xiàn)系統(tǒng)頁(yè)面整體的前端顯示效果主要通過(guò)html+css+js等前端技術(shù)來(lái)實(shí)現(xiàn)的,在用戶登錄界面設(shè)計(jì)了表單用于登錄系統(tǒng),登錄系統(tǒng)后可看到整體設(shè)計(jì)風(fēng)格由黑色、白色、綠色三種顏色搭配組成。左側(cè)為總體功能導(dǎo)航欄,包含主頁(yè)、各種攻擊方式模塊、安全等級(jí)信息、php信息、退出登錄等,左下角顯示當(dāng)前用戶名和安全等級(jí),在每一個(gè)功能模塊的界面的右下角還會(huì)設(shè)有查看幫助,幫助用戶更好的了解操作,具體實(shí)現(xiàn)效果可見(jiàn)圖所示。圖 系統(tǒng)整體顯示效果圖4.2 用戶

24、登錄的設(shè)計(jì)與實(shí)現(xiàn)4.2.1用戶登錄的設(shè)計(jì)用戶登錄的界面設(shè)計(jì)原則保持簡(jiǎn)潔,不用過(guò)于繁瑣,設(shè)計(jì)了一個(gè)登錄表單用于登錄系統(tǒng),用戶需要輸入正確的信息。為了可以成功進(jìn)入到系統(tǒng),需要保證所輸入的信息都正確才可以登錄系統(tǒng)。圖 系統(tǒng)登錄界面圖圖 系統(tǒng)登錄流程圖4.2.2用戶登錄的實(shí)現(xiàn)可以看到,在登錄的代碼中對(duì)user表進(jìn)行查詢,查詢填寫(xiě)的信息是否正確,如果正確則跳轉(zhuǎn)到index.php頁(yè)面;如果不符合,則返回信息:登錄失敗,而且將失敗登錄的次數(shù)存入數(shù)據(jù)庫(kù)。圖 用戶登錄核心代碼4.3 蠻力攻擊的設(shè)計(jì)與實(shí)現(xiàn)4.3.1蠻力攻擊的原理及危害蠻力攻擊,也被稱為暴力破解攻擊。蠻力

25、攻擊的原理就是基于攻擊者自己的用戶名和密碼字典,逐一來(lái)猜測(cè)解用戶密碼,嘗試登錄。因?yàn)槔碚撋蟻?lái)講,在沒(méi)有去做相關(guān)的驗(yàn)證核查機(jī)制,只要有足夠大的字典,最后還是可以枚舉成功。蠻力攻擊往往會(huì)導(dǎo)致用戶密碼被重置,從而泄漏系統(tǒng)內(nèi)部的重要數(shù)據(jù)。4.3.2蠻力攻擊的設(shè)計(jì)蠻力攻擊模塊在本系統(tǒng)設(shè)計(jì)了兩個(gè)難度等級(jí),不同的等級(jí)需要找到該等級(jí)的漏洞進(jìn)行攻擊。設(shè)計(jì)了一個(gè)登錄界面供用戶實(shí)現(xiàn)暴力破解,用戶可在這個(gè)界面不斷輸入用戶名和密碼字典,直至找到可以登錄的語(yǔ)句,實(shí)現(xiàn)攻擊。圖蠻力攻擊效果圖4.3.3蠻力攻擊的實(shí)現(xiàn)(1)low等級(jí):在此等級(jí)中if( isset( $_GET Login ) ),isset函數(shù)會(huì)

26、返回true/false值,只能驗(yàn)證了參數(shù)Login是否存在,而不能做其他的防御過(guò)濾。第二,對(duì)輸入的密碼進(jìn)行md5加密,因此不能做注入攻擊。但是設(shè)置$user;查詢語(yǔ)句 $query = select * from users where user = $user and password = $pass;可知,用戶輸入U(xiǎn)sername:處存在SQL注入,用戶名輸入admin#得到登陸。圖4.2.3為low等級(jí)核心代碼,圖4.2.4為low等級(jí)具體實(shí)現(xiàn)效果。圖 low等級(jí)核心代碼圖 low等級(jí)實(shí)現(xiàn)攻擊效果(2)medium等級(jí):對(duì)比low等級(jí)加入mysql_real

27、_escape_string函數(shù),該函數(shù)會(huì)對(duì)字符串中的特殊符號(hào)進(jìn)行轉(zhuǎn)義,能夠防御基本上的數(shù)據(jù)庫(kù)注入。在這個(gè)等級(jí)中,對(duì)輸入的參數(shù)進(jìn)行了簡(jiǎn)單的過(guò)濾:對(duì)一些預(yù)定義字符進(jìn)行了轉(zhuǎn)義。除此之外加入sleep( 2 ),如果輸錯(cuò)了密碼,則需要等待2s以后才能再次提交。圖4.2.3為medium等級(jí)核心代碼。(a)(b)圖 medium等級(jí)核心代碼4.4 命令注入攻擊的設(shè)計(jì)與實(shí)現(xiàn)4.4.1 命令注入攻擊的原理及危害命令注入攻擊,在操作管理系統(tǒng)中, & 、& 、|、|等都可以作為一個(gè)命令連接符使用,用戶可以通過(guò)網(wǎng)絡(luò)瀏覽器去提交執(zhí)行命令,而服務(wù)器端卻沒(méi)有進(jìn)行針對(duì)執(zhí)行相關(guān)函數(shù)做過(guò)濾的機(jī)制,即非法的攻擊

28、者提交通過(guò)自己非法構(gòu)造的命令語(yǔ)句,攻擊者可在用戶這里上執(zhí)行一些惡意命令,從而達(dá)到攻擊的目的。攻擊者通過(guò)這些惡意構(gòu)造的命令,非法地獲取到重要數(shù)據(jù)及資源,甚者通過(guò)命令注入來(lái)直接控制用戶的主機(jī)和網(wǎng)絡(luò)。4.4.2 命令注入攻擊的設(shè)計(jì)此功能模塊在本系統(tǒng)設(shè)計(jì)了四個(gè)難度等級(jí),不同的等級(jí)需要找到該等級(jí)的漏洞進(jìn)行攻擊。在頁(yè)面設(shè)計(jì)了一個(gè)表單用于提交輸入的IP地址,用戶可在這個(gè)界面的輸入框中輸入構(gòu)造跟的命令語(yǔ)句來(lái)實(shí)現(xiàn)攻擊。圖命令注入攻擊界面圖4.4.3 命令注入攻擊的實(shí)現(xiàn)(1)low等級(jí):該等級(jí)中對(duì)輸入命令沒(méi)有進(jìn)行任何程度的過(guò)濾,只判斷是哪種操作系統(tǒng),然后來(lái)執(zhí)行對(duì)應(yīng)系統(tǒng)的命令, stristr函數(shù)的功

29、能是查找字符串中第一次出現(xiàn)的,并返回字符串剩余的部分。如果是windows 的操作系統(tǒng),就執(zhí)行命令:ping IP地址,如果是其他的操作系統(tǒng),則執(zhí)行:ping c 4 IP地址。在這個(gè)等級(jí)中,輸入通過(guò)惡意構(gòu)造的命令:&net user,就能達(dá)到攻擊的目的。圖 low等級(jí)核心代碼圖 low等級(jí)實(shí)現(xiàn)效果(2)medium等級(jí):在這個(gè)等級(jí)增加了過(guò)濾機(jī)制,使用了str_replace函數(shù)將“&”和“;”替換為空。增加了過(guò)濾之后,需要改變構(gòu)造的命令,輸入惡意構(gòu)造的命令:&net user,被過(guò)濾掉的是“&”和“;”,“&”并不會(huì)被過(guò)濾,成功

30、實(shí)現(xiàn)攻擊。“&”與“&”的區(qū)別也有不同,前者的例子是:命令1&命令2,需要命令1成功執(zhí)行才會(huì)執(zhí)行命令2,否則不會(huì)執(zhí)行命令2;后者的例子是:命令1&命令2,不管前者執(zhí)不執(zhí)行,都會(huì)執(zhí)行命令2。圖 medium等級(jí)核心代碼(3)high等級(jí):該等級(jí)的過(guò)濾機(jī)制中,增加了對(duì)幾種符號(hào)的過(guò)濾,例如“(”、“)”、“$”、“|”、“| ”,需要注意的是,“| ”中后面帶有空格,因此“|”就變成了漏網(wǎng)之魚(yú),在輸入進(jìn)過(guò)惡意構(gòu)造的命令:|net user,成功實(shí)現(xiàn)攻擊效果。圖 medium等級(jí)核心代碼(4)impossible等級(jí):該防護(hù)等級(jí),增加了stripslash

31、es函數(shù)、explode函數(shù)、is_numeric函數(shù)。其中stripslashes函數(shù)會(huì)將字符串中的反斜杠刪除,并返回已經(jīng)經(jīng)過(guò)過(guò)濾的字符串;explode函數(shù)將字符串變?yōu)閿?shù)組,并把數(shù)組返回。is_numeric函數(shù)判斷字符串是否為數(shù)字或者數(shù)字字符串,如果是就返回true,不是就返回false。此等級(jí)經(jīng)過(guò)嚴(yán)格過(guò)濾,所以不存在漏洞,成功防御。圖 impossible等級(jí)核心代碼4.5 File Upload攻擊的設(shè)計(jì)與實(shí)現(xiàn)4.5.1 File Upload攻擊的原理及危害文件上傳漏洞通常是因?yàn)閷?duì)所上傳的文件過(guò)濾不嚴(yán)或未修復(fù)的漏洞攻擊。攻擊者可通過(guò)上傳點(diǎn)上傳一個(gè)可執(zhí)行的文件到服務(wù)器,

32、服務(wù)器未經(jīng)任何檢驗(yàn)或過(guò)濾上傳的文件,沒(méi)有檢驗(yàn)文件后綴、類型等,從而造成文件的執(zhí)行。黑客們上傳木馬、病毒、惡意腳本或者WebShell等導(dǎo)致用戶被攻擊。黑客會(huì)惡意上傳這些有毒文件,以誘騙和釣魚(yú)的形式來(lái)引導(dǎo)用戶或管理者去下載執(zhí)行,用戶一旦下載或執(zhí)行,惡意代碼的執(zhí)行從而導(dǎo)致一些權(quán)限被攻擊者所控制。4.5.2 File Upload攻擊的設(shè)計(jì)文件上傳攻擊模塊只設(shè)計(jì)了兩個(gè)難度等級(jí),不同的等級(jí)需要找到該等級(jí)的漏洞進(jìn)行攻擊。在頁(yè)面設(shè)計(jì)了一個(gè)上傳表單用于上傳文件,用戶可在上傳一些未經(jīng)過(guò)濾的文件來(lái)實(shí)現(xiàn)攻擊。圖 File Upload攻擊界面圖4.5.3 File Upload攻擊的實(shí)現(xiàn)(1)low

33、等級(jí): 在low等級(jí)中有basename(path,suffix)函數(shù),返回路徑中的文件名。在這個(gè)等級(jí)下,服務(wù)器對(duì)上傳文件沒(méi)有做任何的限制和過(guò)濾,全部都成功放行。如果上傳成功,則會(huì)彈出“路徑+成功上傳!”,如果上傳失敗,則會(huì)提示“您的圖像沒(méi)有上傳”。圖 low等級(jí)核心代碼(2)medium等級(jí):此等級(jí)加入了對(duì)上傳文件的大小和類型做了限制,$uploaded_type限制文件大小為100000字節(jié),并且文件type類型只能是“image/jpeg”或 “image/png” 。否則將不能上傳成功。圖 medium等級(jí)核心代碼4.6 CSRF攻擊的設(shè)計(jì)與實(shí)現(xiàn)4.6.1

34、CSRF攻擊的原理及危害CSRF攻擊,是一種通過(guò)利用受害者尚未失效的信息去執(zhí)行惡意操作的攻擊方式,是由于服務(wù)端沒(méi)有對(duì)http頭做嚴(yán)格過(guò)濾引起的。絕大多數(shù)網(wǎng)站是通過(guò) cookie 來(lái)認(rèn)證身份信息的,所以黑客想要做一個(gè)偽造用戶的正常操作,會(huì)利用到用戶自己本機(jī)的cookie,讓用戶在本機(jī)發(fā)起用戶不知道的請(qǐng)求,從而去攻擊自己已經(jīng)登錄的系統(tǒng)。非法的攻擊者會(huì)在用戶不知情的情況下,盜用受害者的cookie,利用cookie進(jìn)行竊取用戶資金、冒充用戶等一系列非法的操作。圖攻擊原理圖4.6.2 CSRF攻擊的設(shè)計(jì)此攻擊模塊只設(shè)計(jì)了兩個(gè)難度等級(jí),在頁(yè)面設(shè)計(jì)了一個(gè)提交表單,其中包括一個(gè)新密碼輸入框和確

35、認(rèn)新密碼輸入框。此模塊會(huì)在新建頁(yè)面中新建一個(gè)表單,提交的地址就是該模塊頁(yè)面的地址,可以通過(guò)頁(yè)面是否有顯示密碼修改成功來(lái)判斷是否攻擊成功。圖 CSRF攻擊界面圖4.6.3 CSRF攻擊的實(shí)現(xiàn)(1)low等級(jí):該等級(jí)中沒(méi)有實(shí)現(xiàn)過(guò)濾機(jī)制,正常情況下,只要輸入的兩個(gè)密碼的值是一樣的就可以修改密碼。非法的攻擊者構(gòu)建了表單(包括更改密碼輸入框和確認(rèn)密碼輸入框),并將設(shè)置好兩個(gè)表單一樣的默認(rèn)密碼值,從而竊取到用戶真正密碼實(shí)現(xiàn)攻擊。圖 low等級(jí)核心代碼(2)medium等級(jí):與上一個(gè)等級(jí)不同的是,加了過(guò)濾機(jī)制。過(guò)濾掉了http頭的referer字段,只要referer字段跟本網(wǎng)站

36、的referer字段不一樣,就會(huì)被過(guò)濾掉。由于字段被過(guò)濾掉,所以瀏覽器并不能識(shí)別該請(qǐng)求的來(lái)源,所以無(wú)法實(shí)現(xiàn)攻擊。在本機(jī)上模擬該等級(jí)的攻擊情況是可以修改密碼的,因?yàn)閞eferer字段都來(lái)源于同一主機(jī),但是在攻擊是跨站攻擊,在本機(jī)模擬達(dá)不到效果,只有在不同主機(jī)上才能看到攻擊效果,因此沒(méi)有接下里的攻擊等級(jí)。 圖 medium核心代碼4.7 SQL注入攻擊的設(shè)計(jì)與實(shí)現(xiàn)4.7.1 SQL注入攻擊的原理SQL注入攻擊,即數(shù)據(jù)庫(kù)注入攻擊。Web程序中對(duì)于所提交的參數(shù)未做過(guò)濾直接用于SQL語(yǔ)句中執(zhí)行,如果參數(shù)中存在特殊字符,就會(huì)破壞了SQL語(yǔ)句原有邏輯使原有語(yǔ)句失效。非法的攻擊者通過(guò)構(gòu)造不合法的

37、數(shù)據(jù)庫(kù)語(yǔ)句,破壞正常的數(shù)據(jù)庫(kù)查詢語(yǔ)句,輸入到?jīng)]有經(jīng)過(guò)嚴(yán)格過(guò)濾的web表單或文本域,從而達(dá)到執(zhí)行不合法的語(yǔ)句。SQLZ注入攻擊能帶來(lái)十分嚴(yán)重的危害,常見(jiàn)的有以下反面:(1) 獲取數(shù)據(jù)庫(kù)中用戶的用戶名和密碼。利用其成功進(jìn)入到系統(tǒng),從而竊取信息甚至盜竊資金。(2) 入侵?jǐn)?shù)據(jù)庫(kù)對(duì)網(wǎng)頁(yè)頁(yè)面進(jìn)行篡改,使網(wǎng)頁(yè)的重要信息遺失。(3) 獲取管理員的權(quán)限,非法修改信息,甚至破壞系統(tǒng),讓數(shù)據(jù)庫(kù)癱瘓,造成不可逆的危害。4.7.2 SQL注入攻擊的設(shè)計(jì)SQL注入攻擊模塊設(shè)置三個(gè)等級(jí),在頁(yè)面設(shè)計(jì)了一個(gè)提交表單,用于輸入用戶ID,我們可以在數(shù)據(jù)庫(kù)添加幾個(gè)用戶,并補(bǔ)全用戶的用戶名和密碼等信息。攻擊者額可以利用這個(gè)輸入框構(gòu)造惡

38、意的數(shù)據(jù)庫(kù)命令語(yǔ)句來(lái)達(dá)到查看用戶的信息。圖 SQL攻擊界面圖4.7.3 SQL注入攻擊的實(shí)現(xiàn)(1)low等級(jí):沒(méi)有對(duì)參數(shù)id的類型、字符等做任何過(guò)濾,是最基本的SQL注入。首先是確定是否有注入,注入是字符還是數(shù)字,第一輸入1 and 1 =2,查詢失敗,返回空;輸入:1 or 1234=1234,查詢成功,返回多個(gè)結(jié)果,說(shuō)明存在字符注入。 其次,輸判斷數(shù)據(jù)庫(kù)中的字段數(shù),入:1 or 1=1 ORDER BY 1 #和1 or 1=1 ORDER BY 2 #查詢成功,輸入1 or 1=1 ORDER BY 1 #查詢失敗,說(shuō)明只有數(shù)據(jù)庫(kù)中只有兩個(gè)字段。第三,確定字段的順序。輸入1

39、 UNION SELECT 1,2 #,查詢成功,確定了字段的順序。接下來(lái),獲取當(dāng)前信息數(shù)據(jù)庫(kù),輸入1 union select 1,database() #,查詢成功,顯示了數(shù)據(jù)庫(kù)名。接下來(lái),獲取數(shù)據(jù)庫(kù)的表,輸入1union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,查詢成功,顯示了數(shù)據(jù)庫(kù)中的表名。第五,獲取表中的字段名,輸入1 union select 1,group_concat(column_name) from information

40、_schema.columns where table_name=users #,查詢成功,顯示了數(shù)據(jù)表中所有字段名。最后,下載數(shù)據(jù)表。輸入1or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #,查詢成功,這樣就查到了數(shù)據(jù)表中所有的用戶信息。圖 low等級(jí)核心代碼(2)medium等級(jí):mysql_real_escape_string函數(shù)將添加到這個(gè)級(jí)別的代碼中,以此對(duì)x00,n,r,”,x1a等特殊符號(hào)進(jìn)行轉(zhuǎn)義,在頁(yè)面上設(shè)計(jì)了一個(gè)下拉選

41、擇框來(lái)控制用戶輸入。但仍然可以通過(guò)一些抓包軟件去修改參數(shù),然后提交惡意構(gòu)造的查詢參數(shù)。圖 medium等級(jí)核心代碼(3)high等級(jí): 這個(gè)級(jí)別與上一個(gè)等級(jí)的區(qū)別在與于在SQL查詢語(yǔ)句中添加了“LIMIT 1”,來(lái)控制只輸出一個(gè)結(jié)果。其他注入的過(guò)程與與low級(jí)別基本一樣的方法。圖 high等級(jí)核心代碼4.8 XSS攻擊的設(shè)計(jì)與實(shí)現(xiàn)4.8.1 XSS攻擊的原理及危害XSS攻擊, 攻擊者通常向Web頁(yè)面里植入惡意的html標(biāo)簽或者js代碼,不合法的攻擊者經(jīng)過(guò)不合法的方式輸入代碼,一般的用戶閱讀該界面時(shí),就會(huì)執(zhí)行該代碼,以此來(lái)攻擊用戶,使用戶遭受攻擊。而XSS攻擊又分為了

42、三種:Reflected(反射)型、持久型和store(存儲(chǔ))型,本設(shè)計(jì)將注重講述的是反射型和存儲(chǔ)型攻擊。圖 XSS(反射型)攻擊原理圖圖 XSS(存儲(chǔ)型)攻擊原理圖當(dāng)用戶點(diǎn)擊一個(gè)能夠獲取自身網(wǎng)站cookie的鏈接之后,攻擊者可以通過(guò)用戶自身的cookie,使用cookie進(jìn)行盜取用戶的賬號(hào)和密碼,進(jìn)入系統(tǒng)內(nèi)部盜取重要信息,盜竊資金等非法行為。 4.8.2 XSS(Reflected)攻擊的設(shè)計(jì)XSS反射型攻擊設(shè)置了四個(gè)安全等級(jí),在模塊頁(yè)面下設(shè)計(jì)有一個(gè)輸入框表單,可以利用這個(gè)輸入框構(gòu)造惡意的腳本代碼來(lái)實(shí)現(xiàn)攻擊。圖 XSS(Reflected)攻擊界面圖

43、4.8.3 XSS(Reflected)攻擊的實(shí)現(xiàn) (1)low等級(jí):在這個(gè)等級(jí)中的php代碼沒(méi)有進(jìn)行過(guò)濾,攻擊者可以輸入js代碼進(jìn)行攻擊,例如輸入:alert(“已經(jīng)成功插入惡意的腳本代碼”),之后便會(huì)在頁(yè)面中彈出一個(gè)提示,內(nèi)容如下:“已經(jīng)成功插入而已的腳本代碼”。實(shí)現(xiàn)的原因主要是該等級(jí)下沒(méi)有對(duì)輸入的腳本代碼進(jìn)行任何的過(guò)濾,網(wǎng)頁(yè)直接執(zhí)行這些已經(jīng)插入的惡意腳本代碼。圖 low等級(jí)核心代碼(2)medium等級(jí):這個(gè)等級(jí)與上一個(gè)等級(jí)不同的是,利用了str_replace函數(shù)對(duì)輸入內(nèi)容進(jìn)行過(guò)濾。該函數(shù)是對(duì)輸入的字符串中一些字符進(jìn)行過(guò)濾,如:str_replace( , , $_get

44、 name ),將輸入的字符串中的代碼替換為空。但這樣依然存在漏洞,使用str_repalce函數(shù)是很不安全的,因?yàn)樵摵瘮?shù)不會(huì)將雙寫(xiě)的代碼過(guò)濾。因此可以輸入:scriptalert(“已經(jīng)成功插入惡意的腳本代碼”) 或者將代碼大寫(xiě),該等級(jí)不會(huì)對(duì)雙寫(xiě)的腳本代碼進(jìn)行過(guò)濾,所以依然可以實(shí)現(xiàn)攻擊。圖 medium等級(jí)核心代碼(3)high等級(jí)中:與上一個(gè)等級(jí)不同的是,加入了正則表達(dá)式函數(shù)對(duì)輸入數(shù)據(jù)進(jìn)行過(guò)濾。如下代碼所示:preg_replace(/(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i,$_GET name );preg_replace函數(shù)里面正則表達(dá)式將s、c

45、、r、i、p、t幾個(gè)字符不限次數(shù)、不區(qū)分大小寫(xiě)進(jìn)行過(guò)濾。所以需要用其他的標(biāo)簽,如: ,成功實(shí)現(xiàn)攻擊。圖 high等級(jí)核心代碼(4)不可能等級(jí):與上一個(gè)等級(jí)不同的是,使用了htmlspecialchars函數(shù)進(jìn)行過(guò)濾。預(yù)定義的字符“”被該函數(shù)轉(zhuǎn)化為HTML實(shí)體,于是插入的代碼不會(huì)被頁(yè)面執(zhí)行,成功防御。圖 impossible等級(jí)核心代碼4.8.4 XSS(Reflected)的設(shè)計(jì)XSS存儲(chǔ)型攻擊模塊實(shí)現(xiàn)四個(gè)不同的等級(jí),在模塊頁(yè)面中設(shè)計(jì)了一個(gè)表單,表單中設(shè)置了名字和信息兩個(gè)輸入框。而改模塊會(huì)連接數(shù)據(jù)庫(kù)dvwa, 添加name跟message字段.所提交的信息會(huì)存儲(chǔ)在數(shù)

46、據(jù)庫(kù)的表里。圖 XSS(Reflected)界面圖4.8.5 XSS(Reflected)的實(shí)現(xiàn) (1)low等級(jí):在這個(gè)級(jí)別中,對(duì)信息輸入框進(jìn)行過(guò)濾,但卻沒(méi)有對(duì)用戶名輸入框過(guò)濾。利用stripslashes函數(shù)對(duì)字符串中的反斜杠進(jìn)行過(guò)濾,這樣的話無(wú)法在信息輸入框中輸入“”代碼,只能在姓名輸入框中輸入:alert(“已經(jīng)成功插入惡意的腳本代碼”),在頁(yè)面中實(shí)現(xiàn)彈窗效果。在這個(gè)過(guò)程中,輸入的名字和信息都會(huì)被數(shù)據(jù)庫(kù)所存儲(chǔ)。圖 low等級(jí)核心代碼(2)medium等級(jí)中:與上一個(gè)等級(jí)不同的是,運(yùn)用了addslashes、strip_tags、htmlspecialchar

47、s三個(gè)函數(shù)對(duì)輸入信息框的內(nèi)容進(jìn)行過(guò)濾。addslashes函數(shù)是將預(yù)定義字符之前添加反斜杠的字符串。strip_tags函數(shù)是在字符串中剝離HTML代碼標(biāo)簽,htmlspecialchars是將預(yù)定義的字符“”等轉(zhuǎn)換為HTML實(shí)體。姓名輸入框中利用str_replace函數(shù)將“”代碼替換為空。于是可以在姓名輸入框中輸入代碼:scriptalert(“已經(jīng)成功插入惡意的腳本代碼”) ,在頁(yè)面中實(shí)現(xiàn)彈窗效果,輸入的內(nèi)容都保存在數(shù)據(jù)庫(kù)中。圖 medium核心代碼(3)high等級(jí):除了保留了信息輸入框過(guò)濾方式,與上一級(jí)不同的是,在姓名輸入框利用preg_replace函數(shù)運(yùn)用了正則表達(dá)

48、式對(duì)輸入內(nèi)容過(guò)濾。但是依然存在漏洞,在姓名輸入框中輸入:,頁(yè)面成功出現(xiàn)彈窗效果,輸入的內(nèi)容成功保存在數(shù)據(jù)庫(kù)中。圖 high等級(jí)核心代碼(4)不可能等級(jí):該等級(jí)中,對(duì)姓名和信息輸入框都運(yùn)用了stripslashes函數(shù)和htmlspecialchars函數(shù)進(jìn)行了過(guò)濾。這種等級(jí)情況下,對(duì)輸入的代碼進(jìn)行嚴(yán)格的過(guò)濾,很難實(shí)現(xiàn)攻擊。 圖 impossible等級(jí)核心代碼4.9安全等級(jí)設(shè)置的設(shè)計(jì)與實(shí)現(xiàn)4.9.1 安全等級(jí)設(shè)置的設(shè)計(jì)在這個(gè)功能模塊界面設(shè)置了一個(gè)下拉選擇框表單用于更改安全等級(jí),更改等級(jí)后會(huì)實(shí)時(shí)更新具體安全等級(jí)在右下角,并顯示目前安全等級(jí)在此頁(yè)面里。圖安

49、全等級(jí)設(shè)置界面圖4.9.2 安全等級(jí)設(shè)置的實(shí)現(xiàn) 在此模塊中,設(shè)置了參數(shù)“seclev_submit”,如果提交了改變等級(jí)的參數(shù),設(shè)置了$securiteyLevel,則相應(yīng)在代碼中變更等級(jí) 。圖 設(shè)置安全等級(jí)核心代碼5結(jié)論本系統(tǒng)主要對(duì)互聯(lián)網(wǎng)中幾種流行的攻擊手段進(jìn)行研究原理與具體的實(shí)現(xiàn)效果,進(jìn)一步去加深對(duì)web安全漏洞的認(rèn)識(shí)的同時(shí),也能有助于發(fā)現(xiàn)自己開(kāi)發(fā)時(shí)的一些不良習(xí)慣。而如今的時(shí)代是一個(gè)互聯(lián)網(wǎng)時(shí)代,大量的數(shù)據(jù)在互聯(lián)網(wǎng)上傳輸,而web相應(yīng)開(kāi)發(fā)也蓬勃發(fā)展,而網(wǎng)站的內(nèi)部信息數(shù)據(jù)顯得尤為重要,所以我們需要先懂得一些web攻擊的原理與實(shí)現(xiàn)手段,才能去制定提供一個(gè)不斷完善的web漏洞攻擊防御

50、系統(tǒng)方案。對(duì)于蠻力攻擊,它是通過(guò)用戶名和密碼字典來(lái)窮舉遍歷一遍暴力破解,要想實(shí)現(xiàn)防御,第一可以限制用戶的登錄次數(shù),超過(guò)即鎖定賬號(hào)或ip;其次,增加人機(jī)驗(yàn)證機(jī)制,例如驗(yàn)證碼、短信碼等;最后,必須要在服務(wù)器端進(jìn)行對(duì)驗(yàn)證碼的檢驗(yàn)。命令注入攻擊,非法的攻擊者通過(guò)構(gòu)造惡意的命令來(lái)實(shí)現(xiàn)攻擊。因此,我們必須嚴(yán)格對(duì)數(shù)據(jù)輸入進(jìn)行過(guò)濾,特別是對(duì)于一些& 、& 、| 、 | 等命令連接符過(guò)濾是不能在符號(hào)后面留空格,進(jìn)一步防御攻擊者的攻擊。CSRF攻擊,是指非法的攻擊者通過(guò)利用受害者尚未失效的信息(例如cookie)進(jìn)行盜取登錄可以同時(shí)通過(guò)分析驗(yàn)證HTTP的Referer字段、添加token并驗(yàn)證、在HTTP頭中定義

51、屬性并驗(yàn)證等防御技術(shù)手段方面進(jìn)行安全防御。文件上傳,是對(duì)所上傳的文件過(guò)濾不嚴(yán)導(dǎo)致上傳的文件可能攜帶惡意代碼從而達(dá)到攻擊的目的。我們需要采取的措施首先是對(duì)上傳文件類型進(jìn)行驗(yàn)證尤其對(duì)于文件后綴、文件類型等,其次對(duì)上傳文件格式進(jìn)行嚴(yán)格的過(guò)濾,也可以采用隱藏上傳文件路徑、限制上傳路徑等多種方式。SQL注入攻擊,主要是通過(guò)一些未過(guò)濾的輸入數(shù)據(jù),運(yùn)用字符構(gòu)造惡意的命令使輸出情況呈現(xiàn)異常,從而達(dá)到輸出私密信息,甚至獲取管理員控制權(quán)限和數(shù)據(jù)庫(kù)讀寫(xiě)控制權(quán)。我們需要對(duì)數(shù)據(jù)的類型、長(zhǎng)度進(jìn)行嚴(yán)格的規(guī)定,過(guò)濾掉一些有風(fēng)險(xiǎn)的字符,對(duì)特殊字符進(jìn)行轉(zhuǎn)義。XSS攻擊,用戶將輸入的數(shù)據(jù)插入到頁(yè)面中,惡意的攻擊者利用漏洞植入了惡意

52、的腳本代碼,瀏覽器會(huì)執(zhí)行代碼包括輸入的腳本代碼。因此,為了能讓瀏覽器不要讓輸入的惡意數(shù)據(jù)變成代碼,需要對(duì)輸入的數(shù)據(jù)進(jìn)行各種分析和過(guò)濾。第一,須金星嚴(yán)格的過(guò)濾,驗(yàn)證格式,長(zhǎng)度,范圍和內(nèi)容數(shù)據(jù)。除此之外,還有對(duì)html元素標(biāo)簽和預(yù)定義字符進(jìn)行適當(dāng)?shù)霓D(zhuǎn)義編碼。參考文獻(xiàn)1 諸葛建偉 網(wǎng)絡(luò)攻防技術(shù)與實(shí)踐 電子工業(yè)出版社 20011.62 吳聞構(gòu)建網(wǎng)絡(luò)安全體系的必要措施 機(jī)械工業(yè)出版社 2003.93 陳小兵黑客攻防-實(shí)戰(zhàn)加密與解密電子工業(yè)出版社,2016:82-208.4 張玉清、網(wǎng)絡(luò)攻擊與防御技術(shù)M、清華大學(xué)出版社,20125 賈鐵軍、陶衛(wèi)東.網(wǎng)絡(luò)安全技術(shù)及應(yīng)用M機(jī)械工業(yè)出版社,2017.66 Wil

53、liam Stallings.密碼編碼學(xué)與網(wǎng)絡(luò)安全-原理與實(shí)踐(第六版)M.電子工業(yè)出版社,2015.37 傳智博客高教產(chǎn)品研發(fā)部. PHP網(wǎng)站開(kāi)發(fā)實(shí)例教程M.人民郵電出版社,2015.98 杜曄、張大偉、范艷芳.網(wǎng)絡(luò)攻防技術(shù)教程.2012,89 張博常用黑客攻防M中國(guó)鐵道出版社 2011.110 陳小兵Web滲透與漏洞挖掘電子工業(yè)出版社,2017:41-108.11 趙彬. 黑客攻防-WEB安全實(shí)戰(zhàn)詳解M. 中國(guó)鐵道出版社, 2014.附錄附錄1程序核心代碼蠻力攻擊核心代碼Low級(jí)別:?phpheader(content-type:text/html;charset=utf-8);if( isset( $_GET Login ) ) / 得到用戶名$user = $_GET username ;/ 得到密碼$pass = $_GET password ;$pass = md5( $pass );/ 檢查數(shù)據(jù)庫(kù)$query = SELECT * FROM users WHERE user = $user AND password

溫馨提示

  • 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)論