背景
幾個月前,我自願對一家法國公司進行了安全審計。該公司有一個企業站,你可以在其中找到新聞,聯繫頁面或下載文檔。這是一個非常典型的網站,當加載某些內容,將會發送AJAX請求,該請求由2個參數組成。
並允許你以HTML格式獲取一個包含最新新聞動態的響應。
遠程代碼執行
由此可以瞭解網站的工作原理。名為ajax的端點允許你使用任何類的任何方法。
在此之前,我嘗試使用了stdClass類和方法,但沒有任何功能。
然後我有了一個想法,刪除class參數以嘗試顯示phpinfo()函數。
事實證明我的想法是對的,現在的問題是我怎樣才能更有效地利用它呢?
在PHP中有一個名為system(https://secure.php.net/manual/fr/function.system.php)的函數,它允許你執行命令並返回執行結果。
system ( string $command [, int &$return_var ] ) : strin
但是,正如你所看到的,我需要一個允許放置我所選擇的命令的參數。為此,我將使用我在某些頁面上看到的一個參數,這個參數為args。
現在,我可以執行任何的UNIX命令,這意味著我可以做很多我想做的事情,例如我現在可以訪問文件夾和文件及其內容等。
LDAP Server
最有趣的就是我發現了一個配置文件,其中包含一組數據庫的登錄名和密碼(20個數據庫)和一個LDAP服務器。
但為什麼是一個LDAP服務器呢? 首先,讓我們簡單瞭解下什麼是LDAP服務器。
我們對LDAP服務器比對數據庫更感興趣。由於服務器上安裝了一個phpMyAdmin版本,因此即使它們在localhost外部無法訪問,我也能連接到它。
LDAP(輕量級目錄訪問協議,Lightweight Directory Access Protocol)是實現提供被稱為目錄服務的信息服務。目錄服務是一種特殊的數據庫系統,其專門針對讀取,瀏覽和搜索操作進行了特定的優化。目錄一般用來包含描述性的,基於屬性的信息並支持精細複雜的過濾能力。目錄一般不支持通用數據庫針對大量更新操作操作需要的複雜的事務管理或回捲策略。而目錄服務的更新則一般都非常簡單。這種目錄可以存儲包括個人信息、web鏈結、jpeg圖像等各種信息。為了訪問存儲在目錄中的信息,就需要使用運行在TCP/IP 之上的訪問協議—LDAP。
來源:https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol
為了簡化對LDAP的理解,重要的是要記住它是用戶的目錄。此目錄允許用戶僅連接一次並訪問各種應用程序和網站,還允許打開Windows會話。
至於“為什麼網站配置文件中存在LDAP訪問?”是因為這些訪問允許你定義站點上已經過身份驗證用戶的權限。
想要連接到MacOS下的公司LDAP服務器,我們必須要藉助一些應用程序,但遺憾的是這些應用大都是些付費應用免費的很少。我個人使用的是LDAPSoft。
如果你有一個開源的可替代方案那我將非常感興趣,因為當每個用戶有大約40個字段時,使用終端連接到LDAP服務器將非常的麻煩。
LDAP憑據的訪問權限僅限於讀取權限,我無法修改用戶的數據。
感謝維基百科和LDAP服務器!該安全漏洞涉及近40,000用戶的信息。
我可以訪問的信息包括:
名和姓,
個人電郵地址,
出生日期,
電話號碼,
明文密碼(隨機數),
有關RFID標籤(MiFare)的信息,
用於啟動Windows會話的個人目錄
員工的RFID標籤允許你訪問公司大樓,你還可以購買空白的RFID標籤來輸入LDAP服務器中的信息,從而欺騙性的訪問大樓。這種類型的標籤並不昂貴且易於編程。
短信警報
另外,該公司有一個我此前從未見過的系統,該系統可以向公司的所有員工發送警報短信,以防非法入侵或恐怖襲擊。
實際上,通過搜索其中的一個配置文件,我能夠從一個SMS發送服務中獲取一個API密鑰。
使用該密鑰發送簡單的HTTP請求,將允許我向整個公司的人發送短信。
總結
獲取40,000名前僱員或僱員信息,
可以訪問大約20個數據庫的數據,
使用RFID標籤訪問公司大樓(?),
獲取的用戶密碼,可否用於獲取其它訪問權限(?)。
最後,我向該公司發送了安全審計報告,他們積極並快速的進行了修復。
閱讀更多 A1d2m3i4n5 的文章