?? 多個 apache 驗證模塊存在漏洞 (app,缺陷).txt
字號:
作者:hansome
email: hansome@chinaasp.com
日期:9/6/2001 9:33:37 AM
涉及程序:
PostgreSQL ,Oracle
描述:
多個 Apache 數(shù)據(jù)庫驗證模塊漏洞利用分析
詳細(xì):
多個使用 SQL 數(shù)據(jù)庫存儲驗證信息的 Apache 驗證模塊存在漏洞,遠(yuǎn)程攻擊者利用這些漏洞可能在請求中插入非法 SQL 代碼。
當(dāng)使用 PostgreSQL 模塊時,攻擊者能執(zhí)行任意 SQL 語句或?qū)е聰?shù)據(jù)庫口令查詢返回任意數(shù)據(jù),從而可能取得對 WEB 服務(wù)器的非法訪問權(quán)。
當(dāng)使用 Oracle 模塊時,攻擊者能非法調(diào)用存儲進(jìn)程或?qū)е聰?shù)據(jù)庫口令查詢返回任意數(shù)據(jù)。
對于 Mysql 模塊時,尚未得出可靠的測試結(jié)果。
驗證過程中,必須在數(shù)據(jù)庫查詢口令散列值,因此要用到 SQL SECLECT 語句。在這些受影響的模塊中,使用下面類似的代碼:
Query := Sprintf ("SELECT %s FROM %s WHERE %s = '%s'",
Password_Column, User_Table, User_Column,
User);
然后,會比較取回的口令散列值和用戶提供的口令以檢查該用戶是否為合法用戶。
但是,用戶值要通過網(wǎng)絡(luò)取回。如果攻擊者構(gòu)造下面的字符串(注意開始的單引號),
‘; SELECT 'wA8aGH92dPQnIDD
這樣獲得的字符串將含有兩個 SQL 語句
SELECT password_column FROM user_table WHERE user_column = '';
SELECT 'wA8aGH92dPQnIDD'
PostgreSQL's libpq client library 會將這兩個語句都傳給 PostgreSQL 服務(wù)器,服務(wù)器將會執(zhí)行兩條語句并將第二條的結(jié)果返回給客戶端。通過這種方式,攻擊者能誘騙驗證代碼,使它相信他所提供的口令有效。用同種攻擊手法,使用 INSERT,DELETE 語句能達(dá)到其它效果。
Oracle 不允許每個請求中有多個 SQL 語句,但是使用 UNION clause 來附加多余數(shù)據(jù)是可能的,利用這點能重復(fù)上面的攻擊過程。此外,攻擊者也能非法調(diào)用存儲進(jìn)程。
受影響系統(tǒng):
* AuthPG 1.2b2 by Min S. Kim (also known as mod_auth_pg)
* mod_auth_mysql 1.9 by Vivek Khera
* mod_auth_oracle 0.5.1 by Serg Oskin
* mod_auth_pgsql 0.9.5 by Guiseppe Tanzilli and Matthias Eckermann
* mod_auth_pgsql_sys 0.9.4 (by the same authors, modifications by
Victor Glushchenko)
不受影響系統(tǒng):
* mod_auth_mysql 2.20 by Zeev Suraski
* mod_auth_ora7 1.0 by Ben Reser
* mod_auth_ora8 1.0 by Ben Reser
解決方案:
1、采用不受影響版本
2、下載安裝補丁:
AuthPG 1.3 by Min S. Kim
http://authpg.sourceforge.net/
mod_auth_mysql 1.10 by Vivek Khera
ftp://ftp.kcilink.com/pub/
mod_auth_pgsql 0.9.6 by Guiseppe Tanzilli
http://www.giuseppetanzilli.it/mod_auth_pgsql/dist/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -