• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Web滲透測(cè)試方法研究

      2019-01-11 08:56:24郭宇燕
      關(guān)鍵詞:安全級(jí)別攻擊者瀏覽器

      孫 梅,郭宇燕,韓 超,余 磊

      目前,Web在互聯(lián)網(wǎng)中得到了最為廣泛的應(yīng)用,Web的功能和交互性也在不斷增強(qiáng),承載的業(yè)務(wù)也越來(lái)越多,大量的數(shù)據(jù)存儲(chǔ)在各種Web系統(tǒng)中.針對(duì)Web應(yīng)用的攻擊成為了攻擊者的主要目標(biāo),Web應(yīng)用安全成為了目前互聯(lián)網(wǎng)的主要安全問(wèn)題[1].當(dāng)前Web安全威脅主要集中在Web數(shù)據(jù)處理、Web應(yīng)用程序、Web業(yè)務(wù)流程等方面.如果程序員在設(shè)計(jì)系統(tǒng)、開(kāi)發(fā)系統(tǒng)中沒(méi)有充分考慮到安全因素,很容易遭到黑客的攻擊,如XSS、CSRF、SQL注入等攻擊[1-2].這些都是因?yàn)閃eb應(yīng)用程序或者Web數(shù)據(jù)處理存在的安全漏洞而導(dǎo)致的.

      滲透測(cè)試是通過(guò)模擬黑客的攻擊方法和漏洞發(fā)掘技術(shù)來(lái)評(píng)估計(jì)算機(jī)系統(tǒng)安全的一種評(píng)估方法,該方法是從攻擊者角度發(fā)現(xiàn)分析系統(tǒng)的缺陷及漏洞,進(jìn)而嘗試?yán)媚承┞┒磳?duì)信息系統(tǒng)實(shí)現(xiàn)主動(dòng)攻擊的過(guò)程,從而評(píng)估系統(tǒng)存在的可能安全風(fēng)險(xiǎn)問(wèn)題[2].本文主要研究Web中SQL注入、XSS注入、文件上傳漏洞、邏輯漏洞等的滲透測(cè)試方法.

      本文通過(guò)在本地搭建一個(gè)滲透測(cè)試站點(diǎn)DVWA,模擬各種攻擊方法對(duì)DVWA站點(diǎn)進(jìn)行滲透,研究Web的滲透測(cè)試方法設(shè)計(jì)分析和防護(hù)措施.DVWA是一套集成了常見(jiàn)Web漏洞的php+mysql系統(tǒng),其中包含了暴力破解、SQL注入、XSS、CSRF、文件上傳等一系列的安全漏洞.

      1 SQL注入漏洞滲透測(cè)試與分析

      SQL注入漏洞是目前針對(duì)Web應(yīng)用危害最大、且攻擊成本最低的漏洞.2013年,SQL注入攻擊在OWASP TOP10中處于第一名的位置[3].SQL注入形成的根本原因是開(kāi)發(fā)人員在開(kāi)發(fā)代碼時(shí),未對(duì)用戶的輸入進(jìn)行過(guò)濾或者過(guò)濾不嚴(yán)格,用戶輸入的內(nèi)容被后臺(tái)數(shù)據(jù)庫(kù)直接運(yùn)行,導(dǎo)致Web數(shù)據(jù)泄露或被篡改等威脅的發(fā)生[4].一般,攻擊者通過(guò)Web應(yīng)用程序提交一段精心構(gòu)造的SQL代碼,查詢數(shù)據(jù)庫(kù)中的敏感信息,如管理員的賬號(hào)密碼、用戶的個(gè)人信息等.當(dāng)數(shù)據(jù)庫(kù)用戶的權(quán)限比較大時(shí),如mysql的root用戶,mssql的sa用戶,攻擊者還可以通過(guò)巧妙地組合SQL語(yǔ)句,向目標(biāo)服務(wù)器寫(xiě)入木馬文件,甚至獲得目標(biāo)服務(wù)器操作系統(tǒng)的shell,直接執(zhí)行系統(tǒng)命令.下文通過(guò)手工注入和自動(dòng)注入來(lái)研究和分析SQL注入的滲透測(cè)試方法.

      1.1 手工SQL注入滲透測(cè)試

      (1)驗(yàn)證是否存在sql注入點(diǎn).首先將DVWA的安全等級(jí)設(shè)置為低,然后打開(kāi)SQL注入頁(yè)面,在USER ID位置輸入3′and ′3′=′3,如圖1所示.如果正常返回了數(shù)據(jù),說(shuō)明輸入的內(nèi)容被數(shù)據(jù)庫(kù)執(zhí)行了,猜測(cè)Web程序的sql語(yǔ)句為:select*from 表名 where id=′3′and ′3′=′3′,由于and ′3′=′3′在邏輯上為真,所以返回了id為3的用戶信息.輸入3′and ′3′=′4,點(diǎn)擊提交.由于and ′3′=′4′在邏輯上為假,所以這次沒(méi)有返回?cái)?shù)據(jù).根據(jù)以上兩種情況,可以判斷USER ID位置存在SQL注入.

      圖1 驗(yàn)證sql注入

      圖2 判斷字段數(shù)

      (2)判斷字段的個(gè)數(shù).輸入3′order by 2#,如圖2所示.在mysql數(shù)據(jù)庫(kù)中,#的作用為單行注釋符,order by會(huì)對(duì)查詢的結(jié)果進(jìn)行排序,攻擊者通常使用order by子句來(lái)判斷表的字段數(shù).由于此時(shí)正常返回了數(shù)據(jù),說(shuō)明查詢了2個(gè)字段.輸入3′order by 3#,點(diǎn)擊提交后,返回了字段異常錯(cuò)誤.說(shuō)明表中字段的個(gè)數(shù)不足3個(gè),即判斷字段的個(gè)數(shù)為2.

      (3)獲取數(shù)據(jù)庫(kù)名.輸入3′union select 1,database()#,這里使用union查詢,union可以把多個(gè)select語(yǔ)句的結(jié)果組合到一個(gè)集合中,database函數(shù)用來(lái)查詢數(shù)據(jù)庫(kù)名,從返回結(jié)果可以看出,數(shù)據(jù)庫(kù)名為dvwa.如圖3所示.

      圖3 獲取數(shù)據(jù)庫(kù)名

      (4)獲取表名.輸入 3′union select 1,table_name from information_schema.tables where table_schema=dvwa#,information_schema是MySQL 5.0及其以上版本自帶的系統(tǒng)數(shù)據(jù)庫(kù),它提供了對(duì)數(shù)據(jù)庫(kù)元數(shù)據(jù)的訪問(wèn)接口,可以將它理解成數(shù)據(jù)庫(kù)的字典,mysql的表名、列名、訪問(wèn)權(quán)限、索引信息等都存儲(chǔ)在內(nèi).結(jié)合mysql中的關(guān)鍵字可以從information_schema數(shù)據(jù)庫(kù)中查詢到攻擊者想要的信息,如圖4所示.根據(jù)返回結(jié)果判斷dvwa數(shù)據(jù)庫(kù)下包含了users表和guestbook表.注意使用sql語(yǔ)句查詢時(shí),需要將數(shù)據(jù)庫(kù)名、表名轉(zhuǎn)換成16進(jìn)制格式,否則查詢不到數(shù)據(jù);mysql關(guān)鍵字的信息見(jiàn)表1.

      圖4 獲取表名

      表1 mysql關(guān)鍵字

      (5)獲 取 列 名.輸 入 3′union select 1,group_concat (column_name) from information_schema.columns where table_name=users#,如圖5所示.其中g(shù)roup_concat函數(shù)可以將列進(jìn)行分組,便于顯示和查看.根據(jù)返回的列名可以猜測(cè),password列中可能存放著用戶的密碼信息.

      圖5 獲取列名

      (6)獲取數(shù)據(jù).在用戶id位置輸入3′union select 1,password from users#,如圖6所示,此時(shí)后臺(tái)數(shù)據(jù)庫(kù)執(zhí)行的sql語(yǔ)句為select*from表名where id=′3′union select 1,password from users#′.

      圖6 獲取數(shù)據(jù)

      成功獲取到了用戶的密碼.但密碼是被md5加密過(guò)的密文,將密文拿到一些在線解密網(wǎng)站上進(jìn)行解密,如果密碼的長(zhǎng)度和復(fù)雜度比較弱,就很容易獲得明文.

      1.2 使用sqlmap實(shí)現(xiàn)自動(dòng)化SQL注入

      sqlmap是一款開(kāi)源的、使用python編寫(xiě)的跨平臺(tái)SQL注入工具,它可以自動(dòng)地發(fā)現(xiàn)并利用SQL注入漏洞.另外,sqlmap還集成了許多實(shí)用的第三方腳本,當(dāng)目標(biāo)網(wǎng)站上安裝了WAF或者防火墻設(shè)備時(shí),攻擊者甚至可以通過(guò)這些腳本的幫助繞過(guò)防火墻的過(guò)濾和攔截.

      (1)sqlmap向目標(biāo)服務(wù)器寫(xiě)文件.sqlmap向目標(biāo)服務(wù)器寫(xiě)文件的命令格式是sqlmap-u"url地址"--file-write="本地文件"--file-dest="遠(yuǎn)程文件",如圖7所示.

      圖7 sqlmap寫(xiě)文件的命令參數(shù)

      如圖8所示,sqlmap成功將本地的1.php寫(xiě)入到目標(biāo)服務(wù)器的C盤(pán)根目錄下,并命名成了shell.php.在實(shí)際的滲透測(cè)試過(guò)程中,1.php通常是攻擊者預(yù)備好的木馬文件,利用SQL注入上傳到目標(biāo)服務(wù)器上以后,可以直接獲得目標(biāo)服務(wù)器的控制權(quán).

      圖8 寫(xiě)文件

      (2)獲取操作系統(tǒng)的shell.sqlmap獲取操作系統(tǒng)shell的命令格式是sqlmap-u"url地址"--os-shell,如圖9所示.

      圖9 sqlmap獲取shell的命令參數(shù)

      圖10 執(zhí)行系統(tǒng)命令

      如圖10所示,sqlmap已經(jīng)獲取到了操作系統(tǒng)的shell,由于數(shù)據(jù)庫(kù)用戶的權(quán)限比較大,甚至可以直接使用net user命令添加系統(tǒng)用戶,至此目標(biāo)服務(wù)器已經(jīng)完全被控制了.

      1.3 SQL注入的防御

      SQL注入的防御,首先要從代碼層面入手,SQL注入產(chǎn)生的根本原因是用戶可以輸入自定義的SQL語(yǔ)句.程序在處理用戶的輸入時(shí),必須對(duì)輸入的內(nèi)容進(jìn)行檢查,過(guò)濾其中包含的特殊字符,或者對(duì)特殊字符進(jìn)行轉(zhuǎn)義.開(kāi)發(fā)人員需要重點(diǎn)關(guān)注的關(guān)鍵字和特殊字符如下.

      (1)sql語(yǔ)句關(guān)鍵字:and、or、select、from、where等.

      (2)sql語(yǔ)句特殊字符:?jiǎn)我?hào)、雙引號(hào)、分號(hào)等.

      另一方面可以從應(yīng)用層防止SQL注入攻擊,目前國(guó)內(nèi)主流的安全廠商都有一些專業(yè)的Web應(yīng)用防護(hù)設(shè)備,例如綠盟科技的WAF with MSS,啟明星辰的天清Web應(yīng)用安全網(wǎng)關(guān)等.這些WAF設(shè)備自身定義了許多SQL注入過(guò)濾規(guī)則,攻擊者輸入的危險(xiǎn)字符會(huì)先經(jīng)過(guò)應(yīng)用層的WAF設(shè)備,再提交給Web的后端數(shù)據(jù)庫(kù),一定程度地降低了Web應(yīng)用的安全風(fēng)險(xiǎn).

      最后,Web站點(diǎn)接入的數(shù)據(jù)庫(kù)應(yīng)遵循用戶角色最小權(quán)限原則[5],針對(duì)不同類型的操作,創(chuàng)建對(duì)應(yīng)權(quán)限的數(shù)據(jù)庫(kù)用戶,最大限度地降低SQL注入的危害.

      2 XSS跨站滲透測(cè)試與分析

      當(dāng)用戶訪問(wèn)網(wǎng)頁(yè)時(shí),攻擊代碼在用戶的瀏覽器上被執(zhí)行,就形成了一次XSS跨站腳本攻擊.XSS跨站攻擊危害的主要是Web用戶,并不會(huì)直接危害Web服務(wù)器[6].根據(jù)XSS漏洞的原理可以將XSS跨站攻擊劃分成反射性XSS和存儲(chǔ)型XSS,對(duì)于反射性XSS,攻擊者需要欺騙用戶點(diǎn)擊一個(gè)惡意URL才能攻擊成功[7].存儲(chǔ)型XSS的危害相對(duì)來(lái)說(shuō)更大一些,攻擊者提交的惡意代碼,會(huì)被Web服務(wù)器端接收并存儲(chǔ),訪問(wèn)該網(wǎng)頁(yè)的用戶,他們的瀏覽器會(huì)執(zhí)行這段惡意代碼.

      2.1 反射性XSS漏洞測(cè)試

      首先將DVWA的安全等級(jí)設(shè)置為低,然后打開(kāi)反射性XSS頁(yè)面.在輸入框中輸入一串JavaScript代碼,如圖11,點(diǎn)擊提交后頁(yè)面的變化如圖12所示.在Javascript語(yǔ)言中,alert函數(shù)的作用是彈出對(duì)話框,因此這里在頁(yè)面上輸出了一個(gè)值為3的對(duì)話框,說(shuō)明提交的Javascript腳本代碼在瀏覽器上執(zhí)行了,以上過(guò)程就觸發(fā)了一次跨站腳本攻擊.在實(shí)際的滲透測(cè)試中,XSS不僅僅是彈出一個(gè)對(duì)話框這么簡(jiǎn)單.攻擊者往往會(huì)精心編寫(xiě)一些攻擊代碼,或者使用互聯(lián)網(wǎng)上的XSS攻擊平臺(tái)進(jìn)行攻擊,Javascript的功能越強(qiáng)大,XSS漏洞的危害就越大.

      圖11 測(cè)試語(yǔ)句

      圖12 彈框

      2.2 存儲(chǔ)型XSS漏洞測(cè)試

      打開(kāi)存儲(chǔ)型XSS頁(yè)面,看到一個(gè)用戶留言板,我們?cè)谙⒖蛑休斎胍淮甁avascript代碼,如圖13所示,然后點(diǎn)擊提交,頁(yè)面的變化如圖14所示.

      圖13 測(cè)試語(yǔ)句

      圖14 彈出cookie值

      這里使用到了Javascript中document對(duì)象的cookie屬性,結(jié)合alert函數(shù)將已登錄用戶的cookie值彈出.從返回結(jié)果可以看出,輸入的Javascript代碼被執(zhí)行了.而且輸入的內(nèi)容已經(jīng)被存儲(chǔ)到數(shù)據(jù)庫(kù)中,每當(dāng)有人瀏覽該用戶的留言時(shí),都會(huì)在他的瀏覽器上執(zhí)行攻擊者插入的Javascript代碼.一些用戶量大的論壇或者新聞?wù)军c(diǎn),一旦出現(xiàn)存儲(chǔ)型XSS漏洞,很有可能造成大量用戶的身份認(rèn)證信息泄露,危害很大.

      2.3 使用burpsuite測(cè)試XSS漏洞

      burpsuite是Java語(yǔ)言編寫(xiě)的一款web應(yīng)用攻擊平臺(tái),它是Web安全測(cè)試者最常用的工具.burpsuite自身相當(dāng)于一個(gè)代理服務(wù)器,用戶通過(guò)瀏覽器訪問(wèn)Web站點(diǎn)時(shí),流量會(huì)先經(jīng)過(guò)burpsuite,再由burpsuite將流量發(fā)送給目標(biāo)服務(wù)器,因此在流量傳遞的過(guò)程中,攻擊者可以對(duì)流量進(jìn)行分析和修改.除此之外,burpsuite中還集成了許多的功能模塊,例如中繼模塊、掃描模塊、爬蟲(chóng)模塊、編碼模塊等等,并且各個(gè)模塊之間是互相聯(lián)通的.在XSS漏洞的挖掘過(guò)程中,黑客通常會(huì)使用到burpsuite的中繼repeater模塊,通過(guò)不斷地修改需要提交的數(shù)據(jù)包,來(lái)對(duì)XSS漏洞進(jìn)行檢測(cè)和利用.

      (1)XSS繞過(guò)DVWA中級(jí)安全級(jí)別檢查.首先打開(kāi)burpsuite,將代理模塊配置成監(jiān)聽(tīng)本機(jī)的8080端口,如圖15所示.

      圖15 burp代理

      然后將瀏覽器的網(wǎng)絡(luò)代理設(shè)置成burpsuite所在的主機(jī),這樣用戶通過(guò)瀏覽器訪問(wèn)web站點(diǎn)時(shí),流量就會(huì)先流經(jīng)burpsuite.

      接下來(lái)將DVWA的安全級(jí)別設(shè)置為中,打開(kāi)反射性XSS頁(yè)面,在輸入框內(nèi)隨便輸入一串字符123a,點(diǎn)擊提交后,burpsuite攔截到了本次的請(qǐng)求,將請(qǐng)求包發(fā)送到repeater模塊,然后點(diǎn)擊Go可以發(fā)送本次攔截到的數(shù)據(jù)包,如圖16所示.

      圖16 repeater模塊

      在repeater模塊中,可以不斷地更改要發(fā)送的數(shù)據(jù)包,然后在response響應(yīng)包中查找提交的內(nèi)容.如果提交的Javascript代碼在響應(yīng)包中能被查找到,則證明此處存在XSS漏洞.經(jīng)過(guò)測(cè)試發(fā)現(xiàn),DVWA的中級(jí)安全級(jí)別過(guò)濾了Javascript關(guān)鍵字,但是可以變換大小寫(xiě)繞過(guò)檢查.最終通過(guò)提交<Script>alert(3)</Script>,成功觸發(fā)了一次XSS攻擊,如圖17所示.

      圖17 大小寫(xiě)變換

      (2)XSS繞過(guò)DVWA高安全級(jí)別檢查.將DVWA的安全級(jí)別設(shè)置為高,打開(kāi)反射性XSS頁(yè)面,同樣將數(shù)據(jù)包發(fā)送到burpsuite的repeater模塊下.經(jīng)過(guò)測(cè)試發(fā)現(xiàn),高安全級(jí)別下script標(biāo)簽的大小寫(xiě)都被過(guò)濾了.雖然無(wú)法通過(guò)javascript插入XSS代碼,但是可以使用html中的圖片標(biāo)簽img,配合標(biāo)簽的onerror事件成功觸發(fā)XSS攻擊,如圖18所示.

      圖18 圖片標(biāo)簽

      通過(guò)burpsuite對(duì)以上三個(gè)不同安全級(jí)別的DVWA XSS跨站滲透測(cè)試,可以看出burpsuite通過(guò)不斷分析、修改數(shù)據(jù)包,從而繞過(guò)Web應(yīng)用程序的檢測(cè)和過(guò)濾.

      2.4 XSS攻擊的防御

      XSS跨站腳本攻擊和SQL注入類似,都是因?yàn)橛脩糨斎肓朔欠ㄗ址?,所以最根本的防御方法就是?duì)用戶的輸入進(jìn)行過(guò)濾.在HTML超文本標(biāo)記語(yǔ)言中,>、<、/、”都是比較有特殊意義的字符,在程序的代碼中應(yīng)該禁止用戶提交這些字符.XSS問(wèn)題產(chǎn)生的關(guān)鍵是輸入和輸出,有時(shí)用戶輸入的值可能有多個(gè)輸出點(diǎn),所以不僅需要在輸入點(diǎn)進(jìn)行過(guò)濾,在各個(gè)輸出點(diǎn)也要進(jìn)行嚴(yán)格的檢查.另外微軟公司的IE瀏覽器在Internet Explorer 6 SP1時(shí)引入了一項(xiàng)http-only擴(kuò)展,可以攔截客戶端腳本操作cookie值,目前所有主流的瀏覽器都支持了http-only,使用瀏覽器的http-only特性可以有效防御XSS cookie劫持.

      3 上傳漏洞滲透測(cè)試與分析

      上傳漏洞也是Web安全測(cè)試中經(jīng)常遇到的一種漏洞類型,在Web技術(shù)發(fā)展的早期,黑客們非常喜歡利用上傳漏洞對(duì)Web站點(diǎn)發(fā)起攻擊.許多網(wǎng)站都會(huì)有一些文件上傳點(diǎn),例如上傳附件、上傳用戶頭像等.如果開(kāi)發(fā)人員沒(méi)有對(duì)用戶上傳的文件類型進(jìn)行校驗(yàn),攻擊者可以上傳一些惡意的代碼文件,獲得Web站點(diǎn)的控制權(quán).針對(duì)文件上傳漏洞,瀏覽器端的過(guò)濾是沒(méi)有作用的.攻擊者通過(guò)修改Javascript代碼,或者直接禁用網(wǎng)站的Javascript腳本功能,可以很輕松地繞過(guò)瀏覽器的過(guò)濾.

      3.1 直接上傳腳本文件

      將DVWA的安全級(jí)別設(shè)置為低,打開(kāi)文件上傳的頁(yè)面,選擇本地的3.php進(jìn)行上傳,由于服務(wù)器沒(méi)有對(duì)文件的擴(kuò)展名進(jìn)行校驗(yàn),所以成功上傳了php格式的文件,如圖19所示.

      圖19 成功上傳

      3.2 修改MIME類型實(shí)現(xiàn)上傳

      將DVWA的安全級(jí)別設(shè)置為中,打開(kāi)文件上傳的頁(yè)面.中級(jí)安全級(jí)別DVWA的代碼對(duì)上傳點(diǎn)進(jìn)行過(guò)濾,僅允許上傳jpeg或png格式的文件,所以3.php無(wú)法直接上傳成功,如圖20所示.

      圖20 僅允許上傳圖片

      接下來(lái)打開(kāi)burpsuite工具,攔截一次上傳請(qǐng)求.發(fā)現(xiàn)在html body中有一個(gè)Content-Type字段,用于定義文件的MIME類型.當(dāng)上傳php格式的文件時(shí),Content-Type字段的值為application/octet-stream,表示將文件以二進(jìn)制流的格式上傳,我們將其修改為圖片格式image/jpeg,如圖21所示,這一次成功地上傳了3.php.

      圖21 修改Content-Type

      3.3 %00截?cái)鄬?shí)現(xiàn)上傳

      另一種繞過(guò)上傳過(guò)濾的思路——%00截?cái)啵?].當(dāng)程序執(zhí)行到%00時(shí),會(huì)錯(cuò)誤地把它當(dāng)成結(jié)束符,所以后面的數(shù)據(jù)就被忽略了.例如把上傳的文件命名成3.php%00.jpg,服務(wù)器會(huì)誤認(rèn)為上傳的是圖片文件,但是執(zhí)行時(shí)卻是php腳本文件.

      通過(guò)burpsuite可以很輕松地實(shí)現(xiàn)%00截?cái)?,首先上傳一張圖片3.jpg,攔截?cái)?shù)據(jù)包后修改filename的值,注意這里需要將%00進(jìn)行URL解碼.修改完成后提交數(shù)據(jù)包,成功繞過(guò)了服務(wù)器端的檢查,如圖22所示.%00截?cái)嗍且环N非常經(jīng)典的攻擊手法,在與文件操作相關(guān)的地方都可以嘗試使用它,例如文件包含、文件上傳、文件下載等.

      圖22 截?cái)嗌蟼?/p>

      3.4 使用中國(guó)菜刀對(duì)上傳漏洞進(jìn)行利用

      在滲透測(cè)試中,攻擊者通常會(huì)利用上傳漏洞向目標(biāo)服務(wù)器上傳一句話木馬,再結(jié)合網(wǎng)站管理工具實(shí)現(xiàn)對(duì)目標(biāo)服務(wù)器的進(jìn)一步控制.中國(guó)菜刀就是一款專業(yè)的網(wǎng)站管理工具,它體積小巧且功能強(qiáng)大,支持asp、php、jsp等眾多類型的網(wǎng)站.

      下面使用中國(guó)菜刀,連接腳本文件獲得網(wǎng)站的webshell.首先將一句話木馬<?php@eval($_POST[‘world’]);?>寫(xiě)入3.php.再利用上傳漏洞將3.php上傳到目標(biāo)服務(wù)器,打開(kāi)中國(guó)菜刀客戶端,連接3.php,連接密碼為world,最終可以獲得網(wǎng)站的webshell,如圖23所示.

      圖23 獲得webshell

      中國(guó)菜刀還支持許多第三方功能,例如文件管理、數(shù)據(jù)庫(kù)管理、虛擬終端等,每種功能都有特定的使用場(chǎng)景,給安全滲透測(cè)試帶來(lái)了很大的便利.

      3.5 上傳漏洞的防御

      上傳漏洞的危害雖然很大,但是只要配置正確,就可以設(shè)計(jì)出安全的文件上傳點(diǎn),以下提供幾種上傳漏洞的防御思路[8].

      (1)使用白名單的方式,嚴(yán)格判斷文件的后綴名以及MIME類型.

      (2)將上傳后的目錄和文件命名成隨機(jī)數(shù).

      (3)服務(wù)器端存放文件的目錄設(shè)置成只讀的權(quán)限,限制文件的執(zhí)行.

      通過(guò)以上幾種方法,可以有效地防止上傳漏洞的發(fā)生.

      4 邏輯漏洞滲透測(cè)試與分析

      邏輯漏洞是一種新型Web安全漏洞,自出現(xiàn)以來(lái),迅速成為黑客的主要攻擊目標(biāo).它是一種業(yè)務(wù)處理流程設(shè)計(jì)缺陷,主要發(fā)生在Web的業(yè)務(wù)流程中.傳統(tǒng)的安全測(cè)試主要依靠漏洞類型的自動(dòng)化掃描檢測(cè),這種方式往往容易忽略業(yè)務(wù)系統(tǒng)的邏輯漏洞,而且傳統(tǒng)的安全設(shè)備也很難對(duì)邏輯漏洞進(jìn)行防御.國(guó)內(nèi)很多大型互聯(lián)網(wǎng)廠商都曾被曝光過(guò)邏輯漏洞,例如知乎任意用戶登錄,新浪任意密碼重置,淘寶網(wǎng)支付漏洞等等,企業(yè)很可能因?yàn)楹?jiǎn)單的業(yè)務(wù)邏輯漏洞而蒙受巨大損失.

      4.1 支付漏洞

      目前,在線消費(fèi)和支付已遍布人們生活的各個(gè)方面.由于涉及到資金方面的問(wèn)題,一旦存在漏洞,對(duì)個(gè)人和企業(yè)來(lái)說(shuō)危害非常大.

      訂單金額篡改是一種常見(jiàn)的支付漏洞.購(gòu)買(mǎi)商品一般分為三個(gè)步驟:填寫(xiě)信息、提交訂單、付款.在最后一步付款時(shí)進(jìn)行抓包嘗試修改訂單的金額,如果程序沒(méi)有對(duì)支付的金額做校驗(yàn),那么就可以低價(jià)買(mǎi)到高價(jià)的商品.

      不僅訂單金額,訂單數(shù)量也是可以篡改的.在支付的過(guò)程中,最終的價(jià)格是由商品的數(shù)量決定的,比如:數(shù)量為1時(shí)價(jià)格為5元,數(shù)量為2時(shí)價(jià)格為10元,那么當(dāng)攻擊者修改商品的數(shù)量為負(fù)數(shù)時(shí),最終的金額也會(huì)變?yōu)樨?fù)數(shù),賬戶里的錢(qián)不但沒(méi)有減少反而增加了.

      還有一種支付漏洞是訂單請(qǐng)求重放,攻擊者通過(guò)攔截商品購(gòu)買(mǎi)成功時(shí)的數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行請(qǐng)求重放.如果程序沒(méi)有對(duì)訂單多次重復(fù)提交進(jìn)行限制,那么就會(huì)導(dǎo)致購(gòu)買(mǎi)商品一直增加.

      4.2 越權(quán)漏洞

      越權(quán)漏洞指攻擊者請(qǐng)求操作某條數(shù)據(jù)時(shí),Web應(yīng)用程序沒(méi)有對(duì)該數(shù)據(jù)的所有者進(jìn)行判斷,導(dǎo)致攻擊者可以自行修改參數(shù),操作不屬于自己的數(shù)據(jù).越權(quán)漏洞在增、刪、改、查的位置都有可能發(fā)生,一般分為水平越權(quán)和垂直越權(quán).水平越權(quán)是相同權(quán)限用戶之間的越權(quán),比如使用A學(xué)生的賬號(hào)操作B學(xué)生的賬號(hào)就屬于水平越權(quán).而垂直越權(quán)是不同權(quán)限級(jí)別用戶之間的越權(quán),比如使用學(xué)生賬號(hào)操作教師賬號(hào),或者普通用戶訪問(wèn)管理員用戶的資源,都屬于垂直越權(quán).

      4.3 密碼重置漏洞

      為了防止用戶因忘記密碼而無(wú)法登錄,大部分網(wǎng)站都提供了找回密碼的功能.常見(jiàn)的找回密碼方式有:手機(jī)驗(yàn)證碼、郵箱、密保問(wèn)題等.以上這些方式如果在邏輯設(shè)計(jì)上存在缺陷,就有可能存在密碼重置漏洞.

      使用手機(jī)驗(yàn)證碼找回密碼時(shí),如果用戶的請(qǐng)求頁(yè)面不是直接提交到后臺(tái)服務(wù)器,而是先經(jīng)中間節(jié)點(diǎn)再到達(dá)后臺(tái)服務(wù)器,并且后臺(tái)服務(wù)器未對(duì)用戶的手機(jī)號(hào)進(jìn)行校驗(yàn),中間節(jié)點(diǎn)就可以通過(guò)修改手機(jī)號(hào),給指定的手機(jī)號(hào)發(fā)送驗(yàn)證碼,進(jìn)而實(shí)現(xiàn)對(duì)任意用戶的密碼重置.有時(shí)候即便驗(yàn)證了用戶的手機(jī)號(hào),但是由于驗(yàn)證碼的位數(shù)較短,攻擊者通過(guò)暴力窮舉也能很容易獲取到正確的驗(yàn)證碼,如一個(gè)4位純數(shù)字的驗(yàn)證碼可以在幾分鐘之內(nèi)枚舉一遍.

      使用郵箱找回密碼時(shí),大部分網(wǎng)站是向郵箱發(fā)送一個(gè)找回密碼的鏈接,用戶在瀏覽器上訪問(wèn)該鏈接就可以進(jìn)入重置密碼的頁(yè)面.找回密碼的鏈接中通常會(huì)加入校驗(yàn)參數(shù),我們稱之為token.通過(guò)對(duì)比token值與服務(wù)器端生成的值是否匹配來(lái)判斷當(dāng)前找回密碼的鏈接是否有效,但是如果這個(gè)token值不是隨機(jī)生成的就會(huì)造成安全問(wèn)題.類似于這種弱token的現(xiàn)象有很多,例如使用用戶名的md5值或base64編碼作為token值,攻擊者可以很容易地構(gòu)造token值重置任意用戶的密碼.

      4.4 邏輯漏洞的防御

      邏輯漏洞與公司的業(yè)務(wù)是緊密相關(guān)的,要想防御邏輯漏洞,必須關(guān)注業(yè)務(wù)系統(tǒng)中每一個(gè)環(huán)節(jié)可能存在的安全風(fēng)險(xiǎn).

      支付環(huán)節(jié)中,把與金錢(qián)、數(shù)量有關(guān)的參數(shù)做數(shù)字簽名,可以有效地避免數(shù)據(jù)被篡改.在找回密碼環(huán)節(jié),如果需要客戶端輸入手機(jī)號(hào),應(yīng)該嚴(yán)格校驗(yàn)手機(jī)號(hào)是否和登錄者的身份一致,還需要考慮驗(yàn)證碼是否能被暴力破解,一般建議驗(yàn)證碼的長(zhǎng)度為6位,并且設(shè)置驗(yàn)證碼的有效時(shí)間和失敗嘗試的次數(shù).另外對(duì)于郵箱找回密碼的情況,token值不能使用時(shí)間戳或者有規(guī)律可尋的數(shù)字字符,應(yīng)當(dāng)使用復(fù)雜的token生成機(jī)制,讓攻擊者無(wú)法推測(cè)出具體的值.最后,對(duì)于越權(quán)漏洞,應(yīng)該驗(yàn)證一切來(lái)自客戶端的參數(shù),尤其是和用戶權(quán)限相關(guān)的參數(shù).

      5 總結(jié)

      隨著信息安全知識(shí)的普及,越來(lái)越多的企業(yè)逐漸認(rèn)識(shí)到信息安全的重要性.Web安全是信息安全領(lǐng)域的一個(gè)重要分支,目前也是一個(gè)相對(duì)熱門(mén)的就業(yè)方向.由于安全事件的發(fā)生是不可預(yù)期的,許多企業(yè)都配備了專職的Web安全技術(shù)人員,在不影響業(yè)務(wù)系統(tǒng)正常運(yùn)行的前提下,定期對(duì)公司的Web應(yīng)用系統(tǒng)進(jìn)行滲透測(cè)試,發(fā)現(xiàn)被測(cè)系統(tǒng)中可被利用的安全隱患.

      本文從一個(gè)滲透測(cè)試者的角度出發(fā),在個(gè)人電腦上搭建了一個(gè)Web站點(diǎn),然后對(duì)其進(jìn)行了漏洞的測(cè)試和利用.這些測(cè)試方法不僅可以作為Web安全評(píng)估的方法,也可以作為Web安全課程教學(xué)的實(shí)踐教學(xué)方法,引導(dǎo)學(xué)生通過(guò)個(gè)人搭建環(huán)境,完成Web安全的研究和分析.

      猜你喜歡
      安全級(jí)別攻擊者瀏覽器
      基于微分博弈的追逃問(wèn)題最優(yōu)策略設(shè)計(jì)
      基于Packet tracer防火墻的基本配置仿真實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)
      軟件(2021年2期)2021-08-19 20:55:32
      反瀏覽器指紋追蹤
      電子制作(2019年10期)2019-06-17 11:45:14
      正面迎接批判
      愛(ài)你(2018年16期)2018-06-21 03:28:44
      環(huán)球?yàn)g覽器
      再見(jiàn),那些年我們嘲笑過(guò)的IE瀏覽器
      有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
      解除腳本限制導(dǎo)致的163郵箱無(wú)法登錄
      電腦迷(2015年7期)2015-05-30 04:50:35
      Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
      數(shù)據(jù)庫(kù)加密技術(shù)及其應(yīng)用研究
      新媒體研究(2014年8期)2014-07-24 15:44:06
      张家口市| 巴中市| 尼玛县| 光泽县| 汪清县| 南阳市| 临朐县| 阳东县| 文山县| 靖边县| 陵水| 广宁县| 大邑县| 荔浦县| 浪卡子县| 韩城市| 改则县| 泾阳县| 中卫市| 尉犁县| 福泉市| 清丰县| 开封县| 永和县| 泾川县| 双峰县| 德清县| 喀什市| 夏邑县| 南和县| 渭南市| 岢岚县| 射洪县| 句容市| 乡城县| 龙井市| 青川县| 清河县| 郑州市| 延边| 常德市|