資源描述:
《web應(yīng)用程序漏洞發(fā)掘原理new》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、http://www.paper.edu.cnWEB應(yīng)用程序漏洞發(fā)掘原理黃瑋北京郵電大學(xué)信息工程學(xué)院,北京(100876)E-mail:huangwei1983@gmail.com摘要:Web應(yīng)用程序由于其良好的跨平臺性和交互性特點(diǎn),正在得到越來越普遍的應(yīng)用。伴隨著Web應(yīng)用程序發(fā)展的過程中,各種針對Web應(yīng)用程序的攻擊也在逐步的發(fā)展。本文就目前Web應(yīng)用程序所面臨的各種安全威脅從漏洞發(fā)掘的角度進(jìn)行了歸納和分析,從漏洞產(chǎn)生原因上去介紹構(gòu)建安全Web應(yīng)用程序需要注意的問題。關(guān)鍵詞:WEB應(yīng)用程序,漏洞,安全中圖分類號:TP3931.引言Web應(yīng)用程序在發(fā)展的開始僅僅局限
2、于靜態(tài)頁面的展示,用戶可以做的僅僅是“瀏覽網(wǎng)頁”。直到20世紀(jì)90年代初期開始,基于服務(wù)器端的腳本和CGI技術(shù)的發(fā)展,使得Web應(yīng)用第一次實(shí)現(xiàn)了用戶交互。今天我們所看到的和經(jīng)常使用的Web應(yīng)用程序,如Gmail,GoogleMaps,Blog等等,都得歸功于Web2.0技術(shù)帶給我們的全新的Web應(yīng)用程序用戶體驗(yàn)。圖1Web應(yīng)用發(fā)展簡史圖1簡要的總結(jié)了Web應(yīng)用程序從最初的靜態(tài)頁面到今天的Web2.0技術(shù)的發(fā)展歷程。從圖上我們可以看出,Web應(yīng)用程序發(fā)展的一個(gè)重要的趨勢就是越來越高的用戶交互性。不論是AJAX技術(shù)也好,還是Flash也罷,Web應(yīng)用程序從來都沒有像今天這
3、樣發(fā)展的越來越接近桌面應(yīng)用程序。更高的用戶輸入響應(yīng)速度,完善和靈活的用戶UI設(shè)計(jì),客戶端“0維護(hù)”成本,等等,越來越多的理由讓我們?nèi)テ占昂蛻?yīng)用最新的Web技術(shù)去獲得更高的用戶交互性體驗(yàn)。而作為Web2.0技術(shù)發(fā)展的基礎(chǔ),從微軟的ASP.NET到Sun的JSF框架,再到最新的PHP的Smarty模版技術(shù),“動態(tài)網(wǎng)頁”仍然將在今后很長一段時(shí)間內(nèi)主導(dǎo)Web應(yīng)用程-1-http://www.paper.edu.cn序的主流。然而,自從在Web應(yīng)用程序中引入了“交互性”,各種針對Web應(yīng)用程序的攻擊和漏洞利用也開始隨著“交互性”的發(fā)展而迅速發(fā)展。這里面既有Web應(yīng)用程序的基礎(chǔ)—
4、—HTTP協(xié)議和其他相關(guān)TCP/IP協(xié)議的脆弱性,也有Web應(yīng)用程序本身在編碼實(shí)現(xiàn)時(shí)候的不規(guī)范性,更有Web應(yīng)用程序部署和管理上的疏忽和大意原因。2.Web應(yīng)用程序風(fēng)險(xiǎn)分類及漏洞發(fā)掘原理[1]根據(jù)SANSInstitute2006年的一份最新的安全報(bào)告,在過去的一年中,互聯(lián)網(wǎng)上的安全攻擊目標(biāo)中,Web應(yīng)用程序已經(jīng)成為跨平臺的應(yīng)用程序中最頻繁遭受攻擊的對象。對比[2][3]2005和2004年的情況,Web應(yīng)用程序風(fēng)險(xiǎn)經(jīng)歷了從Web服務(wù)器的頻繁遭受攻擊,到針對PHP、ASP等動態(tài)腳本網(wǎng)頁技術(shù)本身的漏洞攻擊,再到現(xiàn)在的不局限于具體動態(tài)網(wǎng)頁實(shí)現(xiàn)技術(shù)的各種跨站腳本攻擊(XSS
5、)和各種數(shù)據(jù)注入攻擊(DataInjection),攻擊的目標(biāo)和手段不斷的變化,但基本的漏洞利用原理仍然無非是2個(gè)方面,一個(gè)就是Web應(yīng)用程序?qū)τ脩糨斎牒驼埱髤?shù)的校驗(yàn)漏洞,而另一個(gè)則是Web應(yīng)用服務(wù)部署和管理的缺乏安全意識和粗心大意。2.1.輸入和參數(shù)校驗(yàn)在各種Web應(yīng)用程序的漏洞利用中,排除Web應(yīng)用程序服務(wù)器本身的安全漏洞,對用戶提交的表單請求和GET請求中參數(shù)的過濾不嚴(yán)格導(dǎo)致的Web應(yīng)用程序漏洞構(gòu)成了當(dāng)今Web應(yīng)用程序漏洞利用的主要方式。下面重點(diǎn)討論各種可能的漏洞利用情況。2.1.1.緩沖區(qū)溢出漏洞這種漏洞利用多見于針對CGI腳本構(gòu)建的動態(tài)Web應(yīng)用程序,具體
6、的CGI腳本可能是C,漏洞利用一般是通過構(gòu)造超長請求字符串來測試是否存在漏洞。實(shí)際上,緩沖區(qū)溢出攻擊幾乎可以應(yīng)用于所有的Web應(yīng)用程序。對于使用Java/J2EE的應(yīng)用程序來說,如果啟用了本地方法調(diào)用或者允許系統(tǒng)調(diào)用就使得其存在被緩沖區(qū)溢出攻擊的可能;對于.NET應(yīng)用程序來說,如果使用P/Invoke方式進(jìn)行了Win32本地API調(diào)用或者是使用COMInterop技術(shù)使用了COM組件,也會可能存在上述漏洞;Perl、Python、PHP等腳本如果調(diào)用了外部應(yīng)用程序或者使用了一些不安全的程序庫,也會可能存在上述漏洞。2.1.2.跨站腳本漏洞現(xiàn)在只要談到跨站腳本漏洞,大家
7、一般會想到的危害就是偷取用戶cookie,重定向用戶的表單請求偷取用戶登陸信息等等。一個(gè)簡單的跨站腳本漏洞的利用方法是在正常的URL請求后添加一小段JS代碼,如下所示:點(diǎn)擊參加抽獎如果用戶點(diǎn)擊了上述這段代碼生成的超鏈接,將會把用戶在www.example.com的cookie發(fā)送到