博主介紹:?Java老徐、7年大廠程序員經歷。全網粉絲12w+、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰?
🍅文末獲取源碼聯系🍅
👇🏻 精彩專欄推薦訂閱👇🏻 不然下次找不到喲
Java基于微信小程序的校園外賣平臺設計與實現,附源碼
Python基于Django的微博熱搜、微博輿論可視化系統,附源碼
Java基于SpringBoot+Vue的學生宿舍管理系統感興趣的可以先收藏起來,還有大家在畢設選題,項目以及文檔編寫等相關問題都可以給我留言咨詢,希望幫助更多的人
文章目錄
- 第一章 項目簡介
- 第二章 技術棧
- 第三章 Web應用程序漏洞檢測技術
- 3.1 網絡爬蟲
- 3.1.1 網絡爬蟲原理
- 3.1.2 爬取策略
- 3.1.3 Scrapy爬蟲架構
- 3.2 SQL注入漏洞
- 3.3 XSS漏洞
- 第四章 系統設計與實現
- 4.1 系統整體設計
- 4.2 爬蟲模塊的設計與實現
- 4.2.1 爬蟲模塊的設計
- 4.2.2 爬蟲模塊的實現
- 4.3 XSS掃描模塊的設計與實現
- 4.4 應用中SQL注入
- 4.5 相關報告生成
- 第五章 系統的實現與漏洞挖掘
- 5.1 系統的首頁面
- 5.2 web漏洞挖掘網站首頁
- 5.3 漏洞總覽頁面
- 5.4 漏洞詳情頁面
- 第六章 推薦閱讀
- 第七章 源碼獲取:
第一章 項目簡介
本次技術通過利用Python技術來開發一款針對web漏洞挖掘掃描的技術,通過web漏洞的挖掘掃描來實現對網站URL的漏洞檢測,通過高中低風險的判斷來實現對一款網站中存在的漏洞進行可視化的分析,從而能夠找到問題并且盡快的實現問題的解決。
網絡漏洞掃描技術能夠通過以攻擊者的視角出發,通過模擬對程序的攻擊來認識到程序可能存在的風險,從而更快速的找到問題的所在,實現有效的漏洞補丁完善等功能實現。漏洞挖掘掃描技術是一種主動的防御過程,是未雨綢繆的一種防護手段。這種手段能夠通過提前對web進行滲透掃描來了解到網頁的運行參數、時間參數等信息內容,從而通過掃描形成的檢測報告來查找到系統中可能存在的威脅情況。而本次就是通過了Python技術來打造一款能夠實現有效的網頁漏洞掃描的主要功能實現,通過對網頁的提前掃描來主動的進行安全的檢測,之后再通過可視化的圖表方式來對查找到的漏洞情況進行直觀的展示,從而能夠有效的為用戶提供提醒或者警示的作用,告訴用戶該網站是否安全,做好提前的使用判斷。
第二章 技術棧
Python Django
MySql
HTML,Javascript
第三章 Web應用程序漏洞檢測技術
3.1 網絡爬蟲
3.1.1 網絡爬蟲原理
網絡爬蟲是通過對網頁中的URL加以利用,進而獲得網頁內的資料信息,通過模仿正常的網頁登錄方式來對網頁中的內容進行下載以及深層次的內容分析。網絡爬蟲通過以數據源的地址為爬取的起始點,通過搜集URL,篩選出有關的連接信息,通過特定的規則來進行連接的篩選,通過將連接保存在隊列中來完成下一步的搜索,直至搜索的隊列內容為空為止。下圖是一個網絡爬蟲的基本操作流程圖:
3.1.2 爬取策略
爬取數據是需要有策略導向的,在URL隊列匯總通過對搜索次序的排列來完成對整個爬取策略的訂制,爬蟲的相關策略有以下的幾種方式:
(1)深度優先策略
通過以種子URL為起始點,從七點到下一個訪問點之間不再有任何的訪問節點,通過這種路徑方式來實現深度的數據爬取,指導兩個節點中間再無節點位置。深度優先的策略是一項能夠完完整整的從網頁上將所有的信息進行爬取的一種技術,但是這種技術也有著不足之處,如果爬取的內容過深,則該技術會進行無限的爬取,影響到爬取數據的準確度。
(2)廣度優先策略
在這種優先策略的使用上,是以盡可能的覆蓋整個網絡來實現寬優先的搜索策略,通過這種搜索的過程能夠從平行的起點開始,通過同一深度來進行有效的數據攀爬過程實現,反復攀爬直至全部的連接完成。
(3)最佳優先策略
最佳優先,是通過在傳統的算法之中加入一系列特殊的算法,通過以算法為基礎來進行一個可擴展的策略制定,通過將網頁分析算法進行頁面的分析,通過預測連接的需求來實現在通過思考之后將有必要爬取的連接放置在隊列中,這種方式后期也是對隊列中的信息進行不斷的掃描紙質隊列為空位置。這種算法的針對性更強,爬取的效率也更快。
3.1.3 Scrapy爬蟲架構
本次在網絡爬蟲的選擇上,由于系統的功能模塊開發選擇了Python技術,所以此次的爬蟲架構也選擇了Python語言下的Scrapy來進行爬蟲功能的實現,在此次的設計上,該技術的主要由七大部分組成,通過scrapy作為主引擎,通過下載器來進行頁面的相關內容的獲取,通過蜘蛛和爬蟲中間件來完成對數據的爬取功能。
3.2 SQL注入漏洞
SQL注入是現在通過數據庫漏洞而造成的一項安全隱患巨大的漏洞,由于直面數據庫,這種漏洞十分的危險,對于國家的安全、個人的信息安全等均可以造成巨大的損失。這種注入方式難易被察覺,和普通用戶在使用網站是的數據存取基本相同,防火墻等安全措施無法進行報警,使得該注入漏洞有著極強的隱蔽性。SQL注入能夠將常規的數值進行修改,改成SQL不敏感的一個字符串,通過這種修改來讓字符串錄入數據庫是難易被察覺。這種漏洞出現的原因是在程序的開發過程中,在SQL語句的編譯上,沒有進行用戶參數的嚴格全面的檢查,使得SQL語句拼接的過程中存在問題,并將這種帶有問題的語句提交到數據庫匯總記性了運行。
SQL的注入方式通常會通過以用戶輸入的方式進行注入,這種方式下由于不嚴格的進行用戶的輸入參數值的篩選,從而造成含有特定含義的參數植入到SQL語句中,會實現數據庫的侵入。Cookie的注入方式是通過輸入cookie值的方式來進行SQL的注入。第三種方式是通過服務器的變量注入的方式通過以HTTP報頭的環境變量,通過插入進行設計的敏感字符串,來實現注入運行。
3.3 XSS漏洞
跨站腳本攻擊的方法也是常見的漏洞東之一,被簡稱為XSS漏洞,這種漏洞是在開發人員在提交用戶數據時沒有進行篩選和過濾,使得攻擊腳本被傳至瀏覽器中,并且在瀏覽器中被觸發,從而產生安全的漏洞,這種方式下,通常有三種漏洞的形式,分別為反射型、存儲型以及DOM型。
反射型的XSS漏洞中,攻擊者通過將帶有惡意腳本的網頁返回給用戶,并且通過在瀏覽器上進行惡意的腳本出發,從而使得攻擊者能夠獲取個人用戶的信息,如下圖所示:
DOM型的漏洞攻擊與XSS相似,都是通過這種方式來尋找網頁中的反射型的缺陷。DOM是能夠通過JavaScript的腳本動態來進行模型的修改。而存儲型的XSS相對于前兩者而言更加具有隱蔽性,其危害性也更加,通過對網頁上存儲的矢量進行攻擊,使其在網頁上執行攻擊代碼,從而獲取用戶的個人信息。這種方式的結構如下所示:
第四章 系統設計與實現
4.1 系統整體設計
此次在漏洞挖掘技術的使用上,主要通過以四個部分來進行相應的內容組成,分別為信息采集、輸入參數分析、缺陷檢測、缺陷報告產生等來進行設計,其主要的整體設計圖如下所示:
通過上圖可以看出此次的系統設計需要通過三大部分來實現有效的功能設計實現,分別為爬蟲、漏洞探測、SQL注入,通過這三個步驟之后在網頁端形成報告的生成。
(1)爬蟲模塊是以主題爬蟲為最為基礎的內容設計,通過對URL的相關數據爬取來實現有效的信息的下載獲取;
(2)缺陷探測過程中,通過對正常的URL、帶有缺陷的URL等進行檢測,將檢測出的內容存儲在數據庫匯總。
(3)通過SQL注入來進行數據庫的SQL語句的內容測試。
4.2 爬蟲模塊的設計與實現
4.2.1 爬蟲模塊的設計
此次在爬蟲模塊的設計上,需要體現出爬蟲爬取速度快、能夠為用戶快速的得到結果的處理方式來進行漏洞挖掘掃描技術的推進。所以本次通過采用廣度優先的方式能夠很好的通過覆蓋頁面的爬取方式來制定一個策略性的深度爬取過程,通過對系統的有效爬取來實現對相關信息的提取實現。主要分為了以下的幾個步驟:
(1)網頁下載
網頁下載是通過將HTTP的請求發送到目的地,通過HTTP響應的方式來對頁面進行分析,從最初的URL為起始點,將所有頁面進行快速的瀏覽并且將其全部的存儲到本地數據庫中。
(2)提取URL
這種方式是通過抽取URL連接,通過正規運算規則,以字符串的排列來對字符串進行在線的匹配。通過對URL的規范、標準進行檢測,將符合本次測試要求條件的URL保存到需要爬取的URL隊列之中。
(3)提取可能的注入點信息
這種方式是通過從form表格中進行相關信息的查找,通過輸入域< input>選擇域> select>多行文本域的方式來進行相應的名稱和價值屬性管理的排列。通過以method作為請求的提交范式來進行get和post的獲得。通過這種方式來檢測使用者的表單中是否加入了惡意代碼,如果加入了惡意代碼則會在產生程式上產生缺陷。此次設計的爬蟲整體的設計圖展示如下:
爬蟲模塊設計圖如下:
4.2.2 爬蟲模塊的實現
本次設計的爬蟲模塊的設計如下圖所示:
4.3 XSS掃描模塊的設計與實現
本次在XSS的檢測設計上,是此次搭建的漏洞挖掘技術軟件的一個非常關鍵的功能,通過該功能能夠模擬惡意代碼的注入,通過靜態的掃描方式來找到可能存在缺陷的代碼及模塊,本次的設計如下:
此次的XSS設計是通過在服務器上建立一個特定的編碼,通過對特定的編碼進行標記,將其鑲嵌在服務器中,通過返回的數據信息來進行漏洞的判定以及漏洞的挖掘實現。
XSS模塊的流程如圖。
(1)使用者在網站或者搜尋模組中通過獲取目標網站來對目標網址進行判定,判定其是否滿足搜尋目標的選定,如果滿足則進入下一步的測試環節。
(2)在URL的參數分解上,通過自定義的key來代替相應的參數信息,從而向數據庫發送請求,通過對得到的返回的請求信息進行判斷來進行URL的保存。
(3)在參數的搜集過程中,如果出現清單不為空,則需要對該類表進行請求的判定,通過關鍵字來查找到key所標記的位置,通過位置屬性的查找來實現URL的存儲。
(4)通過在詞典中讀取每一個URL通過在payload中進行注入碼的加載,來發送到服務器,通過服務器來判斷是否返回,如果存在注入代碼則代表著存在XSS威脅。
4.4 應用中SQL注入
在URL、cookie參數以及from窗體中都是出現SQL注入的常見地帶。在SQL注入的掃描過程中,要通過工具的探測來實現服務器交互的實現。該工具能夠探測到與服務器交互的各個位置,通過觀察服務器的反應過程來判斷SQL的注入漏洞缺陷。
SQL注入最為基本的方式是利用了網絡應用不會對用戶輸入的數據及西寧篩選,從而通過在用戶輸入的內容中形成一個動態的SQL語句來實現特定字符的注入。SQL注入檢測過程如下圖:
本次設計的SQL注入漏洞挖掘技術的主要操作步驟展示如下:
(1)通過確定URL的需求,通過向服務器發送請求,在得到的信息中進行form標簽的查看,然后再進行下一項內容的查詢。
(2)在網頁的分析中,通過返回的信息獲取用戶名和密碼的標簽名稱。
(3)通過整體的運算操作,以大量的URL詞典來進行下一步的請求發送,再一次的得到服務器的反饋分析。
(4)通過用戶的身份驗證,通過黑盒的方式來不斷的輸入信息來進行惡意的登錄過程。
(5)在每一次都輸入錯誤的過程中,查找一些其他方面的信息統計,通過status來進行信息的確認實現。
4.5 相關報告生成
本次的系統設計上,最終反饋給用戶的如果僅僅是一串代碼,很難滿足大眾的使用需求,因此需要將生成的報告形成可視化的方式來進行很好的內容展示工作完成。
在報告的生成上,通過以XML的方式來進行信息的轉化有著很好的使用效果,XML是一種開放的、不依賴平臺也不依賴于供應商的一種技術標準,這種技術標準可以在網頁中進行直接的使用,因此具有很強的跨平臺特點,能夠在各類平臺上進行XML文檔的讀寫、處理等工作的實現,可以通過純粹的文字文檔來實現有效的通訊傳輸的功能實現,是一種純粹的、有著很好的通信方式實現的長文本傳送的格式。其體積輕便,能夠通過很小的空間占用來實現高效的信息存儲的工鞥那服務。能夠實現有效的自我描述,通過標簽、符號、自定義內容等方式來進行很好的內容組件,將電腦中的操作數據進行可視化的展示服務。
第五章 系統的實現與漏洞挖掘
本次的系統開發是建立在Python技術、django框架下來進行的頁面模塊開發,通過以scrapy爬蟲技術來進行漏洞挖掘功能的實現,通過爬蟲技術所爬取的數據信息全部存儲在MySQL數據庫中。
5.1 系統的首頁面
此次的系統首頁面是登錄的頁面,需要用戶完成登錄后才能夠在網站中實現爬蟲的功能應用。
5.2 web漏洞挖掘網站首頁
在登錄完成后,系統會進入到web漏洞挖掘的網站首頁,在該頁面中有爬取的總URL數、高危漏洞數、中危漏洞數以及低危漏洞數等。并且其他的功能菜單還有漏洞總覽、漏洞詳情等功能,配合有個人信息的維護管理的功能模塊。如下圖所示:
5.3 漏洞總覽頁面
在漏洞總覽頁面中,能看到掃描歷史的主要URL情況,包括掃描的狀態,出現的高危、中危、低危的漏洞個數,掃描完成的時間等內容,并且在對話框中也能夠進行新的URL地址的輸入并且進行搜索。如下圖所示:
5.4 漏洞詳情頁面
在漏洞詳情中,能夠看到逐條顯示的URL漏洞的名字、關聯編號以及漏洞的危險等級等,通過這些信息的歸類可以完成對漏洞的詳細內容展示的功能實現,如下圖所示:
第六章 推薦閱讀
基于Python的循環神經網絡的情感分類系統設計與實現,附源碼
Python基于人臉識別的實驗室智能門禁系統的設計與實現,附源碼
Java基于微信小程序的講座預約系統的研究與實現,附源碼
Java基于微信小程序的校園訂餐系統
Java基于SpringBoot的在線學習平臺
2023年Java畢業設計題目如何選題?Java畢業設計選題大全
基于Python的機器學習的文本分類系統
基于Python dlib的人臉識別的上課考勤管理系統(V2.0)
Java 基于 SpringBoot+Vue 的公司人事管理系統的研究與實現(V2.0)
第七章 源碼獲取:
大家點贊、收藏、關注、評論啦 、查看👇🏻獲取聯系方式👇🏻
👇🏻 精彩專欄推薦訂閱👇🏻 不然下次找不到喲
Python畢業設計
Java 大學生實戰精品項目
Java微信小程序精品項目
感興趣的可以先收藏起來,還有大家在畢設選題,項目以及文檔編寫等相關問題都可以給我留言咨詢,希望幫助更多的人