如果他認識到後端伺服器式MS SQL server,他一般會嘗試執行一些危險的儲存和增強儲存程序。這些程序一般以『sp』或『xp』字母開頭。典型的,他可能嘗試執行 『xp_cmdshell』增強儲存程序(通過SQL Server執行Windows 指令)。
SQL伺服器的SA權限有執行這些指令的權限。同樣他們可以通過xp_regread, xp_regwrite等儲存程序修改註冊表。
2.5 檢測MS SQL Server SQL注入攻擊的正則陳述式
/exec(\s|\+)+(s|x)p\w+/ix
解釋:
exec - 請求執行儲存或增強儲存程序的關鍵字
(\s|\+)+ - 一個或多個的空白或它們的http等值編碼
(s|x) p- 『sp』或『xp'字母用來辨認儲存或增強儲存程序
\w+ - 一個或多個字元或底線來匹配程序的名稱
3. 跨站指令碼(CSS)的正則陳述式
當 發動CSS攻擊或檢測一個網站漏洞的時候, 攻擊者可能首先使簡單的HTML標籤如<b>(粗體),<i>(斜體)或<u>(底線),或者他可能嘗試簡單的 script標籤如<script>alert("OK")</script>. 因為大多數出版物和網路傳播的檢測網站是否有css漏洞都拿這個作為例子。這些嘗試都可以很簡單的被檢測出來。
然而,高明點的攻擊者可能用它的hex值取代整個字元串。
這樣<script>標籤會以%3C%73%63%72%69%70%74%3E出 現。 另一方面,攻擊者可能使用web代理伺服器像Achilles會自動轉換一些特殊字元如<換成%3C、>換成%3E.這樣攻擊發生時,URL 中通常以hex等值替代角括號。
下列正則陳述式將檢測任何文本中包含的html的<、>。它將捉住試圖使用< b>、<u>、或<script>。這正則陳述式應該忽略大小寫。
我們需要同時檢測角括號和它的hex等值(% 3C|<)。檢測hex進制轉化的整個字元串,我們必須檢測用戶輸入的數位和%號,即使用[a-z0-9%] 。這可能會導致一些錯誤出現,不是大部分會檢測到真實攻擊的。
3.1 一般 CSS 攻擊的正則陳述式
/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/ix
解釋:
((\%3C)|<) -檢查<和它hex等值
((\%2F)|\/)*-結束標籤/或它的 hex等值
[a-z0-9\%]+ -檢查標籤裡的字母或它hex等值
((\%3E)|>) -檢查>或它的hex等值
Snort 規則:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"NII Cross-site scripting attempt"; flow:to_server,established; pcre:"/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/i"; classtype:Web-application-attack; sid:9000; rev:5
跨站指令碼同樣可以使用<img src=>技術。現行預設的snort規則可以被輕易避開。
3.2章節提供了防止這種技術的方法。
3.2 "<img src" CSS 攻擊正則陳述式
/((\%3C)|<)((\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47))[^\n]+((\%3E)|>)/I
解釋:
(\%3 C)|<) -<或它的hex等值
(\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47) -'img'字母或它的大小寫hex等值的變化組合
[^\n]+ -除了換行符以外的任何跟隨<img的字元
(\%3E)|>) ->或它的hex等值
3.3 CSS 攻擊的極端的正則陳述式
/((\%3C)|<)[^\n]+((\%3E)|>)/I
解釋:
這個規則簡單尋找<+除換行符外的任何字元+>。由於你的web伺服器和web應用程式的構架,這個規則可能產生一些錯誤。但它能保證捉住任何CCS或者類似CSS的攻擊。
一個不錯避開過濾的CSS方法請參考Bugtraq投稿的
http://www.securityfocus.com/archive...chive/1/272037.
但是請注意最後一種極端的規則將能檢測這所有的攻擊。
總結:
在 這篇文章中,我們提出了不同種類的正則陳述式規則來檢測SQL注入和跨站指令碼攻擊。有些規則簡單而極端,一個潛在的攻擊都將提高警惕。但這些極端的規則可 能導致一些主動的錯誤。考慮到這點,我們修改了這些簡單的規則,利用了另外的樣式,他們可以檢查的更準確些。在這些網路套用成的攻擊檢測中,我們推薦將這 些作為偵錯你IDS或日誌分析方法的起點。再經過幾次修改後,在你對正常網交易部分的非惡意回應進行評估以後,你應該可以準備的檢測那些攻擊了。
參考
1. SQL Injection
http://www.spidynamics.com/papers/SQ...WhitePaper.pdf
2. Cross Site Scripting FAQ
http://www.cgisecurity.com/articles/xss-faq.shtml
3. The Snort IDS
http://www.snort.org
4. Perl-compatible regular expressions (pcre)
http://www.pcre.org
5. Web application proxy, Achilles
http://achilles.mavensecurity.com
3. Advanced SQL Injection
http://www.nextgenss.com/papers/adva..._injection.pdf
7. Secure Programming HOWTO, David Wheeler
www.dwheeler.com
8. Threats and Countermeasures, MSDN, Microsoft
http://msdn.microsoft.com