查看單個文章
舊 2005-12-27, 11:03 AM   #2 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

如果他認識到後端伺服器式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
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
向 psac 送花的會員:
longlie (2007-10-21)
感謝您發表一篇好文章