版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、web系統(tǒng)漏洞攻擊靶場摘 要互聯(lián)網(wǎng)極速發(fā)展的同時,也會帶來一些安全性的風險,一些不為人知的安全問題也逐漸暴露出來。近年來,媒體不斷披露了許多網(wǎng)絡安全事故,許多網(wǎng)絡應用程序被黑客攻擊,導致內部數(shù)據(jù)外泄,人們開始認識到網(wǎng)絡安全越來越重要。現(xiàn)在的人普遍對網(wǎng)絡攻擊和攻擊危害這方面的知識了解較少,為了讓更多人了解網(wǎng)絡攻擊的危害性、學習網(wǎng)站漏洞攻擊的知識和學習如何找出網(wǎng)站的漏洞,于是建立了一個可供用戶了解和學習web攻擊類型和方法的漏洞攻擊靶場系統(tǒng)。web系統(tǒng)漏洞攻擊靶場是一個讓用戶學習如何去攻擊一個存在漏洞的系統(tǒng),為一些開發(fā)人員去檢測自己的開發(fā)技術和提供一個可合法測試的環(huán)境,在這個網(wǎng)站中,就存在著一些流
2、行的web漏洞,目的就是為了讓用戶看到被攻擊成果的效果。 web系統(tǒng)漏洞攻擊靶場是一個基于PHP+MySQL所開發(fā)的Web應用系統(tǒng),而這個系統(tǒng)主要是建立一個可供攻擊的靶場,采用如今比較多的攻擊方式。用戶可自行選擇模塊進行模擬攻擊,還設有不同等級,隨著等級的提高防護機制也將提高,用戶需要找到防護機制的漏洞,采用不同的攻擊方式去達到攻擊網(wǎng)站的目的。關鍵字:web漏洞;攻擊方法;防護機制;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 本設計的目的和意義11.2系統(tǒng)概述21.3系統(tǒng)功能結構21.4開發(fā)技術介紹32 系統(tǒng)需求分析42.1 用戶需求42.2 功能性需求42.3 可行性分析42.3.1 技術可行性42.3.2 經(jīng)濟可行性42.3.3 操作可行性53 數(shù)據(jù)庫設計和構建63.1 創(chuàng)建數(shù)據(jù)庫63.2 創(chuàng)建數(shù)據(jù)表64系統(tǒng)的設計與實現(xiàn)84.1 整體的設計與實現(xiàn)84.1.1 整體的設計84.1.2 整體的實現(xiàn)84.2 用戶登錄的
9、設計與實現(xiàn)94.2.1 用戶登錄的設計94.2.2 用戶登錄的實現(xiàn)104.3蠻力攻擊的設計與實現(xiàn)114.3.1 蠻力攻擊的原理及危害114.3.2 蠻力攻擊的設計114.3.3 蠻力攻擊的實現(xiàn)124.4 命令注入攻擊的設計與實現(xiàn)144.4.1 命令注入攻擊的原理144.4.2 命令注入攻擊的設計144.4.3 命令注入攻擊的實現(xiàn)144.5 File Upload攻擊的設計與實現(xiàn)174.5.1 File Upload攻擊的原理及危害174.5.2 File Upload攻擊的設計174.5.3 File Upload攻擊的實現(xiàn)184.6 CSRF攻擊的設計與實現(xiàn)194.6.1 CSRF攻擊的原理
10、194.6.2 CSRF攻擊的設計204.6.3 CSRF攻擊的實現(xiàn)214.7 SQL注入攻擊的設計與實現(xiàn)214.7.1 SQL注入攻擊的原理及危害214.7.2 SQL注入攻擊的設計224.7.3 SQL注入攻擊的實現(xiàn)224.8 XSS攻擊的設計與實現(xiàn)244.8.1 XSS攻擊的原理及危害244.8.2 XSS(Reflected)攻擊的設計254.8.3 XSS(Reflected)攻擊的實現(xiàn)264.8.4 XSS(Stored)攻擊的設計284.8.5 XSS(Stored)攻擊的實現(xiàn)284.9安全等級設置的設計與實現(xiàn)304.9.1 安全等級設置的設計304.9.2 安全等級設置的實現(xiàn)3
11、05結論32參考文獻33謝辭34附錄351 緒論Web系統(tǒng)漏洞攻擊靶場(Web System Vulnerability attacking Range)是一個讓用戶學習如何去攻擊一個存在漏洞的系統(tǒng),該系統(tǒng)本身存在各種漏洞,目的就是讓用戶看到被攻擊成果的效果。而在這個系統(tǒng)去設計一些簡單易用的界面,從而展示一些最為流行的Web漏洞,并且每個模塊代碼有四種安全級別:低,中,高,不可能。通過難度等級從低到高的逐漸變化測試和去參考不同難度代碼中的不同,可以幫助我們學習者更好地去理解漏洞存在的原理,隨著等級的提高防護機制也將提高,用戶需要找到防護機制的漏洞,用不同的攻擊方式去實現(xiàn)攻擊。用戶可以在這個系統(tǒng)
12、中學習一些web安全漏洞的原理,讓用戶在以后的開發(fā)過程中盡量能自我發(fā)現(xiàn)一些漏洞的破綻,提高對自身安全開發(fā)的意識。1.1 本設計的目的和意義隨著互聯(lián)網(wǎng)的飛速發(fā)展,越來越多的基于網(wǎng)絡的應用程序被開發(fā)出來,企業(yè)信息化過程中,在Web平臺上建立了更多的應用。與此同時,Web服務不僅在信息化過程中發(fā)展越來越快,也吸引了大量黑客們的目光,其中最為突出的風險之一,就是web網(wǎng)絡安全威脅。黑客可以通過Web系統(tǒng)里的漏洞,去獲取到服務器的控制權限,輕易修改網(wǎng)頁里的內容,甚至盜取內部的重要信息數(shù)據(jù)。更有甚者會植入惡意代碼,使得用戶自身也可能中毒。這使用戶不得不開始去關注web的安全問題,對于Web應用的如何安全開
13、發(fā)也逐漸得到人們的重視。因此,為了讓更多的開發(fā)者對自己的web網(wǎng)站能夠進行安全鑒定,也為了能讓更多人學會找到網(wǎng)站的漏洞和了解各種漏洞的原理與危害,所以建設一個系統(tǒng)漏洞攻擊靶場供大家學習交流顯得尤為重要。而web系統(tǒng)漏洞攻擊靶場就是這樣的一個系統(tǒng),它本身存在各種各樣的漏洞,立志于讓更多的人了解其脆弱性,讓用戶模擬黑客去攻擊網(wǎng)站。系統(tǒng)中采用了如今主流的互聯(lián)網(wǎng)攻擊方式,例如有命令注入攻擊、蠻力攻擊、CSPF攻擊等,最大程度的模擬真實web系統(tǒng)中遇到的攻擊。本設計希望通過用戶自身操作的方式來去了解黑客們是如何攻擊網(wǎng)站,從而提高對自身安全開發(fā)的防范意識。在以后的web系統(tǒng)的開發(fā)過程中,要學會反思和審視自
14、己寫出的代碼質量,看是否會存在被非法者攻擊的可能 ,從而去創(chuàng)造一個完善的Web攻擊防御手段來阻擋攻擊。1.2系統(tǒng)概述本系統(tǒng)采用的開發(fā)模式為PHP+MYSQL+HTML。整個系統(tǒng)設有蠻力攻擊、命令注入攻擊、CSRF攻擊、文件上傳、SQL數(shù)據(jù)庫注入攻擊、XSS攻擊的反射型和存儲型等多種功能模塊,還設有不同等級,隨著等級的提高防護機制也將提高,用戶需要找到防護機制的漏洞,采用不同的攻擊方式去達到攻擊網(wǎng)站的目的。1.3系統(tǒng)功能結構本設計的主要功能是通過數(shù)個功能模塊去完成需求。具體的功能結構如下:(1)系統(tǒng)登錄。 (2)攻擊方式功能模塊包括以下:蠻力攻擊。命令注入攻擊。CSRF攻擊。文件上傳。SQL注入
15、攻擊。XSS攻擊(反射型)。XSS(存儲型)。(3)主頁顯示內容:介紹本系統(tǒng)的主體功能特點和意義。(4)設置防御等級:設置了四種等級:低、中等、高、不可能的,隨著等級的提高防護機制也將提高。通過對系統(tǒng)功能的結構分析,web系統(tǒng)漏洞攻擊靶場系統(tǒng)功能結構圖如圖1.3.1所示。圖1.3.1 web系統(tǒng)漏洞攻擊靶場系統(tǒng)功能結構圖1.4開發(fā)技術介紹本設計所涉及的開發(fā)技術介紹及功能說明如下:該設計是在Windows 10 操作系統(tǒng)平臺上運行,Web服務器為Apache,數(shù)據(jù)庫服務器選擇了MySQL,選擇WampServer集成工具(可集成apache,php,數(shù)據(jù)庫等)把各個環(huán)境統(tǒng)一集成。開發(fā)工具采用的是
16、PhpStorm,開發(fā)語言為PHP,頁面顯示主要采用HTML、CSS,結合JS,使用到VS Code等開發(fā)軟件。表1.4.1開發(fā)語言和環(huán)境介紹開發(fā)語言PHP語言,HTML+CSS+JS前端集成工具WampServer系統(tǒng)環(huán)境Windows 10 64位操作系統(tǒng)開發(fā)工具PhpStorm 、VS Code、Navicat for MySQL2 系統(tǒng)需求分析本系統(tǒng)主要是針對于有需求對web安全的了解,對象一般為開發(fā)者。對于本設計的系統(tǒng)需求分析主要在用戶需求分析、功能性需求分析、可行性分析三大方面進行分析,最終得出本設計的整體功能結構。2.1 用戶需求為了讓更多的開發(fā)者對自己的web網(wǎng)站進行安全鑒定和
17、提高自身的安全開發(fā)保護意識,也為了能讓更多人了解各種漏洞的原理與危害,本設計主要讓人們能夠親身體驗到攻擊一個存在漏洞的系統(tǒng)的過程。用戶需要使用不同的攻擊方式去實現(xiàn)攻擊,找到防護機制的漏洞,從而到達攻擊的目的。2.2 功能性需求根據(jù)開發(fā)者最常見的攻擊方式等需求,本設計各模塊將要實現(xiàn)的功能如下:(1)系統(tǒng)登錄:用戶管理者需要通過輸入正確的用戶名和密碼,才能成功進入到系統(tǒng)內。(2)攻擊方式:用戶通過界面選擇要實現(xiàn)的攻擊方式,共有蠻力攻擊、命令注入攻擊、CSRF攻擊、文件上傳、SQL數(shù)據(jù)庫注入攻擊、XSS攻擊的反射型和存儲型七種不同的攻擊模式,然后去尋找此模式下的漏洞。(3)主頁顯示內容模塊:介紹本系
18、統(tǒng)的主體功能特點和意義。(4)設置防御等級模塊:設置四個等級:低,中,高,不可能的,隨著等級的提高防護機制也將提高。(5)幫助模塊:提供一些系統(tǒng)的相關介紹和一些基本的操作方式的說明。2.3 可行性分析可行性分析就是對所設計的系統(tǒng)進行是否可行的研究,對整個系統(tǒng)項目起著十分重要的作用。這次可行性分析主要從經(jīng)濟可行性、技術可行性、操作可行性等方面進行分析,確定一些可能出現(xiàn)的問題,避免一些開發(fā)所帶來的風險。2.3.1 技術可行性本設計選擇PHP進行web開發(fā) ,php語言無須編譯,可在服務器端直接執(zhí)行且可以穩(wěn)定運行。而采用WampServer集成工具(集成apache,php,數(shù)據(jù)庫等)進行開發(fā),節(jié)省
19、配置環(huán)境過程中浪費的時間,從而提高開發(fā)的效率。因此技術方面上是可以實行的。2.3.2 經(jīng)濟可行性開發(fā)本系統(tǒng)所用的開發(fā)工具和集成工具基本都是互聯(lián)網(wǎng)上開源的工具。本設計主要采用個人的 PC 作為系統(tǒng)服務器和自身的網(wǎng)絡條件等,所需要的硬件資源基本上可以滿足。而且本系統(tǒng)會在未來的時間內穩(wěn)定地發(fā)揮重要作用,在經(jīng)濟上是完全可行的。2.3.3 操作可行性該系統(tǒng)是在 windows 下面使用 phpstorm進行php開發(fā),目前這個軟件可以使用學生免費的優(yōu)惠,有著良好的開發(fā)環(huán)境,可以提高編碼效率。更好地去系統(tǒng)地開發(fā)一個簡潔可用的用戶界面,有良好的指向設置,幫助用戶可以快速掌握此系統(tǒng)的操作方法,所以操作方面上是
20、它可行的。3數(shù)據(jù)庫設計和構建3.1 創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫是一個存儲數(shù)據(jù)的地方,本設計采用MySQL作為此次的數(shù)據(jù)庫。通過對本設計的系統(tǒng)功能結構進行分析,可以設計出系統(tǒng)中使用的數(shù)據(jù)庫dvwa,其中包含2張表:留言表和用戶表,數(shù)據(jù)庫和數(shù)據(jù)表的信息及系統(tǒng)ER圖如下圖所示。圖3.1.1 web系統(tǒng)漏洞攻擊靶場系統(tǒng)數(shù)據(jù)庫與數(shù)據(jù)表圖3.1.2 系統(tǒng)ER圖3.2 創(chuàng)建數(shù)據(jù)表通過對數(shù)據(jù)庫dvwa的功能結構特點分析,創(chuàng)建各個數(shù)據(jù)表,下面看一下各個表的結構和說明。Gusetbook表用于SQL攻擊(存儲型)中的留言版,其中comment_id為主鍵且自動增值,comment為留言注釋,name為留言標題,其結構如圖3
21、.2.1所示。圖3.2.1 guestbook數(shù)據(jù)表user表用于后臺登錄驗證,其中use_id為主鍵且自動增值,其他屬性的功能介紹如表3.2所示,其結構如圖2.2所示。表3.2.1 user表各屬性的功能說明字段名稱說明字段類型是否為空user_id主鍵且自動編號int(6)否frist_name用戶的姓varchar(15)是last_name用戶的名字varchar(15)是user賬號varchar(15)是password密碼varchar(32)是avatar上傳varchar(70)是last_login上次登錄時間timestamp是failed_login失敗登錄次數(shù)int(
22、3)是圖3.2.2 user數(shù)據(jù)表4系統(tǒng)的設計與實現(xiàn)4.1 整體的設計與實現(xiàn)4.1.1 整體的設計本設計整體共分為系統(tǒng)登錄、主頁、攻擊方式模塊、設置防御等級四大功能模塊,用戶需經(jīng)過系統(tǒng)登錄后方可對系統(tǒng)其他模塊操作,而主頁顯示系統(tǒng)的主體功能特點。整個系統(tǒng)最為重要的二個模塊為攻擊方式模塊和設置防御等級,其中攻擊方式分為7大模塊:蠻力攻擊、命令注入攻擊、CSRF攻擊、文件上傳、SQL注入攻擊、XSS攻擊(反射型)、XSS攻擊(存儲型),其中蠻力攻擊、CSRF攻擊、文件上傳只設置了兩個等級:low和medium。SQL攻擊只設置了三個等級,而剩下的攻擊方式都分別設有低、中等、高、不可能的四個防御等級。
23、而在攻擊方式模塊里每個頁面都設有一些提示的小功能,幫助一些不熟悉操作的用戶了解如何使用。圖 整體設計效果圖4.1.2 整體的實現(xiàn)系統(tǒng)頁面整體的前端顯示效果主要通過html+css+js等前端技術來實現(xiàn)的,在用戶登錄界面設計了表單用于登錄系統(tǒng),登錄系統(tǒng)后可看到整體設計風格由黑色、白色、綠色三種顏色搭配組成。左側為總體功能導航欄,包含主頁、各種攻擊方式模塊、安全等級信息、php信息、退出登錄等,左下角顯示當前用戶名和安全等級,在每一個功能模塊的界面的右下角還會設有查看幫助,幫助用戶更好的了解操作,具體實現(xiàn)效果可見圖所示。圖 系統(tǒng)整體顯示效果圖4.2 用戶
24、登錄的設計與實現(xiàn)4.2.1用戶登錄的設計用戶登錄的界面設計原則保持簡潔,不用過于繁瑣,設計了一個登錄表單用于登錄系統(tǒng),用戶需要輸入正確的信息。為了可以成功進入到系統(tǒng),需要保證所輸入的信息都正確才可以登錄系統(tǒng)。圖 系統(tǒng)登錄界面圖圖 系統(tǒng)登錄流程圖4.2.2用戶登錄的實現(xiàn)可以看到,在登錄的代碼中對user表進行查詢,查詢填寫的信息是否正確,如果正確則跳轉到index.php頁面;如果不符合,則返回信息:登錄失敗,而且將失敗登錄的次數(shù)存入數(shù)據(jù)庫。圖 用戶登錄核心代碼4.3 蠻力攻擊的設計與實現(xiàn)4.3.1蠻力攻擊的原理及危害蠻力攻擊,也被稱為暴力破解攻擊。蠻力
25、攻擊的原理就是基于攻擊者自己的用戶名和密碼字典,逐一來猜測解用戶密碼,嘗試登錄。因為理論上來講,在沒有去做相關的驗證核查機制,只要有足夠大的字典,最后還是可以枚舉成功。蠻力攻擊往往會導致用戶密碼被重置,從而泄漏系統(tǒng)內部的重要數(shù)據(jù)。4.3.2蠻力攻擊的設計蠻力攻擊模塊在本系統(tǒng)設計了兩個難度等級,不同的等級需要找到該等級的漏洞進行攻擊。設計了一個登錄界面供用戶實現(xiàn)暴力破解,用戶可在這個界面不斷輸入用戶名和密碼字典,直至找到可以登錄的語句,實現(xiàn)攻擊。圖蠻力攻擊效果圖4.3.3蠻力攻擊的實現(xiàn)(1)low等級:在此等級中if( isset( $_GET Login ) ),isset函數(shù)會
26、返回true/false值,只能驗證了參數(shù)Login是否存在,而不能做其他的防御過濾。第二,對輸入的密碼進行md5加密,因此不能做注入攻擊。但是設置$user;查詢語句 $query = select * from users where user = $user and password = $pass;可知,用戶輸入Username:處存在SQL注入,用戶名輸入admin#得到登陸。圖4.2.3為low等級核心代碼,圖4.2.4為low等級具體實現(xiàn)效果。圖 low等級核心代碼圖 low等級實現(xiàn)攻擊效果(2)medium等級:對比low等級加入mysql_real
27、_escape_string函數(shù),該函數(shù)會對字符串中的特殊符號進行轉義,能夠防御基本上的數(shù)據(jù)庫注入。在這個等級中,對輸入的參數(shù)進行了簡單的過濾:對一些預定義字符進行了轉義。除此之外加入sleep( 2 ),如果輸錯了密碼,則需要等待2s以后才能再次提交。圖4.2.3為medium等級核心代碼。(a)(b)圖 medium等級核心代碼4.4 命令注入攻擊的設計與實現(xiàn)4.4.1 命令注入攻擊的原理及危害命令注入攻擊,在操作管理系統(tǒng)中, & 、& 、|、|等都可以作為一個命令連接符使用,用戶可以通過網(wǎng)絡瀏覽器去提交執(zhí)行命令,而服務器端卻沒有進行針對執(zhí)行相關函數(shù)做過濾的機制,即非法的攻擊
28、者提交通過自己非法構造的命令語句,攻擊者可在用戶這里上執(zhí)行一些惡意命令,從而達到攻擊的目的。攻擊者通過這些惡意構造的命令,非法地獲取到重要數(shù)據(jù)及資源,甚者通過命令注入來直接控制用戶的主機和網(wǎng)絡。4.4.2 命令注入攻擊的設計此功能模塊在本系統(tǒng)設計了四個難度等級,不同的等級需要找到該等級的漏洞進行攻擊。在頁面設計了一個表單用于提交輸入的IP地址,用戶可在這個界面的輸入框中輸入構造跟的命令語句來實現(xiàn)攻擊。圖命令注入攻擊界面圖4.4.3 命令注入攻擊的實現(xiàn)(1)low等級:該等級中對輸入命令沒有進行任何程度的過濾,只判斷是哪種操作系統(tǒng),然后來執(zhí)行對應系統(tǒng)的命令, stristr函數(shù)的功
29、能是查找字符串中第一次出現(xiàn)的,并返回字符串剩余的部分。如果是windows 的操作系統(tǒng),就執(zhí)行命令:ping IP地址,如果是其他的操作系統(tǒng),則執(zhí)行:ping c 4 IP地址。在這個等級中,輸入通過惡意構造的命令:&net user,就能達到攻擊的目的。圖 low等級核心代碼圖 low等級實現(xiàn)效果(2)medium等級:在這個等級增加了過濾機制,使用了str_replace函數(shù)將“&”和“;”替換為空。增加了過濾之后,需要改變構造的命令,輸入惡意構造的命令:&net user,被過濾掉的是“&”和“;”,“&”并不會被過濾,成功
30、實現(xiàn)攻擊?!?”與“&”的區(qū)別也有不同,前者的例子是:命令1&命令2,需要命令1成功執(zhí)行才會執(zhí)行命令2,否則不會執(zhí)行命令2;后者的例子是:命令1&命令2,不管前者執(zhí)不執(zhí)行,都會執(zhí)行命令2。圖 medium等級核心代碼(3)high等級:該等級的過濾機制中,增加了對幾種符號的過濾,例如“(”、“)”、“$”、“|”、“| ”,需要注意的是,“| ”中后面帶有空格,因此“|”就變成了漏網(wǎng)之魚,在輸入進過惡意構造的命令:|net user,成功實現(xiàn)攻擊效果。圖 medium等級核心代碼(4)impossible等級:該防護等級,增加了stripslash
31、es函數(shù)、explode函數(shù)、is_numeric函數(shù)。其中stripslashes函數(shù)會將字符串中的反斜杠刪除,并返回已經(jīng)經(jīng)過過濾的字符串;explode函數(shù)將字符串變?yōu)閿?shù)組,并把數(shù)組返回。is_numeric函數(shù)判斷字符串是否為數(shù)字或者數(shù)字字符串,如果是就返回true,不是就返回false。此等級經(jīng)過嚴格過濾,所以不存在漏洞,成功防御。圖 impossible等級核心代碼4.5 File Upload攻擊的設計與實現(xiàn)4.5.1 File Upload攻擊的原理及危害文件上傳漏洞通常是因為對所上傳的文件過濾不嚴或未修復的漏洞攻擊。攻擊者可通過上傳點上傳一個可執(zhí)行的文件到服務器,
32、服務器未經(jīng)任何檢驗或過濾上傳的文件,沒有檢驗文件后綴、類型等,從而造成文件的執(zhí)行。黑客們上傳木馬、病毒、惡意腳本或者WebShell等導致用戶被攻擊。黑客會惡意上傳這些有毒文件,以誘騙和釣魚的形式來引導用戶或管理者去下載執(zhí)行,用戶一旦下載或執(zhí)行,惡意代碼的執(zhí)行從而導致一些權限被攻擊者所控制。4.5.2 File Upload攻擊的設計文件上傳攻擊模塊只設計了兩個難度等級,不同的等級需要找到該等級的漏洞進行攻擊。在頁面設計了一個上傳表單用于上傳文件,用戶可在上傳一些未經(jīng)過濾的文件來實現(xiàn)攻擊。圖 File Upload攻擊界面圖4.5.3 File Upload攻擊的實現(xiàn)(1)low
33、等級: 在low等級中有basename(path,suffix)函數(shù),返回路徑中的文件名。在這個等級下,服務器對上傳文件沒有做任何的限制和過濾,全部都成功放行。如果上傳成功,則會彈出“路徑+成功上傳!”,如果上傳失敗,則會提示“您的圖像沒有上傳”。圖 low等級核心代碼(2)medium等級:此等級加入了對上傳文件的大小和類型做了限制,$uploaded_type限制文件大小為100000字節(jié),并且文件type類型只能是“image/jpeg”或 “image/png” 。否則將不能上傳成功。圖 medium等級核心代碼4.6 CSRF攻擊的設計與實現(xiàn)4.6.1
34、CSRF攻擊的原理及危害CSRF攻擊,是一種通過利用受害者尚未失效的信息去執(zhí)行惡意操作的攻擊方式,是由于服務端沒有對http頭做嚴格過濾引起的。絕大多數(shù)網(wǎng)站是通過 cookie 來認證身份信息的,所以黑客想要做一個偽造用戶的正常操作,會利用到用戶自己本機的cookie,讓用戶在本機發(fā)起用戶不知道的請求,從而去攻擊自己已經(jīng)登錄的系統(tǒng)。非法的攻擊者會在用戶不知情的情況下,盜用受害者的cookie,利用cookie進行竊取用戶資金、冒充用戶等一系列非法的操作。圖攻擊原理圖4.6.2 CSRF攻擊的設計此攻擊模塊只設計了兩個難度等級,在頁面設計了一個提交表單,其中包括一個新密碼輸入框和確
35、認新密碼輸入框。此模塊會在新建頁面中新建一個表單,提交的地址就是該模塊頁面的地址,可以通過頁面是否有顯示密碼修改成功來判斷是否攻擊成功。圖 CSRF攻擊界面圖4.6.3 CSRF攻擊的實現(xiàn)(1)low等級:該等級中沒有實現(xiàn)過濾機制,正常情況下,只要輸入的兩個密碼的值是一樣的就可以修改密碼。非法的攻擊者構建了表單(包括更改密碼輸入框和確認密碼輸入框),并將設置好兩個表單一樣的默認密碼值,從而竊取到用戶真正密碼實現(xiàn)攻擊。圖 low等級核心代碼(2)medium等級:與上一個等級不同的是,加了過濾機制。過濾掉了http頭的referer字段,只要referer字段跟本網(wǎng)站
36、的referer字段不一樣,就會被過濾掉。由于字段被過濾掉,所以瀏覽器并不能識別該請求的來源,所以無法實現(xiàn)攻擊。在本機上模擬該等級的攻擊情況是可以修改密碼的,因為referer字段都來源于同一主機,但是在攻擊是跨站攻擊,在本機模擬達不到效果,只有在不同主機上才能看到攻擊效果,因此沒有接下里的攻擊等級。 圖 medium核心代碼4.7 SQL注入攻擊的設計與實現(xiàn)4.7.1 SQL注入攻擊的原理SQL注入攻擊,即數(shù)據(jù)庫注入攻擊。Web程序中對于所提交的參數(shù)未做過濾直接用于SQL語句中執(zhí)行,如果參數(shù)中存在特殊字符,就會破壞了SQL語句原有邏輯使原有語句失效。非法的攻擊者通過構造不合法的
37、數(shù)據(jù)庫語句,破壞正常的數(shù)據(jù)庫查詢語句,輸入到?jīng)]有經(jīng)過嚴格過濾的web表單或文本域,從而達到執(zhí)行不合法的語句。SQLZ注入攻擊能帶來十分嚴重的危害,常見的有以下反面:(1) 獲取數(shù)據(jù)庫中用戶的用戶名和密碼。利用其成功進入到系統(tǒng),從而竊取信息甚至盜竊資金。(2) 入侵數(shù)據(jù)庫對網(wǎng)頁頁面進行篡改,使網(wǎng)頁的重要信息遺失。(3) 獲取管理員的權限,非法修改信息,甚至破壞系統(tǒng),讓數(shù)據(jù)庫癱瘓,造成不可逆的危害。4.7.2 SQL注入攻擊的設計SQL注入攻擊模塊設置三個等級,在頁面設計了一個提交表單,用于輸入用戶ID,我們可以在數(shù)據(jù)庫添加幾個用戶,并補全用戶的用戶名和密碼等信息。攻擊者額可以利用這個輸入框構造惡
38、意的數(shù)據(jù)庫命令語句來達到查看用戶的信息。圖 SQL攻擊界面圖4.7.3 SQL注入攻擊的實現(xiàn)(1)low等級:沒有對參數(shù)id的類型、字符等做任何過濾,是最基本的SQL注入。首先是確定是否有注入,注入是字符還是數(shù)字,第一輸入1 and 1 =2,查詢失敗,返回空;輸入:1 or 1234=1234,查詢成功,返回多個結果,說明存在字符注入。 其次,輸判斷數(shù)據(jù)庫中的字段數(shù),入:1 or 1=1 ORDER BY 1 #和1 or 1=1 ORDER BY 2 #查詢成功,輸入1 or 1=1 ORDER BY 1 #查詢失敗,說明只有數(shù)據(jù)庫中只有兩個字段。第三,確定字段的順序。輸入1
39、 UNION SELECT 1,2 #,查詢成功,確定了字段的順序。接下來,獲取當前信息數(shù)據(jù)庫,輸入1 union select 1,database() #,查詢成功,顯示了數(shù)據(jù)庫名。接下來,獲取數(shù)據(jù)庫的表,輸入1union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,查詢成功,顯示了數(shù)據(jù)庫中的表名。第五,獲取表中的字段名,輸入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等級核心代碼(2)medium等級:mysql_real_escape_string函數(shù)將添加到這個級別的代碼中,以此對x00,n,r,”,x1a等特殊符號進行轉義,在頁面上設計了一個下拉選
41、擇框來控制用戶輸入。但仍然可以通過一些抓包軟件去修改參數(shù),然后提交惡意構造的查詢參數(shù)。圖 medium等級核心代碼(3)high等級: 這個級別與上一個等級的區(qū)別在與于在SQL查詢語句中添加了“LIMIT 1”,來控制只輸出一個結果。其他注入的過程與與low級別基本一樣的方法。圖 high等級核心代碼4.8 XSS攻擊的設計與實現(xiàn)4.8.1 XSS攻擊的原理及危害XSS攻擊, 攻擊者通常向Web頁面里植入惡意的html標簽或者js代碼,不合法的攻擊者經(jīng)過不合法的方式輸入代碼,一般的用戶閱讀該界面時,就會執(zhí)行該代碼,以此來攻擊用戶,使用戶遭受攻擊。而XSS攻擊又分為了
42、三種:Reflected(反射)型、持久型和store(存儲)型,本設計將注重講述的是反射型和存儲型攻擊。圖 XSS(反射型)攻擊原理圖圖 XSS(存儲型)攻擊原理圖當用戶點擊一個能夠獲取自身網(wǎng)站cookie的鏈接之后,攻擊者可以通過用戶自身的cookie,使用cookie進行盜取用戶的賬號和密碼,進入系統(tǒng)內部盜取重要信息,盜竊資金等非法行為。 4.8.2 XSS(Reflected)攻擊的設計XSS反射型攻擊設置了四個安全等級,在模塊頁面下設計有一個輸入框表單,可以利用這個輸入框構造惡意的腳本代碼來實現(xiàn)攻擊。圖 XSS(Reflected)攻擊界面圖
43、4.8.3 XSS(Reflected)攻擊的實現(xiàn) (1)low等級:在這個等級中的php代碼沒有進行過濾,攻擊者可以輸入js代碼進行攻擊,例如輸入:alert(“已經(jīng)成功插入惡意的腳本代碼”),之后便會在頁面中彈出一個提示,內容如下:“已經(jīng)成功插入而已的腳本代碼”。實現(xiàn)的原因主要是該等級下沒有對輸入的腳本代碼進行任何的過濾,網(wǎng)頁直接執(zhí)行這些已經(jīng)插入的惡意腳本代碼。圖 low等級核心代碼(2)medium等級:這個等級與上一個等級不同的是,利用了str_replace函數(shù)對輸入內容進行過濾。該函數(shù)是對輸入的字符串中一些字符進行過濾,如:str_replace( , , $_get
44、 name ),將輸入的字符串中的代碼替換為空。但這樣依然存在漏洞,使用str_repalce函數(shù)是很不安全的,因為該函數(shù)不會將雙寫的代碼過濾。因此可以輸入:scriptalert(“已經(jīng)成功插入惡意的腳本代碼”) 或者將代碼大寫,該等級不會對雙寫的腳本代碼進行過濾,所以依然可以實現(xiàn)攻擊。圖 medium等級核心代碼(3)high等級中:與上一個等級不同的是,加入了正則表達式函數(shù)對輸入數(shù)據(jù)進行過濾。如下代碼所示:preg_replace(/(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i,$_GET name );preg_replace函數(shù)里面正則表達式將s、c
45、、r、i、p、t幾個字符不限次數(shù)、不區(qū)分大小寫進行過濾。所以需要用其他的標簽,如: ,成功實現(xiàn)攻擊。圖 high等級核心代碼(4)不可能等級:與上一個等級不同的是,使用了htmlspecialchars函數(shù)進行過濾。預定義的字符“”被該函數(shù)轉化為HTML實體,于是插入的代碼不會被頁面執(zhí)行,成功防御。圖 impossible等級核心代碼4.8.4 XSS(Reflected)的設計XSS存儲型攻擊模塊實現(xiàn)四個不同的等級,在模塊頁面中設計了一個表單,表單中設置了名字和信息兩個輸入框。而改模塊會連接數(shù)據(jù)庫dvwa, 添加name跟message字段.所提交的信息會存儲在數(shù)
46、據(jù)庫的表里。圖 XSS(Reflected)界面圖4.8.5 XSS(Reflected)的實現(xiàn) (1)low等級:在這個級別中,對信息輸入框進行過濾,但卻沒有對用戶名輸入框過濾。利用stripslashes函數(shù)對字符串中的反斜杠進行過濾,這樣的話無法在信息輸入框中輸入“”代碼,只能在姓名輸入框中輸入:alert(“已經(jīng)成功插入惡意的腳本代碼”),在頁面中實現(xiàn)彈窗效果。在這個過程中,輸入的名字和信息都會被數(shù)據(jù)庫所存儲。圖 low等級核心代碼(2)medium等級中:與上一個等級不同的是,運用了addslashes、strip_tags、htmlspecialchar
47、s三個函數(shù)對輸入信息框的內容進行過濾。addslashes函數(shù)是將預定義字符之前添加反斜杠的字符串。strip_tags函數(shù)是在字符串中剝離HTML代碼標簽,htmlspecialchars是將預定義的字符“”等轉換為HTML實體。姓名輸入框中利用str_replace函數(shù)將“”代碼替換為空。于是可以在姓名輸入框中輸入代碼:scriptalert(“已經(jīng)成功插入惡意的腳本代碼”) ,在頁面中實現(xiàn)彈窗效果,輸入的內容都保存在數(shù)據(jù)庫中。圖 medium核心代碼(3)high等級:除了保留了信息輸入框過濾方式,與上一級不同的是,在姓名輸入框利用preg_replace函數(shù)運用了正則表達
48、式對輸入內容過濾。但是依然存在漏洞,在姓名輸入框中輸入:,頁面成功出現(xiàn)彈窗效果,輸入的內容成功保存在數(shù)據(jù)庫中。圖 high等級核心代碼(4)不可能等級:該等級中,對姓名和信息輸入框都運用了stripslashes函數(shù)和htmlspecialchars函數(shù)進行了過濾。這種等級情況下,對輸入的代碼進行嚴格的過濾,很難實現(xiàn)攻擊。 圖 impossible等級核心代碼4.9安全等級設置的設計與實現(xiàn)4.9.1 安全等級設置的設計在這個功能模塊界面設置了一個下拉選擇框表單用于更改安全等級,更改等級后會實時更新具體安全等級在右下角,并顯示目前安全等級在此頁面里。圖安
49、全等級設置界面圖4.9.2 安全等級設置的實現(xiàn) 在此模塊中,設置了參數(shù)“seclev_submit”,如果提交了改變等級的參數(shù),設置了$securiteyLevel,則相應在代碼中變更等級 。圖 設置安全等級核心代碼5結論本系統(tǒng)主要對互聯(lián)網(wǎng)中幾種流行的攻擊手段進行研究原理與具體的實現(xiàn)效果,進一步去加深對web安全漏洞的認識的同時,也能有助于發(fā)現(xiàn)自己開發(fā)時的一些不良習慣。而如今的時代是一個互聯(lián)網(wǎng)時代,大量的數(shù)據(jù)在互聯(lián)網(wǎng)上傳輸,而web相應開發(fā)也蓬勃發(fā)展,而網(wǎng)站的內部信息數(shù)據(jù)顯得尤為重要,所以我們需要先懂得一些web攻擊的原理與實現(xiàn)手段,才能去制定提供一個不斷完善的web漏洞攻擊防御
50、系統(tǒng)方案。對于蠻力攻擊,它是通過用戶名和密碼字典來窮舉遍歷一遍暴力破解,要想實現(xiàn)防御,第一可以限制用戶的登錄次數(shù),超過即鎖定賬號或ip;其次,增加人機驗證機制,例如驗證碼、短信碼等;最后,必須要在服務器端進行對驗證碼的檢驗。命令注入攻擊,非法的攻擊者通過構造惡意的命令來實現(xiàn)攻擊。因此,我們必須嚴格對數(shù)據(jù)輸入進行過濾,特別是對于一些& 、& 、| 、 | 等命令連接符過濾是不能在符號后面留空格,進一步防御攻擊者的攻擊。CSRF攻擊,是指非法的攻擊者通過利用受害者尚未失效的信息(例如cookie)進行盜取登錄可以同時通過分析驗證HTTP的Referer字段、添加token并驗證、在HTTP頭中定義
51、屬性并驗證等防御技術手段方面進行安全防御。文件上傳,是對所上傳的文件過濾不嚴導致上傳的文件可能攜帶惡意代碼從而達到攻擊的目的。我們需要采取的措施首先是對上傳文件類型進行驗證尤其對于文件后綴、文件類型等,其次對上傳文件格式進行嚴格的過濾,也可以采用隱藏上傳文件路徑、限制上傳路徑等多種方式。SQL注入攻擊,主要是通過一些未過濾的輸入數(shù)據(jù),運用字符構造惡意的命令使輸出情況呈現(xiàn)異常,從而達到輸出私密信息,甚至獲取管理員控制權限和數(shù)據(jù)庫讀寫控制權。我們需要對數(shù)據(jù)的類型、長度進行嚴格的規(guī)定,過濾掉一些有風險的字符,對特殊字符進行轉義。XSS攻擊,用戶將輸入的數(shù)據(jù)插入到頁面中,惡意的攻擊者利用漏洞植入了惡意
52、的腳本代碼,瀏覽器會執(zhí)行代碼包括輸入的腳本代碼。因此,為了能讓瀏覽器不要讓輸入的惡意數(shù)據(jù)變成代碼,需要對輸入的數(shù)據(jù)進行各種分析和過濾。第一,須金星嚴格的過濾,驗證格式,長度,范圍和內容數(shù)據(jù)。除此之外,還有對html元素標簽和預定義字符進行適當?shù)霓D義編碼。參考文獻1 諸葛建偉 網(wǎng)絡攻防技術與實踐 電子工業(yè)出版社 20011.62 吳聞構建網(wǎng)絡安全體系的必要措施 機械工業(yè)出版社 2003.93 陳小兵黑客攻防-實戰(zhàn)加密與解密電子工業(yè)出版社,2016:82-208.4 張玉清、網(wǎng)絡攻擊與防御技術M、清華大學出版社,20125 賈鐵軍、陶衛(wèi)東.網(wǎng)絡安全技術及應用M機械工業(yè)出版社,2017.66 Wil
53、liam Stallings.密碼編碼學與網(wǎng)絡安全-原理與實踐(第六版)M.電子工業(yè)出版社,2015.37 傳智博客高教產(chǎn)品研發(fā)部. PHP網(wǎng)站開發(fā)實例教程M.人民郵電出版社,2015.98 杜曄、張大偉、范艷芳.網(wǎng)絡攻防技術教程.2012,89 張博常用黑客攻防M中國鐵道出版社 2011.110 陳小兵Web滲透與漏洞挖掘電子工業(yè)出版社,2017:41-108.11 趙彬. 黑客攻防-WEB安全實戰(zhàn)詳解M. 中國鐵道出版社, 2014.附錄附錄1程序核心代碼蠻力攻擊核心代碼Low級別:?phpheader(content-type:text/html;charset=utf-8);if( isset( $_GET Login ) ) / 得到用戶名$user = $_GET username ;/ 得到密碼$pass = $_GET password ;$pass = md5( $pass );/ 檢查數(shù)據(jù)庫$query = SELECT * FROM users WHERE user = $user AND password
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公益活動加盟合同
- 2025年大型活動合作協(xié)議
- 2025年度高科技實驗室租賃合同4篇
- 2025年城市綠化設計合作協(xié)議
- 2025年加盟經(jīng)營協(xié)議訂立
- 2025年醫(yī)療設備維修協(xié)議
- 2025年水電安裝勞務分包合同(含應急響應)3篇
- 2025版土地使用權無償贈與合同(含基礎設施)3篇
- 二零二五版附價格調整機制的長期供貨合同3篇
- 二手房買賣法律合同范本2024年版版B版
- 【探跡科技】2024知識產(chǎn)權行業(yè)發(fā)展趨勢報告-從工業(yè)轟鳴到數(shù)智浪潮知識產(chǎn)權成為競爭市場的“矛與盾”
- 《中國政法大學》課件
- GB/T 35270-2024嬰幼兒背帶(袋)
- 遼寧省沈陽名校2025屆高三第一次模擬考試英語試卷含解析
- 2024-2025學年高二上學期期末數(shù)學試卷(新題型:19題)(基礎篇)(含答案)
- 2022版藝術新課標解讀心得(課件)小學美術
- Profinet(S523-FANUC)發(fā)那科通訊設置
- 醫(yī)學教程 常見化療藥物歸納
- 麻醉藥品、精神藥品月檢查記錄表
- JJF 1101-2019環(huán)境試驗設備溫度、濕度參數(shù)校準規(guī)范
- GB/T 25000.51-2016系統(tǒng)與軟件工程系統(tǒng)與軟件質量要求和評價(SQuaRE)第51部分:就緒可用軟件產(chǎn)品(RUSP)的質量要求和測試細則
評論
0/150
提交評論