這篇文章的內(nèi)容主要圍繞LDAP注入該如何理解進(jìn)行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過(guò)這篇文章有所收獲!
創(chuàng)新互聯(lián)自2013年起,公司以做網(wǎng)站、網(wǎng)站制作、系統(tǒng)開(kāi)發(fā)、網(wǎng)絡(luò)推廣、文化傳媒、企業(yè)宣傳、平面廣告設(shè)計(jì)等為主要業(yè)務(wù),適用行業(yè)近百種。服務(wù)企業(yè)客戶(hù)千余家,涉及國(guó)內(nèi)多個(gè)省份客戶(hù)。擁有多年網(wǎng)站建設(shè)開(kāi)發(fā)經(jīng)驗(yàn)。為企業(yè)提供專(zhuān)業(yè)的網(wǎng)站建設(shè)、創(chuàng)意設(shè)計(jì)、宣傳推廣等服務(wù)。 通過(guò)專(zhuān)業(yè)的設(shè)計(jì)、獨(dú)特的風(fēng)格,為不同客戶(hù)提供各種風(fēng)格的特色服務(wù)。
LDAP (Light Directory Access Portocol) 是基于X.500標(biāo)準(zhǔn)的輕量級(jí)目錄訪問(wèn)協(xié)議,提供訪問(wèn)目錄數(shù)據(jù)庫(kù)方法的服務(wù)和協(xié)議,常用于與目錄數(shù)據(jù)庫(kù)組成目錄服務(wù)。其中目錄是一個(gè)為查詢(xún)、瀏覽和搜索而優(yōu)化的專(zhuān)業(yè)分布式數(shù)據(jù)庫(kù),它呈樹(shù)狀結(jié)構(gòu)組織數(shù)據(jù),類(lèi)似于Linux/Unix系統(tǒng)中的文件目錄。公用證書(shū)、安全密鑰、公司的物理設(shè)備信息等修改并不頻繁的數(shù)據(jù)適合存儲(chǔ)在目錄中。可以將LDAP理解為一種搜索協(xié)議,它類(lèi)似于SQL,擁有查詢(xún)語(yǔ)法,也存在被注入攻擊的風(fēng)險(xiǎn)。LDAP注入是指客戶(hù)端發(fā)送查詢(xún)請(qǐng)求時(shí),輸入的字符串中含有一些特殊字符,導(dǎo)致修改了LDAP本來(lái)的查詢(xún)結(jié)構(gòu),從而使得可以訪問(wèn)更多的未授權(quán)數(shù)據(jù)的一種攻擊方式。
本篇文章以 JAVA 語(yǔ)言源代碼為例,分析CWE ID 90:Improper Neutralization of Special Elementsused in an LDAP Query ('LDAP Injection')樣本中LDAP注入漏洞產(chǎn)生的原因以及修復(fù)方法。詳細(xì)請(qǐng)參見(jiàn):
CWE ID 90: Improper Neutralization of Special Elements used in an LDAP Query ('LDAP Injection')
http://cwe.mitre.org/data/definitions/90.html
CWE ID 639:Authorization Bypass ThroughUser-Controlled Key
http://cwe.mitre.org/data/definitions/639.html
2. LDAP 注入的危害
LDAP 注入是利用用戶(hù)引入的參數(shù)生成惡意 LDAP 查詢(xún),通過(guò)構(gòu)造 LDAP 過(guò)濾器來(lái)繞過(guò)訪問(wèn)控制、用戶(hù)權(quán)限提升。在維持正常過(guò)濾器的情況下構(gòu)造出 AND、OR 操作注入來(lái)獲得敏感信息。
從2018年1月至2019年1月,CVE中共有4條漏洞信息與其相關(guān)。部分漏洞如下:
CVE 編號(hào) | 概述 |
---|---|
CVE-2018-12689 | phpLDAPadmin 1.2.2 允許通過(guò) cmd.php?cmd = loginform 請(qǐng)求中精心設(shè)計(jì)的 serverid 參數(shù)或登錄面板中精心設(shè)計(jì)的用戶(hù)名和密碼進(jìn)行 LDAP 注入。 |
CVE-2018-5730 | MIT krb5 1.6 或更高版本允許經(jīng)過(guò)身份驗(yàn)證的 kadmin 將主體添加到 LDAP Kerberos 數(shù)據(jù)庫(kù),以通過(guò)提供 “l(fā)inkdn” 和 “containerdn” 數(shù)據(jù)庫(kù)參數(shù)來(lái)繞過(guò)DN容器檢查,或者通過(guò)提供作為擴(kuò)展的DN字符串來(lái)繞過(guò) DN 容器檢查。 |
CVE-2016-8750 | 4.0.8 之前的 Apache Karaf 使用 LDAPLoginModule 通過(guò) LDAP 對(duì)用戶(hù)進(jìn)行身份驗(yàn)證。但是沒(méi)有正確編碼用戶(hù)名,因此容易受到 LDAP 注入攻擊,導(dǎo)致拒絕服務(wù)。 |
CVE-2011-4069 | PacketFence 3.0.2 之前的 html / admin / login.php 允許遠(yuǎn)程攻擊者進(jìn)行 LDAP 注入攻擊,從而通過(guò)精心設(shè)計(jì)的用戶(hù)名繞過(guò)身份驗(yàn)證。 |
示例源于 Samate Juliet Test Suite for Java v1.3 (https://samate.nist.gov/SARD/testsuite.php),源文件名:CWE90_LDAP_Injection__connect_tcp_01.java。
上述示例代碼 39-61 行,程序進(jìn)行 TCP 連接并讀取Socket的數(shù)據(jù)并賦值給變量 data
,在118 行動(dòng)態(tài)構(gòu)造一個(gè) LDAP 查詢(xún)語(yǔ)句,119 行對(duì)其加以執(zhí)行。LDAP 為人員組織機(jī)構(gòu)封裝了常見(jiàn)的對(duì)象類(lèi),比如人員(person)含有姓(sn)、名(cn)、電話(huà)(telephoneNumber)、密碼 (userPassword) 等屬性。該查詢(xún)?yōu)榱蓑?yàn)證是否存在名為變量 data
的員工,但并未對(duì)變量 data
的內(nèi)容做任何過(guò)濾。使用最簡(jiǎn)單的注入方式,令傳入?yún)?shù)的值為“*”,則構(gòu)造的動(dòng)態(tài)查詢(xún)條件為 "(cn=*)”,這樣可以查詢(xún)到所有員工的信息,導(dǎo)致信息泄露。
使用360代碼衛(wèi)士對(duì)上述示例代碼進(jìn)行檢測(cè),可以檢出“LDAP 注入”缺陷,顯示等級(jí)為高。從跟蹤路徑中可以分析出數(shù)據(jù)的污染源以及數(shù)據(jù)流向,在代碼行第120行報(bào)出缺陷,如圖1所示:
圖1:LDAP 注入的檢測(cè)示例
在上述修復(fù)代碼中,第119行使用 javax.naming.ldap
包下擴(kuò)展類(lèi) BaseControl
接收需要被處理的參數(shù),第120行 control
對(duì)象調(diào)用 getEncodedValue()
方法將接收的參數(shù) data
進(jìn)行編碼,編碼后的值為字符對(duì)應(yīng)的 ASN.1BER
編碼值。編碼后的字節(jié)數(shù)組不存在參與命令解析的特殊字符,可以構(gòu)造結(jié)構(gòu)、內(nèi)容正常的 LDAP 查詢(xún)語(yǔ)句,這樣就避免了 LDAP 注入的發(fā)生。
使用360代碼衛(wèi)士對(duì)修復(fù)后的代碼進(jìn)行檢測(cè),可以看到已不存在“LDAP注入”缺陷。如圖2:
圖2:修復(fù)后檢測(cè)結(jié)果
LDAP注入產(chǎn)生的根本原因是攻擊者提供了可以改變LDAP查詢(xún)含義的 LDAP元字符。構(gòu)造LDAP篩選器時(shí),程序員應(yīng)清楚哪些字符應(yīng)作為命令解析,而哪些字符應(yīng)作為數(shù)據(jù)解析。為了防止攻擊者侵犯程序員的各種預(yù)設(shè)情況,應(yīng)使用白名單的方法,確保LDAP查詢(xún)中由用戶(hù)控制的數(shù)值完全來(lái)自于預(yù)定的字符集合,應(yīng)不包含任何LDAP元字符。如果由用戶(hù)控制的數(shù)值范圍要求必須包含 LDAP元字符,則應(yīng)使用相應(yīng)的編碼機(jī)制轉(zhuǎn)義這些元字符在LDAP查詢(xún)中的意義。
如&、!、|、=、<、>、,、+、-、”、’、;這些字符正常情況下不會(huì)用到,如果用戶(hù)的輸入中出現(xiàn)了,需要用反斜杠轉(zhuǎn)義處理。
還有些字符如(、)、\、*、/、NUL這些字符不僅需要用反斜杠處理,還要將字符變成相應(yīng)的ASCII碼值。
感謝你的閱讀,相信你對(duì)“LDAP注入該如何理解”這一問(wèn)題有一定的了解,快去動(dòng)手實(shí)踐吧,如果想了解更多相關(guān)知識(shí)點(diǎn),可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站!小編會(huì)繼續(xù)為大家?guī)?lái)更好的文章!
文章標(biāo)題:LDAP注入該如何理解
網(wǎng)頁(yè)URL:http://chinadenli.net/article18/giigdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、企業(yè)網(wǎng)站制作、ChatGPT、網(wǎng)站營(yíng)銷(xiāo)、網(wǎng)站建設(shè)、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)