亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Web的酒店點評系統(tǒng)安全測試研究

        2016-12-26 02:14:43乾,侯
        電子科技 2016年12期
        關鍵詞:腳本攻擊者漏洞

        蘇 乾,侯 俊

        (上海理工大學 光電信息及計算機工程學院,上海 200093)

        ?

        基于Web的酒店點評系統(tǒng)安全測試研究

        蘇 乾,侯 俊

        (上海理工大學 光電信息及計算機工程學院,上海 200093)

        為防范基于Web應用程序的漏洞攻擊,文中對一個Web頁面的酒店點評系統(tǒng)安全性能進行了測試。研究了該酒店點評系統(tǒng)在運行中各個環(huán)節(jié)上出現的Web應用程序漏洞。針對其中3種主要漏洞:SQL注入、跨站腳本攻擊及跨站請求偽造,根據其產生原理和攻擊過程,提出了過濾特殊字符和加密關鍵傳遞參數的防御方法,并給出相應的程序代碼。測試結果顯示,該酒店點評系統(tǒng)能有效地防范Web應用程序漏洞,提高了系統(tǒng)的安全性。

        Web酒店點評系統(tǒng);SQL注入;跨站腳本攻擊;跨站請求偽造

        漏洞是指信息系統(tǒng)中的軟件、硬件或通信協議中存在缺陷或不適當的配置,從而可使攻擊者在未授權的情況下訪問或破壞系統(tǒng),導致信息系統(tǒng)面臨安全風險[1]。2014年,CNVD(國家信息安全漏洞共享平臺)收集新增漏洞9 163個,包括高危漏洞2 394個(占26.1%),中危漏洞6 032個(占65.8%),低危漏洞737個(占8.1%)。最新數據顯示,僅2015年11月,CNVD共協調處置了2 311起涉及我國政府部門以及銀行、民航等重要信息系統(tǒng)部門以及電信、傳媒、公共衛(wèi)生、敃育等相關行業(yè)的漏洞事件[2],可見對Web漏洞的研究和防范迫在眉睫。

        本文設計了一個用php實現的Web酒店用戶評論展示系統(tǒng),基本頁面展示近期用戶點評,允許用戶在游客狀態(tài)下填寫評論后發(fā)表,經系統(tǒng)過濾保存評論內容后在頁面展示,另外選擇管理員登陸,在驗證賬號密碼后可執(zhí)行對點評的刪除等操作,該系統(tǒng)功能實現流程如圖1所示。

        圖1 實現功能流程圖

        該系統(tǒng)的點評留言功能及登錄功能在互聯網上得到了廣泛應用,同時也存在多處高危漏洞,這些漏洞引起的安全隱患,會暴露用戶的詳細信息、允許惡意用戶執(zhí)行任意的數據庫查詢,甚至允許通過遠程命令行訪問服務器,從而造成對Web 應用程序的破壞或用戶隱私信息被竊取。本文分析漏洞出現的原理,對該酒店點評系統(tǒng)進行測試,改進代碼,以實現能對漏洞進行防范的功能。

        1 SQL注入攻擊及安全防范

        SQL注入(SQL Injection)攻擊是指惡意用戶輸入用來影響被執(zhí)行的SQL腳本[3]。由于Web端應用程序沒有對用戶輸入數據的合法性進行判斷,數據服務器運行惡意SQL命令后,通過和數據庫交互從而獲得私密信息,因此使數據庫信息遭到破壞。

        一種腳本注入式的攻擊方式是攻擊者在Web頁面的輸入區(qū)域,如表單的輸入區(qū)域或頁面請求查詢的字符串,輸入別有用心構造的SQL語句插入特殊字符和指令,提交后的數據會被數據服務器誤認為是將要執(zhí)行的指令語句。

        在本酒店點評系統(tǒng)中,管理員需在Web應用程序的登錄驗證(login)頁面登陸后才能對用戶點評進行刪除等操作, 管理員需要輸入用戶名(username)以及對應的密碼(password)進行登錄操作,應用程序通過用戶提交的這兩個參數來進行操作,其原理是通過查找原本建立好userstable中的用戶名(username)和匹配密碼(password)的結果進行授權訪問,經典的SQL指令形式為

        select*from userstable where username=’admin’ and password=’admin’

        若攻擊者給username賦值“abc’ or 1=1 -- ”,將其輸入提交給服務器后,服務器將執(zhí)行由其構造出來的指令,SQL指令形式變成

        select*from userstable where username=’abc’ or 1=1 -- and password=’abc’

        該語句中執(zhí)行了兩個判斷,只要其中一個條件成立,則返回正確的授權,同時由于語句中的“1=1”在邏輯上是永遠成立的,“--”表示后面所有的語句為注釋語句,因此這語句是恒成立的,導致應用程序不能正確驗證用戶身份,會錯誤授權攻擊者訪問。

        為了防范此類攻擊方式,系統(tǒng)采用對輸入用戶名信息進行過濾的方法,其詳細代碼如下

        Function Inputcheck()

        { if (instr(request(“$username”),”’”)>0 or instr(request(“$username”),”or”)>0) then

        reponse.write””

        response.end

        end if

        }

        此段功能函數對輸入的用戶名當中是否含有“’”和“or”字符進行識別,若存在非法字符則返回相關提示,以防止用戶惡意利用此漏洞獲得管理員登錄權限。

        另一種攻擊方式是基于當一個查詢指令被拒絕后,數據庫會返回包含有調試信息的錯誤消息,從而使攻擊者可通過返回的信息得到應用程序的數據庫以及漏洞參數。通常通過輸入不匹配的URL進行攻擊,如

        正確URL:http://www.hotel.com/manage/?id =2

        SQL注入:http://www.hotel.com/manage/?id =2’

        此時如果應用程序返回錯誤信息

        Select name FROM userstable WHERE id=2’

        則攻擊者可從返回的信息中得到:username、userstable、id字段名等私密信息從而進行更為精確的漏洞攻擊。為防范此類型的漏洞攻擊,需要對HTTP請求的參數進行檢測,本系統(tǒng)中添加了一段用于過濾請求參數的代碼,存儲于一個公共的php文件中便于其他文件的調用,其代碼如下

        foreach($_POST as $post_sql>=$post_post)

        { if(is_numeric($var_getvalues))

        $_POST[strtolower($post_sql)] = intval($post_post);

        else

        $_POST[strtolower($post_sql)] = addslashes($post_post);

        }

        foreach($_GET as $get_sql>=$get_get)

        { if(is_numeric($var_getvalues))

        $_GET[strtolower($get_sql)] = intval($get_get);

        else

        $_GET[strtolower($get_sql)] = addslashes($get_get);

        }?>

        當用戶向訪問的Web頁面提交參數時,通過上述代碼,利用intval()與addslashes()分別對提交的數據信息$_POST和$_GET中的整形參數及字符型參數進行轉換,能有效地防止SQL參數注入的攻擊。

        SQL注入漏洞對Web應用造成損壞巨大,同時也有相應的檢查措施,分為入侵前的檢測和入侵后的檢測。入侵前的檢測可通過手工方式,也可使用SQL注入軟件,主要目的是為了預防SQL注入攻擊。而對于入侵后的檢測,主要是查看審計日志,SQL注入漏洞攻擊成功后,會在IIS日志和數據庫中留下“痕跡”。比如在Web服務器中啟用日志記錄,則IIS日志會記錄下訪問者的IP地址等信息,SQL注入通常會大量訪問一個頁面,通過查看日志文件的大小以及日志內容便可判斷是否曾經發(fā)生SQL注入攻擊[4]。

        對SQL注入的防御措施,主要從檢驗提交信息的有效性入手,主要總結如下幾個方面:限制數據輸入及查詢字符的長度,檢測關鍵字和特殊字符;將用戶輸入的危險字符進行過濾或轉義;去除代碼中的敏感信息;對數據信息進行封裝和加密處理;指定錯誤返回頁面以及限制數據庫的訪問權限等。

        2 跨站腳本攻擊及安全防范

        HTML是Web頁面的一種基本描述語言,同時HTML中也可嵌入其他的腳本語言,比如“”。當瀏覽器遇到起始標簽[5]。若用戶填寫了相關的內容提交,若沒有相應的過濾,就會導致跨站腳本XSS(Cross-Site Scripting Attack)漏洞的出現[6]。

        在本文的酒店點評系統(tǒng)中,發(fā)表點評功能對游客狀態(tài)的用戶開放,用戶在填寫點評后點擊發(fā)表,隨后將保存的點評展示在點評列表中,但若用戶惡意輸入一些腳本語言代碼,例如:,而系統(tǒng)沒有對點評內容沒有過濾,點擊發(fā)表評論后,系統(tǒng)并沒有把用戶輸入的代碼顯示在點評列表上,而是已執(zhí)行Java腳本語句的方式彈出消息框提示“warning!”。

        [7],XSS的實現過程如圖2所示。

        圖2 XSS漏洞攻擊流程

        根據HTML頁面引用用戶輸入的形式,XSS攻擊大致分為3類:存儲型的XSS、反射型的XSS和基于DOM的XSS[8-9]。

        存儲型的XSS(stored XSS),最常檢測的到漏洞出處就是類似留言、評論這種Web頁面。攻擊者通常直接將腳本代碼輸入到被攻擊Web站點的表格中,當其他用戶來訪問這個頁面時,輸入的腳本并非以靜態(tài)數據顯示,而是作為指令代碼開始執(zhí)行。

        唐山市21個水功能區(qū)中10個水功能區(qū)設為禁止設置入河排污口水域:大黑汀水庫水源地保護區(qū);潵河河北承德、唐山保留區(qū);沙河河北秦皇島飲用水源區(qū);龍灣河河北唐山飲用水源區(qū);泉水河河北唐山飲用水源區(qū);陡河河北唐山飲用水源區(qū);還鄉(xiāng)河河北唐山飲用水源區(qū)1;引灤專線天津水源地保護區(qū)1;小青龍河北唐山農業(yè)用水區(qū);還鄉(xiāng)河河北唐山飲用水源區(qū)2。

        反射型XSS(reflected XSS),就是將腳本文件嵌入到URL地址的CGI參數中,攻擊者將鏈接發(fā)送給潛在的受害者;當受害者點擊鏈接時,頁面被下載,但其中的內容被嵌入在URL中的腳本修改了。在此過程中,只有用戶在點擊了被篡改過的鏈接時,頁面載入過程中才執(zhí)行完成。

        基于DOM 的XSS攻擊,其是通過修改Web頁面DOM節(jié)點數據信息而形成的漏洞攻擊。例如一段JavaScript代碼訪問一個URL請求參數并使用此信息添加到自己的頁面,但這個信息未使用HTML的實體編碼,就可能出現XSS漏洞。

        XSS攻擊所攻擊的主要目標并不是Web服務器本身,而是登錄網站的用戶,其一般不會奪取訪問Web服務器的管理權限,XSS攻擊的目的是:(1)劫持用戶的Web行為,監(jiān)視瀏覽歷史、表單輸入、發(fā)送接受的數據,或將目標站點重新定向到釣魚網站;(2)竊取用戶Cookie,獲取用戶身份,從而獲得對網站的操作權限;(3)目前最多的XSS蠕蟲攻擊,可用來打廣告、刷流量、掛木馬、破環(huán)網站數據等[10]。

        因此,需要在發(fā)表點評的系統(tǒng)中加入能有效防御XSS漏洞的手段,本例采用str_replace()函數對頁面的輸入輸出內容中的特殊字符進行編碼,代碼如下

        FUNCTION code_filter($cMyString)

        { $cMyString = trim($cMyString);

        $cMyString = str_replace(“"”,”””, $cMyString);

        $cMyString = str_replace (“@@is”,””,$ cMyString);

        $cMyString = str_replace (“@@is”,””,$ cMyString);

        $cMyString = str_replace (“@@is”,””,$ cMyString);

        ……

        $cMyString = nl2br($cMyString);

        Return $cMyString;

        }

        將輸入輸出內容出的“””、 “&”等特殊字符以及其他腳本代碼進行變換編碼,防止了利用腳本語言進行的XSS漏洞攻擊。

        此外,安全措施還包括以下幾個方面:對于將保存的點評的ID等變量,需檢查變量初始化,明確變量類型;對于用戶提交評論的內容,需添加格式、長度和范圍的驗證程序;添加用于過濾所有從動態(tài)頁面輸入特殊字符的IIS組件。

        3 跨站請求偽造及安全防范

        跨站請求偽造(Cross-Site Request Forgery,CSRF),是一種對網站的惡意利用,其是通過偽裝來自受信任用戶的請求來利用受信任的網站,CSRF攻擊往往不太流行和難以防范,所以被認為比XSS更具有危險性[11]。

        CSRF攻擊通過使應用程序相信此活動的請求來自應用程序的一個可信用戶[12],其一般過程如圖3所示。

        圖3 正常用戶訪問站點

        首先Web站點和瀏覽器之間建立了相互認證的會話,之后只要是通過這個瀏覽器的認證的會話所發(fā)送的請求,都被視作可信任的請求。此時,惡意站點偽造有效請求,發(fā)生一個CSRF攻擊[13],如圖4所示。

        圖4 遭遇CSRF漏洞攻擊

        發(fā)起攻擊的站點致使瀏覽器向Web站點發(fā)送一個請求,然而站點認為來自該瀏覽器的請求均是經過認證的有效請求,所以執(zhí)行這個“可信認的請求”。CSRF攻擊發(fā)生的根本原因是Web站點所驗證的是瀏覽器而非用戶本身,通常引發(fā)改變用戶口令,轉移金融財產等重大危機。

        在本酒店點評系統(tǒng)中,用戶登錄管理員后會獲得刪除一些點評的權限,若管理員需要刪除其中一條的點評,只需提交鏈接

        http://www.hotel.com/manage/delete.php?id =1

        delete.php?id=2>

        那么在管理員重新登錄刷新頁面之后,便等于提交了如下惡意鏈接

        http://www.hotel.com/manage/delete.php?id =2

        此時在管理員不知情的前提下把id為2的點評刪除了,從而實現了利用評論系統(tǒng)的CSRF漏洞進行的攻擊。

        為防范利用這類的漏洞的攻擊,本系統(tǒng)采用了與防御XSS漏洞攻擊一樣的方法,利用str_replace函數將類似標簽中的“<”、“>”進行過濾編碼,代碼如下

        $cMyString = str_replace(“<”,”<”, $cMyString);

        $cMyString = str_replace(“<”,”<”, $cMyString);

        $cMyString = str_replace(“>”,”>”, $cMyString);

        $cMyString = str_replace(“>”,”>”, $cMyString);

        將這些代碼加入到上述code_filter()功能函數當中后便能實現對利用標簽進行CSRF漏洞的攻擊。

        此外需對服務器端的安全防范:(1)GET方法只用于從服務器端讀取數據,POST方法用于向服務器端提交或者修改數據。僅使用POST方法提交和修改數據不能完全防御CSRF攻擊,但至少增加攻擊的難度[14];(2)限制驗證Cookie的到期時間,Cookie的合法時間越短,能利用Web應用程序的機會就越少;(3)在關鍵的服務端遠程響應請求之前,增加人機交互環(huán)節(jié),例如典型的圖片驗證碼,或者要求用戶提交額外的信息,可增加CSRF的攻擊難度,額外信息選擇無法預測或無法輕易獲得的。

        4 結束語

        該酒店點評系統(tǒng)中的留言和登錄等功能已在互聯網中得到廣泛的應用,經過加入相對應的Web應用程序漏洞的防范措施后,可以杜絕大部分針對Web應用程序漏洞攻擊的出現,該酒店管理系統(tǒng)的安全性能得到大幅提升。

        [1] 劉笑杭.SQL注入漏洞檢測研究[D].杭州:杭州電子科技大學,2014.

        [2] CNCERT. 2014年中國互聯網網絡安全報告[EB/OL].(2015-06-02) [2016-02-22]http://www.cert.org.cn/publish/main/46/index.html.

        [3] Chris Anley.Advanced SQL injection in SQL server applications[M].TX,USA:NGSSoftware Insight Security Research(NISR),2002.

        [4] 陳小兵,張漢煜,駱力明,等.SQL注入攻擊及其防范檢測技術研究[J].計算機工程與應用,2007,43(11):150-152.

        [5] 田俊峰,杜瑞忠,楊曉暉.網絡攻防原理與實踐[M].北京:高等教育出版社,2012.

        [6] Shar L K,Tan H B K.Auditing the XSS defence features implemented in web application programs[M].NY,USA:Let Software,2012.

        [7] 仇新梁,康迪,周濤.Web漏洞掃描系統(tǒng)設計[J].保密科學技術,2011(2):18-20.

        [8] 崔德友.淺析XSS腳本攻擊與防范策略[J].吉林廣播電視大學學報,2014(3):24-25.

        [9] Amit Klein. DOM based cross site scripting or XSS of the third kind[M].WK,USA:Web Appliction Security Consortium,2005.

        [10] 蔣志初,胡毅.一個WEB漏洞從發(fā)現到修補的實例分析[J].網絡安全技術與應用,2015(7):14-17.

        [11] 季凡,方勇,蒲偉,等.CSRF新型利用及防范技術研究[J].信息安全與通信保密,2013(3):75-76.

        [12] 肖紅. Web應用漏洞的分析和防御[D].西安:西安電子科技大學,2013.

        [13] Xiaoli Lin,Zavarsky P,Ruhl R,et al.Threat modeling for CSRF attacks[C].Japan:International Conference on Computational Science and Engineering,2009.

        [14] 張悅,楊學全.基于服務器端CSRF防御模塊的設計與實現[J].信息技術與信息化,2014(7):45-46.

        Testing and Solution on Security of Web Hotel Comment System

        SU Qian,HOU Jun

        (School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)

        To defend the attacks from Web application program vulnerabilities. This paper focuses on testing the security of a Web hotel comment system, at the same, studies three kinds of Web application program vulnerabilities: SQL injection, cross-site scripting attack and cross-site request forgery, which would occurs in the hotel comment system. Then it analyzes the occurrence principles and attacking processes of those Web application program vulnerabilities, and proposes a safety precaution and solution measure such as filter the special character and encode the transfer parameters. The results show that precaution and solution measure can defend the attacks from Web application program vulnerabilities effectively and enhance the security of a Web hotel comment system.

        Web hotel comment system; SQL injection; cross-site scripting attack; cross-site request forgery

        10.16180/j.cnki.issn1007-7820.2016.12.041

        2016- 02- 22

        蘇乾(1991-),男,碩士研究生。研究方向:計算機網絡及信息安全。

        TP277

        A

        1007-7820(2016)12-148-05

        猜你喜歡
        腳本攻擊者漏洞
        酒駕
        漏洞
        基于微分博弈的追逃問題最優(yōu)策略設計
        自動化學報(2021年8期)2021-09-28 07:20:18
        安奇奇與小cool 龍(第二回)
        數據庫系統(tǒng)shell腳本應用
        電子測試(2018年14期)2018-09-26 06:04:24
        正面迎接批判
        愛你(2018年16期)2018-06-21 03:28:44
        快樂假期
        中學生(2017年19期)2017-09-03 10:39:07
        三明:“兩票制”堵住加價漏洞
        漏洞在哪兒
        兒童時代(2016年6期)2016-09-14 04:54:43
        高鐵急救應補齊三漏洞
        久久精品国产69国产精品亚洲 | 传媒在线无码| 亚洲av精品一区二区三| 大量漂亮人妻被中出中文字幕| 品色堂永远免费| 亚洲av成人一区二区三区在线观看| 亚洲VR永久无码一区| 一本色道久久综合亚洲精品不 | 久久99国产亚洲高清| 国产伦一区二区三区久久| 草草影院ccyy国产日本欧美| 人妻少妇边接电话边娇喘| 欧美视频九九一区二区| 国产精品亚洲精品专区| 亚洲av色香蕉一区二区三区| 午夜一区欧美二区高清三区| 精品无吗国产一区二区三区av| 国产av一区二区制服丝袜美腿| 亚洲a∨无码精品色午夜| 内射中出无码护士在线| 亚洲成AV人久久| 日韩美女av一区二区| 在线天堂www中文| 国产一及毛片| 一区二区三区视频偷拍| 精品国产品香蕉在线| 无码国产一区二区三区四区| 欧美日本视频一区| 谷原希美中文字幕在线| 亚洲 卡通 欧美 制服 中文| 国产在线91观看免费观看| 国产av熟女一区二区三区蜜臀| 老妇高潮潮喷到猛进猛出| 亚洲av中文无码字幕色三| 国产精品女同久久久久久| 日本不卡的一区二区三区中文字幕| 中文乱码字慕人妻熟女人妻| 国产亚洲sss在线观看| 日本办公室三级在线观看| 国产免费a∨片在线软件| 老男人久久青草AV高清|