程式碼安全測試第十二期:LDAP注入漏洞

zktq2021發表於2021-06-02

一、什麼是LDAP注入漏洞?

LDAP是輕量目錄訪問協議(LightweightDirectory Access Protocol)的縮寫,提供訪問目錄資料庫方法的服務和協議,常用於與目錄資料庫組成目錄服務。其中目錄是一個為查詢、瀏覽和搜尋而最佳化的專業分散式資料庫,它呈樹狀結構組織資料,就好象Linux/Unix系統中的檔案目錄一樣。目錄資料庫和關聯式資料庫不同,不適於儲存修改頻繁的資料。

類似以下的資訊適合儲存在目錄中:

· 企業員工資訊,如姓名、電話、郵箱等;

· 公用證書和安全金鑰;

· 公司的物理裝置資訊,如伺服器,它的IP地址、存放位置、廠商、購買時間等。

LDAP注入漏洞是指程式使用來自上游元件的受外部影響的輸入來構造LDAP查詢的全部或部分,沒有過濾或不正確地過濾了輸入字串中含有的一些特殊字元,導致在將其傳送到下游元件時修改了原本LDAP的查詢結構。LDAP具有特定的查詢結構,並具有特定的語法,來對特定目錄進行遍歷,LDAP注入攻擊和SQL隱碼攻擊類似,利用使用者引入的引數生成LDAP查詢,由於部分引數沒有適當的過濾,因此攻擊者可以注入惡意程式碼以造成惡意攻擊。

二、LDAP注入漏洞的構成條件有哪些?

滿足以下條件,就構成了一個LDAP注入的 安全漏洞

1、資料從不可靠來源(包括但不侷限於不可靠使用者的輸入資訊或是不可靠使用者可能更改的檔案)進入應用程式;

2、該資料未經過濾或不正確地過濾特殊字元後,直接使用進行LDAP查詢。

三、LDAP注入漏洞會造成哪些後果?

關鍵詞:執行未經授權的程式碼或命令; 讀取應用資料; 修改應用資料

· 攻擊者可能輸入更改LDAP查詢的惡意資料,從而允許執行非預期的命令或程式碼,允許讀取或修改敏感資料,或導致其他非預期行為。

四、LDAP注入漏洞的防範和修補方法有哪些?

1、輸入驗證。

使用框架提供的功能來進行正確的驗證,過濾或轉義使用者輸入的資料。

五、LDAP注入漏洞樣例:

用悟空 靜態程式碼檢測工具分析上述程式程式碼,則可以發現程式碼中存在著“LDAP注入”缺陷,從跟蹤路徑中可以分析出資料的汙染源以及資料流向,如下圖:

LDAP注入在CWE中被編號為CWE-90: Improper Neutralization of Special Elements used in an LDAPQuery ('LDAP Injection')


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2775098/,如需轉載,請註明出處,否則將追究法律責任。

相關文章