蘇麗
摘要 本文在SQL注射攻擊和Web環(huán)境之間關(guān)系的基礎(chǔ)上,講述了Web工作原理、Web程序的通信方式等,為理解SQL注入的生成過(guò)程提供一些背景知識(shí)。
【關(guān)鍵詞】Web 工作機(jī)制 POST請(qǐng)求 GET 請(qǐng)求流程
1 引言
在網(wǎng)絡(luò)技術(shù)與信息技術(shù)飛速發(fā)展的科技時(shí)代,Web應(yīng)用程序具備界面統(tǒng)一、容易維護(hù)、操作簡(jiǎn)潔、共享度高、擴(kuò)展性良好等優(yōu)點(diǎn)。Web應(yīng)用程序被運(yùn)用到生活中的各個(gè)方面,由于Web應(yīng)用是建立在廣域網(wǎng)的基礎(chǔ)上,對(duì)安全的管控行為力度較弱,攻擊者趁機(jī)運(yùn)用這個(gè)機(jī)會(huì)提交一段數(shù)據(jù)庫(kù)查詢代碼,依據(jù)程序返回的內(nèi)容,就可以獲取一些數(shù)據(jù)庫(kù)信息。
2 Web結(jié)構(gòu)與工作機(jī)制分析
2.1 Web結(jié)構(gòu)
Web是一個(gè)由文檔組成的超大規(guī)模集合,其中使用鏈接互相聯(lián)系。這些文檔是由Web服務(wù)器提供,能夠通過(guò)瀏覽器進(jìn)行訪問(wèn)。Web是一組軟件協(xié)議的集合。Web應(yīng)用是一種用Web瀏覽器并經(jīng)過(guò)intemet或內(nèi)部往來(lái)訪問(wèn)的程序,Web應(yīng)用程序通常是須要Web瀏覽器,Web服務(wù)器,是基于客戶機(jī)/服務(wù)器的配置而運(yùn)行的,即B/S結(jié)構(gòu)。
當(dāng)用戶在客戶端點(diǎn)擊相應(yīng)的鏈接發(fā)出頁(yè)面請(qǐng)求的時(shí)候,Web服務(wù)器接到這個(gè)請(qǐng)求并按照請(qǐng)求處理邏輯進(jìn)行處理,如果用戶的請(qǐng)求頁(yè)面存儲(chǔ)在數(shù)據(jù)庫(kù)中,處理邏輯會(huì)連接后臺(tái)數(shù)據(jù)庫(kù),檢索用戶所需要的原始數(shù)據(jù)并將其加工成網(wǎng)頁(yè)的形勢(shì),最后由Web服務(wù)器軟件將頁(yè)面返回給用戶。
2.2 Web工作機(jī)制
由于本文研究是基于SQL注入攻擊進(jìn)行Web研究與分析,所以只討論超文本傳輸協(xié)議。超文本傳輸協(xié)議包含兩個(gè)階段:請(qǐng)求階段和響應(yīng)階段。瀏覽器和Web服務(wù)器之間的每一次http通信都包含這兩個(gè)部分:頭部和主體。頭部里面含有與通信有關(guān)消息,主體里面是通信的數(shù)據(jù),當(dāng)然前提是存在這樣的數(shù)據(jù)。
此次研究只討論在Web應(yīng)用中SQL注入常見(jiàn)的HTTP方法:GET、POST。它們各自的特點(diǎn)如下:
2.2.1 GET請(qǐng)求
發(fā)起GET請(qǐng)求時(shí)服務(wù)器使用的HTTP方法是顯示在URL中。一般Web瀏覽器發(fā)起GET請(qǐng)求,發(fā)送到Web服務(wù)器,然后會(huì)在瀏覽器中出現(xiàn)結(jié)果,GET請(qǐng)求對(duì)用戶來(lái)說(shuō)是可見(jiàn)的,但發(fā)送給Web服務(wù)器的GET請(qǐng)求格式如下:
GET/search.aspx?text=lcd%20monitors&cat=l&num=20 HTTP/1.1
Hosr:www.xx.com
User-Agent:Mozilla/5.O(xll;U;Linuxx86_64;en-US;rv:1.8.1.19)
Accept:text/xml,application/xml,applic ation/xhtml+xml,
Text/html; q=0.6,text/plain;q=0.7,image/png.*/*;q=0 8
Accept-Encoding:gzip,deflate
Accept - C,harset:IS0-8 8 5 9-l,utf-8;q=0.5,*;q=0 5
Keep-Alive;300
Proxy-Connection:keep-alive
這條請(qǐng)求在URL中發(fā)送參數(shù),格式如下:
?paramenterl=valuel&patamenter2=value2
上面的示例中包含三個(gè)參數(shù):text、cat和num。遠(yuǎn)程應(yīng)用將檢索這些參數(shù)值,將他們用于實(shí)現(xiàn)設(shè)計(jì)好的目的。對(duì)于GET請(qǐng)求來(lái)說(shuō),只需要在瀏覽器的導(dǎo)航欄中稍加修改就可以操縱這些參數(shù)。
2.2.2 POST請(qǐng)求
POST請(qǐng)求是一種用于向Web服務(wù)器發(fā)送信息的HTTP方法。服務(wù)器執(zhí)行的操作取決于目標(biāo)URL。在瀏覽器中填寫表單并單擊提交按鈕時(shí)通常使用這個(gè)方法。下面的示例給出了瀏覽器發(fā)送給遠(yuǎn)程Web服務(wù)器的內(nèi)容:
POST/contact/index.asp HTTP/1.1
Host:www.xx.com
User-Agent: Mozilla/5.0 (xll;U;Linuxx86_64,en-US,rv:1.8.1.19)
Gecko/20170511
Ubuntu/8.04(hardy)Firefox/2.0.0.19
Acc ept:text/xml,application/xml,applic ation/xhtml+xml,
Text/html; q=0.6text/plain; q=0.7image/png,*/*;q=0.9
Accept-Encoding:gzip,defiate
Accept-Charset:ISO-8 8 5 9-l,utf-8;q=0.3,*;q=0 3
Keep-Alive;300
Re ferer:http://www.victim.c om/eontact/index.asp
C ontent-type:application/x-www - form-urlencoded
Content-Length:129
First=j ohn&last=Doe&email=j ohn@doe.com&phone=31337 82&title=Mr&contry=US&comment=l%20would%201ike%20to%20request%20information
3 總結(jié)
本文主要論述了Web系統(tǒng)的工作原理,POST請(qǐng)求過(guò)程及其對(duì)數(shù)據(jù)的處理過(guò)程,同時(shí)也介紹了GET請(qǐng)求,對(duì)于網(wǎng)絡(luò)系統(tǒng)管理人員,應(yīng)用開發(fā)人員來(lái)說(shuō)理解知道對(duì)于Web應(yīng)用安全有一個(gè)系統(tǒng)、清楚的框架認(rèn)知。對(duì)SQL注入在Web上防范起到一定的了解和幫助。
參考文獻(xiàn)
[1]劉文生,樂(lè)德廣,劉偉.SQL注入攻擊與防御技術(shù)研究[J].信息網(wǎng)絡(luò)安全,2015 (09).
[2]王云,郭外萍,陳承歡.Web項(xiàng)目中的SQL注入問(wèn)題研究與防范方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2010 (05).