青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網(wǎng)

17站長網(wǎng) 首頁 安全 腳本攻防 查看內(nèi)容

如何檢測SQL注入技術(shù)以及跨站腳本攻擊

2022-9-27 08:43| 查看: 2276 |來源: 互聯(lián)網(wǎng)

在最近兩年中,安全專家應(yīng)該對網(wǎng)絡(luò)應(yīng)用層的攻擊更加重視。因?yàn)闊o論你有多強(qiáng)壯的防火墻規(guī)則設(shè)置或者非常勤于補(bǔ)漏的修補(bǔ)機(jī)制,如果你的網(wǎng)絡(luò)應(yīng)用程序開發(fā)者沒有遵循 安全代碼進(jìn)行開發(fā),攻擊者將通過80端口進(jìn)入你的系統(tǒng)
在最近兩年中,安全專家應(yīng)該對網(wǎng)絡(luò)應(yīng)用層的攻擊更加重視。因?yàn)闊o論你有多強(qiáng)壯的防火墻規(guī)則設(shè)置或者非常勤于補(bǔ)漏的修補(bǔ)機(jī)制,如果你的網(wǎng)絡(luò)應(yīng)用程序開發(fā)者沒有遵循 安全代碼進(jìn)行開發(fā),攻擊者將通過80端口進(jìn)入你的系統(tǒng)。廣泛被使用的兩個主要攻擊技術(shù)是SQL注入[ref1]和CSS[ref2]攻擊。SQL注入是指:通過互聯(lián)網(wǎng)的輸入?yún)^(qū)域,插入SQL meta-characters(特殊字符 代表一些數(shù)據(jù))和指令,操縱執(zhí)行后端的SQL查詢的技術(shù)。這些攻擊主要針對其他組織的WEB服務(wù)器。CSS攻擊通過在URL里插入script標(biāo)簽,然后 誘導(dǎo)信任它們的用戶點(diǎn)擊它們,確保惡意Javascript代碼在受害人的機(jī)器上運(yùn)行。這些攻擊利用了用戶和服務(wù)器之間的信任關(guān)系,事實(shí)上服務(wù)器沒有對輸入、輸出進(jìn)行檢測,從而未拒絕javascript代碼。
這篇文章討論SQL注入和CSS攻擊漏洞的檢測技術(shù)。網(wǎng)上已經(jīng)有很多關(guān)于這兩種基于WEB攻擊的討論,比如如何實(shí)施攻擊,他們的影響,怎樣更好的編制和設(shè)計程序防止這些攻擊。 然而, 對如何檢測這些攻擊并沒有足夠的討論。我們采用流行的開源的IDS Snort[ref 3],組建根據(jù)檢測這些攻擊的規(guī)則的正則表達(dá)式。附帶,Snort默認(rèn)規(guī)則設(shè)定包含檢測CSS的方法,但是這些容易被避開檢測。比如大多通過hex進(jìn)制編碼,如%3C%73%63%72%69%70% 74%3E代替避開檢測。
依賴level of paranoia組織的能力,我們已經(jīng)編寫了多種檢測相同攻擊的規(guī)則。如果你希望檢測各種可能的SQL注入攻擊,那么你需要簡單的留意任何現(xiàn)行的SQL meta-characters,如單引號,分號和雙重破折號。同樣的一個極端檢測CSS攻擊的方法,只要簡單地提防HTML標(biāo)記的角括號。但這樣會檢測 出很多錯誤。為了避免這些,這些規(guī)則需要修改使它檢測更精確些, 當(dāng)仍然不能避免錯誤。
在Snort規(guī)則中使用pcre(Perl Compatible Regular Expressions)[ref4]關(guān)鍵字,每個規(guī)則可以帶或不帶其他規(guī)則動作。這些規(guī)則也可以被公用軟件如grep(文檔搜索工具)使用,來審閱網(wǎng)絡(luò)服務(wù)器日志。 但是,需要警惕的是,用戶的輸入只有當(dāng)以GET提交請求時,WEB服務(wù)器才會記錄日記,如果是以POST提交的請求在日記中是不會記錄的。
2. SQL注入的正則表示式
當(dāng) 你為SQL注入攻擊選擇正則表示式的時候,重點(diǎn)要記住攻擊者可以通過提交表單進(jìn)行SQL注入,也可以通過Cookie區(qū)域。你的輸入檢測邏輯應(yīng)該考慮用戶 組織的各類型輸入(比如表單或Cookie信息)。并且如果你發(fā)現(xiàn)許多警告來自一個規(guī)則,請留意單引號或者是分號,也許些字符是你的Web應(yīng)用程序創(chuàng)造的 合法的在CookieS中的輸入。因此, 您需要根據(jù)你的特殊的WEB應(yīng)用程序評估每個規(guī)則。
依照前面提到,一個瑣細(xì)的檢測SQL射入攻擊的正則表達(dá)式要留意SQL特殊的meta-characters 譬如單引號(’)雙重擴(kuò)則號(--),為了查出這些字符和他們hex等值數(shù), 以下正則表達(dá)式適用:
2.1 檢測SQL meta-characters的正則表達(dá)式
/(\%27)|(\’)|(\-\-)|(\%23)|(#)/ix
解釋:
我 們首先檢查單引號等值的hex,單引號本身或者雙重擴(kuò)折號。這些是MS SQL Server或Oracle的字符, 表示后邊的為評論, 隨后的都將被忽略。 另外,如果你使用MySQL,你需要留意 ’#’和它等值的hex的出現(xiàn)。注意我們不需要檢查雙重破折號等值的hex, 因?yàn)檫@不是HTML meta-character, 瀏覽器不會進(jìn)行編碼。 并且, 如果攻擊者設(shè)法手工修改雙重破折號為它的hex值%2D(使用代理像Achilles[ref 5]), SQL注入將失敗。
加入上述正則表達(dá)式的新的Snort規(guī)則如下:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"SQL Injection - Paranoid"; flow:to_server,established;uricontent:".pl";pcre:"/(\%27)|(\’)|(\-\-)|(%23)|(#)/i"; classtype:Web-application-attack; sid:9099; rev:5;)
在本篇討論中, uricontent關(guān)鍵字的值為".pl ", 因?yàn)樵谖覀兊臏y試環(huán)境里, CGI 程序是用Perl寫的。uricontent關(guān)鍵字的值取決于您的特殊應(yīng)用, 這個值也許是".php ", 或" .asp ", 或" .jsp ", 等。 從這點(diǎn)考慮, 我們不顯示對應(yīng)的Snort 規(guī)則, 但是我們會給出創(chuàng)造這些規(guī)則的正則表達(dá)式。 通過這些正則表達(dá)式你可以很簡單的創(chuàng)造很多的Snort規(guī)則.在前面的正則表達(dá)式里, 我們檢測雙重破折號是因?yàn)椋杭幢銢]有單引號的存在那里也可能是SQL射入點(diǎn)[ref 6]。 例如, SQL查詢條目只包含數(shù)值,如下:
select value1, value2, num_value3 from database
where num_value3=some_user_supplied_number
這種情況,攻擊者可以執(zhí)行額外的SQL查詢, 示范提交如下輸入:
3; insert values into some_other_table
最后, pcre的修飾符’ i’ 和’ x ’ 是用于分別匹配大小寫和忽略空白處的。 上面的規(guī)則也可以另外擴(kuò)展來檢查分號的存在。然而,分號很可以是正常HTTP應(yīng)答的一部分。為了減少這種錯誤,也是為了任何正常的單引號和雙重擴(kuò)折號的出
現(xiàn),上面的規(guī)則應(yīng)該被修改成先檢測=號的存。用戶輸入會響應(yīng)一個GET或POST請求,一般輸入提交如下:
username=some_user_supplied_value&password=some_user_supplied_value
因此, SQL 注入嘗試將導(dǎo)致用戶的輸入出現(xiàn)在a = 號或它等效的hex值之后。
2.2 修正檢測SQL meta-characters的正則表達(dá)式
/((\%3D)|(=))[^\n]*((\%27)|(\’)|(\-\-)|(\%3B)|(:))/i
解釋:
這個規(guī)則首先留意 = 號或它的hex值(%3D),然后考慮零個或多個除換行符以外的任意字符,最后檢測單引號,雙重破折號或分號。
典 型的SQL注入會嘗試圍繞單引號的用途操作原來的查詢,以便得到有用的價值。討論這個攻擊一般使用1’or’1’=’1字符串. 但是, 這個串的偵查很容易被逃避,譬如用1’or2>1 --. 然而唯一恒定的部分是最初的字符的值,跟隨一單引號,再加’or’。隨后的布爾邏輯可能在一定范圍上變化,可以是普通樣式也可能是非常復(fù)雜的。這些攻擊可 以相當(dāng)精確被偵測,通過以下的正則表達(dá)式。2.3章節(jié)講解。
2.3 典型的 SQL 注入攻擊的正則表達(dá)式
/\w*((\%27)|(\’))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix
解釋:
\w* - 零個或多個字符或者下劃線。
(\%27)|\’ - 單引號或它的hex等值。
(\%6 F)|o|(\%4 F))((\%72)|r|-(\%52) -‘or’的大小寫以及它的hex等值。
’union’SQL 查詢在SQL注入各種數(shù)據(jù)庫中攻擊中同樣是很常見的。如果前面的正則表達(dá)式僅僅檢測單引號或則其他的SQL meta characters ,會造成很多的錯誤存在。你應(yīng)該進(jìn)一步修改查詢,檢測單引號和關(guān)鍵字‘union’。這同樣可以進(jìn)一步擴(kuò)展其他的SQL關(guān)鍵字,像’select’, ’insert’, ’update’, ’delete’, 等等。
2.4 檢測SQL注入,UNION查詢關(guān)鍵字的正則表達(dá)式
/((\%27)|(\’))union/ix
(\%27)|(\’) - 單引號和它的hex等值
union - union關(guān)鍵字
可以同樣為其他SQL查詢定制表達(dá)式,如 >select, insert, update, delete, drop, 等等.
如 果,到這個階段,攻擊者已經(jīng)發(fā)現(xiàn)web應(yīng)用程序存在SQL注入漏洞,他將嘗試?yán)盟H绻J(rèn)識到后端服務(wù)器式MS SQL server,他一般會嘗試運(yùn)行一些危險的儲存和擴(kuò)展儲存過程。這些過程一般以‘sp’或‘xp’字母開頭。典型的,他可能嘗試運(yùn)行 ‘xp_cmdshell’擴(kuò)展儲存過程(通過SQL Server執(zhí)行Windows 命令)。SQL服務(wù)器的SA權(quán)限有執(zhí)行這些命令的權(quán)限。同樣他們可以通過xp_regread, xp_regwrite等儲存過程修改注冊表。
2.5 檢測MS SQL Server SQL注入攻擊的正則表達(dá)式
/exec(\s|\+)+(s|x)p\w+/ix
解釋:
exec - 請求執(zhí)行儲存或擴(kuò)展儲存過程的關(guān)鍵字
(\s|\+)+ - 一個或多個的空白或它們的http等值編碼
(s|x) p- ‘sp’或‘xp’字母用來辨認(rèn)儲存或擴(kuò)展儲存過程
\w+ - 一個或多個字符或下劃線來匹配過程的名稱
3. 跨站腳本(CSS)的正則表達(dá)式
當(dāng) 發(fā)動CSS攻擊或檢測一個網(wǎng)站漏洞的時候, 攻擊者可能首先使簡單的HTML標(biāo)簽如(粗體),(斜體)或(下劃線),或者他可能嘗試簡單的 script標(biāo)簽如alert("OK"). 因?yàn)榇蠖鄶?shù)出版物和網(wǎng)絡(luò)傳播的檢測網(wǎng)站是否有css漏洞都拿這個作為例子。這些嘗試都可以很簡單的被檢測出來。 然而,高明點(diǎn)的攻擊者可能用它的hex值替換整個字符串。這樣標(biāo)簽會以%3C%73%63%72%69%70%74%3E出 現(xiàn)。 另一方面,攻擊者可能使用web代理服務(wù)器像Achilles會自動轉(zhuǎn)換一些特殊字符如換成%3E.這樣攻擊發(fā)生時,URL 中通常以hex等值代替角括號。
下列正則表達(dá)式將檢測任何文本中包含的html的。它將捉住試圖使用、、或。這正則表達(dá)式應(yīng)該忽略大小寫。我們需要同時檢測角括號和它的hex等值(% 3C|
3.1 一般 CSS 攻擊的正則表達(dá)式
/((\%3C)|)/ix
解釋:
((\%3C)|) -檢查>或它的hex等值
Snort 規(guī)則:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"NII Cross-site scripting attempt"; flow:to_server,established; pcre:"/((\%3C)|)/i"; classtype:Web-application-attack; sid:9000; rev:5;)
跨站腳本同樣可以使用技術(shù)。現(xiàn)行默認(rèn)的snort規(guī)則可以被輕易避開。
3.2章節(jié)提供了防止這種技術(shù)的方法。
3.2 "
/((\%3C)|)/I
解釋:
(\%3 C)|) ->或它的hex等值
3.3 CSS 攻擊的極端的正則表達(dá)式
/((\%3C)|)/I
解釋:
這個規(guī)則簡單尋找。由于你的web服務(wù)器和web應(yīng)用程序的構(gòu)架,這個規(guī)則可能產(chǎn)生一些錯誤。但它能保證捉住任何CCS或者類似CSS的攻擊。
總結(jié):
在 這篇文章中,我們提出了不同種類的正則表達(dá)式規(guī)則來檢測SQL注入和跨站腳本攻擊。有些規(guī)則簡單而極端,一個潛在的攻擊都將提高警惕。但這些極端的規(guī)則可 能導(dǎo)致一些主動的錯誤。考慮到這點(diǎn),我們修改了這些簡單的規(guī)則,利用了另外的樣式,他們可以檢查的更準(zhǔn)確些。在這些網(wǎng)絡(luò)應(yīng)用成的攻擊檢測中,我們推薦將這些作為調(diào)試你IDS或日志分析方法的起點(diǎn)。再經(jīng)過幾次修改后,在你對正常網(wǎng)交易部分的非惡意應(yīng)答進(jìn)行評估以后,你應(yīng)該可以準(zhǔn)備的檢測那些攻擊了。
本文最后更新于 2022-9-27 08:43,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:[email protected]
·END·
站長網(wǎng)微信號:w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 成年女人免费影院播放 | 男人和女人一起愁愁愁很痛 | 国产精品视频人人做人人爽 | 成年人免费观看视频网站 | 九热这里只有精品 | 娇妻在床上迎合男人 | 囯产精品麻豆巨作久久 | 九九大香尹人视频免费 | 蜜芽资源高清在线观看 | 国产99对白在线播放 | 无码专区aaaaaa免费视频 | 午夜伦午夜伦锂电影 | 在线看片福利无码网址 | 国产精品JK白丝AV网站 | 金发欧美一区在线观看 | 快穿之诱受双性被灌满h | 成人精品综合免费视频 | 精品亚洲AV无码蜜芽麻豆 | 九九视频在线观看视频6 | 国产精品久久久久久精品... | 年轻夫妇韩剧中文版免费观看 | 国产精品成人观看视频免费 | 一品道门在线视频高清完整版 | 好看AV中文字幕在线观看 | 97视频精品| 国内精品蜜汁乔依琳视频 | 哺乳期妇女挤奶水36d | 国产精品久久久久久久久无码 | 无人区日本电影在线观看高清 | 熟女久久久久久久久久久 | 姉调无修版ova国语版 | 在线观看国产人视频免费中国 | 国产日韩欧美另类 | 国产成人精视频在线观看免费 | 成人国产亚洲精品A区天堂蜜臀 | 久久国内精品视频 | 国产99视频在线观看 | 被窝国产理论一二三影院 | 国产树林野战在线播放 | 麻生希第一部快播 | 国产毛片视频网站 |