怎样利用LDAP注入在二十秒以内绕开Joomla!的认证登录
写在前面的话
Joomla!今朝的下载量曾经超过了8400万次了,它也曾经成为了今朝环球最热点的内容管理系统之一。据统计,今朝互联网上有约莫3.3%的网站内容和文章都是由Joomla!驱动的。
咱们的代码阐发解决方案RIPS在Joomla!的LoginController中检测到了一个以前从未被发明过的LDAP注入破绽。这个网安破绽将容许长途入侵攻击者经由过程盲注技巧获得超等用户的暗码,并利用LDAP注入技巧在几秒内完整接管任何一个装置了Joomla!(版本号小于3.7.5)的网站。Joomla!今朝曾经在最新版本v3.8中修复了这个破绽。
受影响版本
相符以下前提的网站将会遭到该破绽的影响:
Joomla! v1.5
身份认证利用了LDAP的Joomla!
注:这并非一个设置装备摆设破绽,在利用该破绽的过程当中入侵攻击者并不必要任何的特别权限。
入侵攻击者能做甚么?
经由过程在登录页面利用该破绽停止入侵攻击,非特权的长途入侵攻击者能够提掏出LDAP服务器中所有的用户凭据(用于装置Joomla!),这些凭据包含特权用户和Joomla!管理员的用户名和暗码。获得到这些凭据以后,入侵攻击者就能够利用这些信息来登录Joomla!的管理员控制面板并完整接管Joomla!,或许经由过程上传自定义的Joomla!扩大完成长途代码履行并相干的Web服务器。
破绽阐发:CVE-2017-14596
咱们的代码阐发解决方案RIPS能够或许自动化辨认出以下代码段中的网安破绽。首先在LoginController中,Joomla!利用能够从登录表单中接管用户供给的凭据数据。
/administrator/components/com_login/controller.php
凭据数据会被传递给login办法,而login办法中又会挪用authenticate办法。
/libraries/cms/application/cms.php
/libraries/joomla/authentication/authentication.php
authenticate办法能够向onUserAuthenticate办法发送用户凭据,详细办法取决于管理员所利用的身份验证插件。假如Joomla!在停止身份验证时利用的是LDAP,那末这里将必要挪用LDAP插件的内置办法。
/plugins/authentication/ldap/ldap.php
在LDAP插件中,username嵌入在LDAP查问语句(在search_string选项中指定)中。依据Joomla!的民间文档,search_string设置装备摆设选项是一个用于搜刮用户的查问字符串,其中的[search]会被登录表单中的搜刮文本间接调换,比方“uid=[search]”。接下来,LDAP查问语句会被传递给LdapClient中的simple_search办法,这个函数卖力与LDAP服务器树立衔接并履行ldap_search办法。
/libraries/vendor/joomla/ldap/src/LdapClient.php
纵然RIPS没有能够或许发明LDAP查问字符串是从一个内部设置装备摆设文件加载出去的,但RIPS仍旧能够或许胜利检测并申报这个破绽的基本缘故原由:传递给ldap_search函数的用户输出固然嵌入在了LDAP查问语句中,但输出数据并无颠末数据洗濯。
RIPS申报:【点我检查】
PoC:LDAP盲注
因为没有对LDAP查问语句中的username数据停止过滤,这将招致入侵攻击者能够或许改动LDAP搜刮的成果聚集。经由过程利用特别字符并察看分歧的认证差错信息,入侵攻击者将能够或许经由过程赓续地发送测试payload来暴力破解出凭据字符。
XXX;(&(uid=Admin)(userPassword=A*))
XXX;(&(uid=Admin)(userPassword=B*))
XXX;(&(uid=Admin)(userPassword=C*))
...
XXX;(&(uid=Admin)(userPassword=s*))
...
XXX;(&(uid=Admin)(userPassword=se*))
...
XXX;(&(uid=Admin)(userPassword=sec*))
...
XXX;(&(uid=Admin)(userPassword=secretPassword))
其中的每一行Payload代码都能够从LDAP服务器中提掏出目的数据,而这也是一种绝对异常高效的LDAP盲注入侵攻击方法。
光阴轴
2017年07月27日:向厂商供给破绽细节和PoC;
2017年07月29日:厂商确认破绽信息;
2017年09月19日:厂商宣布更新版本;
总结
作为今朝最热点的一款开源CMS利用之一,Joomla!也遭到了网安社区的极大存眷。在洋洋洒洒500000多行的代码中,只要有一行代码存在网安成绩,就有可能招致服务器被入侵攻击。这次所发明的这个LDAP注入破绽(CVE-2017-14596)曾经存在了8年之久,但咱们仍旧要感激Joomla!网安团队,感激他们能够或许敏捷对此破绽停止响应,感激他们对该名目所做的进献。
写在前面的话
Joomla!今朝的下载量曾经超过了8400万次了,它也曾经成为了今朝环球最热点的内容管理系统之一。据统计,今朝互联网上有约莫3.3%的网站内容和文章都是由Joomla!驱动的。
咱们的代码阐发解决方案RIPS在Joomla!的LoginController中检测到了一个以前从未被发明过的LDAP注入破绽。这个网安破绽将容许长途入侵攻击者经由过程盲注技巧获得超等用户的暗码,并利用LDAP注入技巧在几秒内完整接管任何一个装置了Joomla!(版本号小于3.7.5)的网站。Joomla!今朝曾经在最新版本v3.8中修复了这个破绽。
受影响版本
相符以下前提的网站将会遭到该破绽的影响:
Joomla! v1.5
身份认证利用了LDAP的Joomla!
注:这并非一个设置装备摆设破绽,在利用该破绽的过程当中入侵攻击者并不必要任何的特别权限。
入侵攻击者能做甚么?
经由过程在登录页面利用该破绽停止入侵攻击,非特权的长途入侵攻击者能够提掏出LDAP服务器中所有的用户凭据(用于装置Joomla!),这些凭据包含特权用户和Joomla!管理员的用户名和暗码。获得到这些凭据以后,入侵攻击者就能够利用这些信息来登录Joomla!的管理员控制面板并完整接管Joomla!,或许经由过程上传自定义的Joomla!扩大完成长途代码履行并相干的Web服务器。
内容来自无奈安全网
破绽阐发:CVE-2017-14596
咱们的代码阐发解决方案RIPS能够或许自动化辨认出以下代码段中的网安破绽。首先在LoginController中,Joomla!利用能够从登录表单中接管用户供给的凭据数据。
/administrator/components/com_login/controller.php
凭据数据会被传递给login办法,而login办法中又会挪用authenticate办法。
/libraries/cms/application/cms.php
/libraries/joomla/authentication/authentication.php
authenticate办法能够向onUserAuthenticate办法发送用户凭据,详细办法取决于管理员所利用的身份验证插件。假如Joomla!在停止身份验证时利用的是LDAP,那末这里将必要挪用LDAP插件的内置办法。 本文来自无奈人生安全网
/plugins/authentication/ldap/ldap.php
在LDAP插件中,username嵌入在LDAP查问语句(在search_string选项中指定)中。依据Joomla!的民间文档,search_string设置装备摆设选项是一个用于搜刮用户的查问字符串,其中的[search]会被登录表单中的搜刮文本间接调换,比方“uid=[search]”。接下来,LDAP查问语句会被传递给LdapClient中的simple_search办法,这个函数卖力与LDAP服务器树立衔接并履行ldap_search办法。
/libraries/vendor/joomla/ldap/src/LdapClient.php
纵然RIPS没有能够或许发明LDAP查问字符串是从一个内部设置装备摆设文件加载出去的,但RIPS仍旧能够或许胜利检测并申报这个破绽的基本缘故原由:传递给ldap_search函数的用户输出固然嵌入在了LDAP查问语句中,但输出数据并无颠末数据洗濯。 本文来自无奈人生安全网
RIPS申报:【点我检查】
PoC:LDAP盲注
因为没有对LDAP查问语句中的username数据停止过滤,这将招致入侵攻击者能够或许改动LDAP搜刮的成果聚集。经由过程利用特别字符并察看分歧的认证差错信息,入侵攻击者将能够或许经由过程赓续地发送测试payload来暴力破解出凭据字符。
XXX;(&(uid=Admin)(userPassword=A*))
XXX;(&(uid=Admin)(userPassword=B*))
XXX;(&(uid=Admin)(userPassword=C*))
...
XXX;(&(uid=Admin)(userPassword=s*))
...
XXX;(&(uid=Admin)(userPassword=se*))
...
XXX;(&(uid=Admin)(userPassword=sec*))
...
XXX;(&(uid=Admin)(userPassword=secretPassword))
其中的每一行Payload代码都能够从LDAP服务器中提掏出目的数据,而这也是一种绝对异常高效的LDAP盲注入侵攻击方法。
光阴轴
2017年07月27日:向厂商供给破绽细节和PoC;
2017年07月29日:厂商确认破绽信息;
2017年09月19日:厂商宣布更新版本;
总结
作为今朝最热点的一款开源CMS利用之一,Joomla!也遭到了网安社区的极大存眷。在洋洋洒洒500000多行的代码中,只要有一行代码存在网安成绩,就有可能招致服务器被入侵攻击。这次所发明的这个LDAP注入破绽(CVE-2017-14596)曾经存在了8年之久,但咱们仍旧要感激Joomla!网安团队,感激他们能够或许敏捷对此破绽停止响应,感激他们对该名目所做的进献。 www.wnhack.com