欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

SugarCRM新的漏洞复现了,黑客攻击者或能远程盗取客户的信息数据

来源:本站整理 作者:佚名 时间:2017-09-25 TAG: 我要投稿

SugarCRM审计出多种网安成绩
SugarCRM是以后比拟热点的一款客户关系治理办理方案,SugarCRM今朝重要有两大版本,即必要付费的贸易版和开源的社区版,今朝统共有跨越一百二十多个国度和地域的两百多万自力用户正在应用SugarCRM来治理敏感的客户数据。
然则就在前不久,有一位网安研究人员申报称SugarCRM的代码中存在多处网安成绩,而SugarCRM的网安性成绩也渐渐引起了社区里其余网安研究人员的留意。为此,SugarCRM也宣布了新的版本以办理此中存在的网安成绩。
咱们此前曾对代码停止了人工审计,但咱们还盼望看看咱们的自动化代码阐发技巧RIPS【参考资料】能给软件的网安性带来如何的进献。经由过程阐发后,咱们扫描出了几个异常严重的网安成绩,而这些网安破绽漏洞bug将容许入侵攻击者从服务器中盗取客户数据或其余的敏感文件。
咱们应用RIPS阐发了开源的SugarCE版本(最新版本6.5.26,该版本与贸易版本SugarCRM同享根基代码),咱们在八分钟以内对统共816519行代码和软件数据流停止了网安性阐发。接下来,咱们将在本文中给人人先容此中最有意思的几个发觉到。必要留意的是,咱们曾经将相干成绩上报给了厂商,而且厂商现已修复了本文所涉及到的一切网安成绩(经由过程更新补钉完成)。
多步PHP工具注入破绽漏洞bug
RIPS所检测到的最严重的网安破绽漏洞bug存在于DetailView模块中。在绝大多数情况下,SugarCRM仅仅只会应用securexss()函数来避免入侵攻击者绕过SQL模板常量并注入非预置的SQL语句。这个函数卖力用响应的HTML实体调换掉语句中的单引号,并避免注入的产生。然则,securexss()函数并不会调换输出语句中的反斜杠字符。是以,除应用反斜杠来绕过securexss()以外,咱们还发觉到了以前存在的XSS成绩,接下来咱们一路看看这些成绩将若何从SQL查问语句中表现:
modules/Emails/DetailView.php
$parent_id = $_REQUEST['parent_id'];
// cn: bug 14300 - emails_beans schema refactor - fixing query
$query="SELECT * FROM emails_beans WHERE email_id='{$focus->id}'
    AND bean_id='{$parent_id}'
    AND bean_module = '{$_REQUEST['parent_module']}' " ;
$res=$focus->db->query($query);
$row=$focus->db->fetchByAssoc($res);
if (!empty($row)) {
    $campaign_data = $row['campaign_data'];
    $macro_values = array();
    if (!empty($campaign_data)) {
        $macro_values = unserialize(from_html($campaign_data));
    }
}
在DetailView模块中,查问语句是应用用户输出数据静态构建天生的,此中的单引号是颠末了调换处置的。假如用户供给的数据并不是恶意病毒木马数据,那末失常构建出的SQL查问语句将以下所示。在上面这条查问语句中,单引号内的字符串将会被转译成SQL字符串:

SELECT * FROM emails_beans WHERE email_id='123' AND bean_id='abc' AND bean_module='def'
然则,假如咱们在bean_id的开头部门增加一个反斜杠字符的话,会产生甚么呢?

SELECT * FROM emails_beans WHERE email_id='123' AND bean_id='abc\' AND bean_module='def'
此时,第二个AND前提将会被bean_id内的字符串给过滤掉,以是bean_id内内容将会扩展到剩下的SQL语句(下一个单引号以前),是以bean_module以后的值就会酿成用户可节制的值了。此时,入侵攻击者将可以或许在不消要损坏以前单引号的情况下注入随意率性的SQL语句了,而此时SugarCRM所下属的网安防护步伐也将会被绕过。(sugarcrm-sa-2017-006)
除此以外,SQL查问语句所获获得得campaign_data是颠末了unserialize()函数处置过的,而这将触发一个PHP工具注入破绽漏洞bug,这是一种异常严重的网安成绩,我在咱们以前的文章中也曾经重复评论辩论过屡次了。【参考资料一】【参考资料二】
SELECT * FROM emails_beans WHERE email_id='123' AND bean_id='abc\' AND bean_module='
UNION ALL SELECT 1,2,3,4,CHAR(76,76),6,7 FROM emails_beans LIMIT 1 -- x'
CSRF + SQL盲注
以前所先容的SQL注入破绽漏洞bug和咱们所申报的另一个SQL注入破绽漏洞bug只能经由过程一个有用的用户会话停止拜访。除这两个破绽漏洞bug以外,咱们还发觉到了一个SQL盲注破绽漏洞bug,这也就意味着咱们不会在HTML响应页面中看到SQL响应信息或任何的差错提醒。然则,入侵攻击者可以在不消要获得任何用户凭据的情况下在后盾长途应用该破绽漏洞bug实行入侵攻击,以是入侵攻击者不消再去诱骗用户拜访恶意病毒木马Web页面并获得用户的正当凭据了。上面给出的是一份恶意病毒木马页面演示样例:
视频地点:https://blog.ripstech.com/videos/sugarcrmsqliblindly.webm
在咱们的演示样例中,咱们应用JavaScript静态加载了一张图片,并将其URL属性所指向的目的设为了SugarCRM的装置法式,而这将容许入侵攻击者以认证用户的名义发送哀求。URL属性将包括一个SQL Payload,并向后端发送指令以提早数据库的部门内容响应。
SQL查问的响应光阴是一位入侵攻击者必需要去辨别的内容,咱们也曾经在咱们的PoC中演示了若何从基于光阴的SQL注入中提取有用信息。这里必要留意的是,信息的提取速率是可以经由过程优化从而获得大幅度晋升的。
认证文件泄漏
胜利应用SQL注入

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载