国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python的Web漏洞掃描器

2020-04-20 10:46徐貴江黃媛媛陳子豪殷旭東錢振江
軟件工程 2020年4期
關(guān)鍵詞:插件

徐貴江 黃媛媛 陳子豪 殷旭東 錢振江

摘? 要:當下Web安全問題頻發(fā),很多Web網(wǎng)站代碼設(shè)計時安全問題考慮不足,而市面上的漏洞掃描器存在掃描速度慢、軟件臃腫、可擴展性不強等問題,我們基于Python設(shè)計了一個Web漏洞掃描器,在參考其他同類產(chǎn)品設(shè)計的基礎(chǔ)上,采用注入分析、字典掃描等方法提高了掃描器性能,并增加了開放性的插件接口等一些實用且獨特的功能。本文介紹了其工作原理,具體實現(xiàn)及實驗測試。

關(guān)鍵詞:Web漏洞檢測;掃描器設(shè)計;Python;插件

中圖分類號:TP309? ? ?文獻標識碼:A

Abstract:The web security problems are frequent at present,and many website code designs do not have sufficient consideration for security problems.By contrast,the vulnerability scanners on the market have issues such as slow scanning speed,bloated designs,and poor scalability.Therefore,we designed a web vulnerability scanner based on Python,considering the designs of other similar products.This research used injection analysis,dictionary scanning,and other methods to improve scanner performance and added some practical and unique features like open plug-in interface.The working principle,specific implementation,and experimental testing are described.

Keywords:web vulnerability detection;scanner design;python;plug-in

1? ?引言(Introduction)

如何保障Web產(chǎn)品的安全是當下移動互聯(lián)網(wǎng)一個重要的研究課題,現(xiàn)如今雖然市面上有了幾款[1-3]較為成熟的漏洞掃描檢查工具,但是大部分工具都不具備動態(tài)加載模塊的功能,對部分漏洞的檢查與修復不夠準確,從而延誤安全人員及時處理與修復漏洞。提升移動互聯(lián)網(wǎng)信息系統(tǒng)安全性,迫切需要構(gòu)建面向各種Web安全漏洞的收集和掃描系統(tǒng)[4]。

為了使得用戶獲得更好的掃描體驗,需要加強對Web安全漏洞本身的研究,更加有效地分析及掃描Web應(yīng)用安全漏洞,我們先分析了當下Web網(wǎng)頁中主要存在的安全問題[5,6],近而提出了一種基于Python的漏洞掃描器,該掃描器目前具備對SQL注入、XSS攻擊、文件上傳、弱口令、后門五類高危高頻率出現(xiàn)的漏洞的掃描功能。

2? ?思路與工作原理(Idea and working principle)

針對SQL注入漏洞,本掃描器會在SQL注入模塊采用注入點分析和SQL注入實現(xiàn)判定的方法掃描漏洞;針對XSS攻擊漏洞,本掃描器的XSS攻擊模塊會利用爬蟲板塊來分析Web站點,尋找切入點,然后對切入點進行測試,判斷是否存在XSS攻擊漏洞;針對文件上傳漏洞,本掃描器會在文件上傳模塊對文件的具體內(nèi)容、拓展名、大小,以及上傳路徑四個方面使用不同的方法進行檢測;針對弱口令漏洞,本掃描器會在弱口令模塊通過弱口令字典對所在表單信息進行爆破,然后分析返回的頁面,從而達到掃描漏洞的目的;針對后門漏洞,本掃描器會在后門模塊根據(jù)網(wǎng)頁的腳本語言類型來選擇相應(yīng)的字典進行掃描,然后對于返回的應(yīng)答狀態(tài)來判斷是否存在后門漏洞;針對用戶后期漏洞維護和更新的需求,本掃描器在拓展模塊提供一套模塊標準,使用戶可以自主編寫或者移植別的模塊。

本掃描器的基本工作原理如圖1所示分為四層:第一層輸入層:提示用戶輸入一個需要檢測的URL;第二層掃描控制層:調(diào)用多線程、深度選擇和字典爆破模塊,根據(jù)URL地址發(fā)送請求,獲取服務(wù)器相應(yīng)頁面,嘗試模擬對這些URL的訪問以獲取盡可能多的URL;第三層模塊控制層:采用一定策略獲得并且重新組織需要的鏈接地址,將其添加到掃描進程列表中。將按照深度提煉的子URL返回到相對應(yīng)的功能模塊進行更深一步的分析;第四層輸出層:深度解析之后在掃描結(jié)果列表中輸出相對的掃描結(jié)果,以及相應(yīng)的修復建議。

3? ?具體設(shè)計與實現(xiàn)(Specific design and implementation)

本掃描器是由SQL注入漏洞掃描模塊、XSS攻擊掃描模塊、文件上傳檢測模塊、弱口令爆破檢測模塊、后門掃描檢測模塊和功能拓展模塊六個模塊組成的。

3.1? ?SQL注入掃描模塊

在SQL注入[7]掃描模塊中,我們設(shè)計了四個工作流程對目前的SQL注入安全問題進行檢測:獲取網(wǎng)站鏈接(完成對網(wǎng)站URL及其相關(guān)信息的管理)→SQL注入點分析[8](構(gòu)造注入判斷語句,將URL帶上判斷語句進行訪問,存在注入點,則保存,否則丟棄)→SQL注入實現(xiàn)判定(帶上可能的惡意代碼,進行訪問,訪問成功則表示該注入點可以利用)→提供修復建議。

3.2? ?XSS攻擊掃描模塊

XSS漏洞[9]檢測模板由URL信息板塊、爬蟲板塊、測試板塊和數(shù)據(jù)庫四大部分組成。URL信息板塊來完成對網(wǎng)站URL及其相關(guān)信息的管理,其有用信息存放到數(shù)據(jù)庫中。爬蟲板塊來分析Web站點,尋找切入點,并記錄相關(guān)信息。測試板塊提取出數(shù)據(jù)庫中的信息,對其進行切入點的測試工作,完成之后將含有漏洞的URL,以及相關(guān)記錄信息輸出作為提供修復建議的一部分,并處理所有輸出類型的XSS漏洞。

3.3? ?文件上傳檢測模塊

在文件上傳漏洞[10]掃描模塊中,我們主要針對上傳文件的具體內(nèi)容、文件的拓展名、文件的大小,以及文件上傳的路徑四個方面進行檢測。

(1)文件內(nèi)容檢測方法分為兩步,一是獲取行為數(shù)據(jù),調(diào)取那些敏感的行為數(shù)據(jù)(如eval、system、exec),二是檢測隱藏的執(zhí)行數(shù)據(jù),比如發(fā)現(xiàn)某個函數(shù)執(zhí)行了,代碼中卻找不到這個函數(shù)名,則認為這是個異常行為,可能存在文件上傳漏洞。

(2)文件拓展名檢測,是使用pathinfo函數(shù)和substr函數(shù)實現(xiàn)的,為防止黑客在文件名中插入“‘\0”符號繞過檢測,因此,在使用擴展名對文件類型進行檢查時需要先將文件名中的“‘\0”進行替換,接著使用getimagesize函數(shù)對上傳文件的MIME類型進行檢查。

(3)文件大小檢測,是通過使用filesize函數(shù)判斷實現(xiàn)的,如果超過了預(yù)設(shè)值則存在文件上傳漏洞。

(4)文件上傳路徑檢測,上傳一個Webshell腳本,對保存臨時文件名的參數(shù)進行修改,如果成功了,那么就存在文件上傳漏洞。

3.4? ?弱口令爆破檢測模塊

在弱口令爆破模塊中,主要是通過弱口令字典對所在表單信息進行爆破,從而獲取信息。我們首先通過URL掃描目錄,檢測網(wǎng)站的form表單,再檢查表單里面的關(guān)鍵字。比如指定關(guān)鍵字類似“user”“pass”的視為登錄頁面,根據(jù)表單的提交方法,跑字典爆破,再根據(jù)返回的包的大小來判斷是否正確登錄,進而進一步判斷是否存在弱口令漏洞。

3.5? ?后門檢測掃描模塊

在后門掃描模塊中,首先是讓用戶輸入一個有效地URL,系統(tǒng)后臺在URL頂級域名后加/index.xx(xx表示腳本語言,如PHP、asp等)并訪問,根據(jù)返回服務(wù)器腳本語言判斷腳本類型來選擇相應(yīng)的字典進行掃描,通過掃描返回的服務(wù)器的應(yīng)答狀態(tài)來判斷是否有可能存在后門。

上述五個模塊在檢測到漏洞后,本掃描器會針對漏洞所在位置、漏洞數(shù)量和漏洞特點,給出相對應(yīng)的修復建議。

3.6? ?功能拓展模塊

在功能拓展模塊中,我們給本掃描器規(guī)范了一套模塊標準,這里以SQL注入掃描模塊的框架為例具體如圖2所示。

這些使本掃描器可以提供拓展支持,用戶可以輕松移植其他Python腳本工具來滿足自身的漏洞掃描需求,同時用戶也可以根據(jù)需求,自定義腳本。本掃描器具有較大的移植性。

4? ?測試和驗證(Testing and verification)

4.1? ?測試過程

將本掃描器和其他同類別的產(chǎn)品做對比測試。首先是功能上,將本掃描器與其他四款同類產(chǎn)品(WebInspect、Whisker/libwhisker、Acunetix Web Vulnerability Scanner、椰樹Web漏洞掃描器)相比;其次是性能上,測試內(nèi)容是DVWA三種不同漏洞等級下的SQL漏洞,漏洞識別率方面依舊對比了上面提到的四種同類產(chǎn)品,漏洞掃描效率方面對比了業(yè)內(nèi)老牌的Acunetix Web Vulnerability Scanner。

4.2? ?測試結(jié)果

在功能方面,如表1所示,本掃描器的漏洞可掃描種類和功能特性與WebInspect、Whisker/libwhisker、Acunetix Web Vunerability Scanner(下簡稱為AWVS)和椰樹Web漏洞掃描器四款產(chǎn)品相比,具備很大的優(yōu)勢。

4.3? ?結(jié)果分析

經(jīng)過我們的測試,我們開發(fā)的WebScan漏洞掃描系統(tǒng)已經(jīng)具備了針對網(wǎng)頁在組件、權(quán)限、數(shù)據(jù)、代碼和通信系統(tǒng)等方面運行過程中產(chǎn)生的可能存在的安全漏洞問題的檢測分析與修復功能,并顯示出我們的系統(tǒng)具有較好的網(wǎng)頁漏洞檢測效果和不錯的修復能力。且相對于目前市場上同類競爭產(chǎn)品來講,我們開發(fā)的WebScan漏洞掃描系統(tǒng)的靈活性與便攜性都更勝一籌。

5? ?結(jié)論(Conclusion)

目前本作品提供了一些面向特定漏洞的掃描修復模塊,因此能夠較好地覆蓋主要的漏洞問題。同時本作品的各個模塊提供有擴展接口,方便使用者對代碼進行完善和二次開發(fā),并且該作品是以Python作為開發(fā)語言,由于Python的普適性和輕量性的兩大特點,使得該程序幾乎可以在任何平臺快速運行。

此外,我們的漏洞掃描器,針對Web網(wǎng)頁進行了深入的

研究,能夠提出相應(yīng)的切實有效地修補建議,可以切實提高網(wǎng)站的自身安全級,并具有重要的實用價值,促進Web的應(yīng)用安全,擁有較為可觀的市場發(fā)展前景。

本作品目前還存在一些改進的空間,比如穩(wěn)定性還可以進一步加強,可設(shè)計為瀏覽器插件以方便進一步使用等。

參考文獻(References)

[1] Micro Focus.動態(tài)應(yīng)用安全測試 (DAST):Fortify WebInspectWebInspect[EB/OL].https://www.microfocus.com/zh-cn/products/Webinspect-dynamic-analysis-dast/overview,2020-01.

[2] Acunetix.Web Application Security Scanner[EB/OL].https://www.acunetix.com,2020-01.

[3] 陳禹.Web漏洞掃描器一覽[J].計算機與網(wǎng)絡(luò),2016,42(20):56-57.

[4] 尹彥濤.Web漏洞掃描系統(tǒng)設(shè)計與實現(xiàn)[D].中國海洋大學,2014.

[5] 張燁青.Web應(yīng)用安全漏洞掃描器爬蟲技術(shù)的改進與實現(xiàn)[D].北京郵電大學,2014.

[6] Manohar,E.,Shalini Punithavathani,D..Hybrid Data Aggregation Technique to Categorize the Web Users to Discover Knowledge About the Web Users[J].Wireless Personal Communications,2017(4):1-6.

[7] Wenfei Fan,Jeffrey Xu Yu,Jianzhong Li.Query translation from XPath to SQL in the presence of recursive DTDs[J].The VLDB Journal,2009,18(4):2-4.

[8] Jevri Tri Ardiansah,Aji Prasetya Wibawa,Triyanna Widyaningtyas.SQL Logic Error Detection by Using Start End Mid Algorithm[J].Knowledge Engineering and Data Science,2017,1(1):1-11.

[9] Steinhauser,Antonin,Tuma.DjangoChecker:Applying extended taint tracking and server side parsing for detection of context-sensitive XSS flaws[J].Software:Practice and Experience,2019-Wiley Online Library,2019(1):1-6.

[10] 周開東,魏理豪,王甜,等.遠程文件包含漏洞分級檢測工具研究[J].計算機應(yīng)用與軟件,2014(2):21-23.

作者簡介:

徐貴江(1999-),男,本科生.研究領(lǐng)域:網(wǎng)絡(luò)安全,WEB系統(tǒng)開發(fā).

黃媛媛(1999-),女,本科生.研究領(lǐng)域:信息安全,軟件開發(fā).

陳子豪(1997-),男,本科生.研究領(lǐng)域:信息安全,軟件開發(fā).

殷旭東(1970-),男,碩士,工程師,實驗師.研究領(lǐng)域:網(wǎng)絡(luò)安全,移動計算.本文通訊作者.

錢振江(1982-),男,博士,副教授.研究領(lǐng)域:信息安全,信息物理融合系統(tǒng)和定理證明.

猜你喜歡
插件
自編插件完善App Inventor與樂高機器人通信
插件技術(shù)在計算機軟件技術(shù)中的運用
基于jQUerY的自定義插件開發(fā)
MapWindowGIS插件機制及應(yīng)用
基于Revit MEP的插件制作探討
插件技術(shù)在計算機軟件中的應(yīng)用分析