作家
登录

盘点2017年的WordPress插件漏洞

作者: 来源: 2017-12-07 10:32:57 阅读 我要评论

  • add_action('plugins_loaded', 'loginizer_load_plugin'); 
  • (4) 第四步:分析全局变量

    固然下面这段代码对于我们仁攀类来说可以随便马虎看懂,然则对于SAST对象来说分析起来可就异常复杂了。它须要经由过程多个函数调用来分析全局数组$loginizer的数据流,只有如许它才能够检测到lz_getip()函数传递给loginizer_can_login()函数(为对SQL语句中的拼接内容进行数据过滤)的用户输入信息。个中的SQL语句是经由过程自定义的SQL函数lz_selectquery()实现的,固然WordPress可以经由过程模仿magic_quotes来防止注入,然则来自HTTP头中的恶意用户输入数据并不会受此影响。

    modules/Emails/DetailView.php

    1. function loginizer_wp_authenticate($user, $username, $password) { 
    2.  
    3. global $loginizer, $lz_error, $lz_cannot_login, $lz_user_pass; 
    4.  
    5. if(loginizer_can_login()) { 
    6.  
    7. return $user; 
    8.  
    9.  
    10.  
    11. function loginizer_can_login() { 
    12.  
    13. global $wpdb, $loginizer, $lz_error; 
    14.  
    15. $result = lz_selectquery("SELECT * FROM ".$wpdb->prefix."loginizer_logs 
    16.  
    17. WHERE ip = '".$loginizer['current_ip']."';"); 
    18.  

    因为RIPS的分析算法重要针对的是PHP说话,是以它对WordPress的分析会比较到位,是以它可以或许辨认出WordPress复杂的数据流,并成功检测出插件中的SQL注入马脚。

    2. Ultimate Form Builder Lite 1.3.6-SQL注入马脚(CVE-2017-15919)

    Ultimate Form Builder插件今朝的安装量已经跨越了5万,它许可我们应用拖拽的情势来创建接洽表单。在本年十月份,研究人员在该插件中发明并申报了一个严重的SQL注入马脚,而该马脚将许可进击者接收目标WordPress网站。

    接下来,我们会分析代码中存在的问题,以及SAST对象若何才能检测到这个安然马脚。

    起首,插件要履行的所有SQL语句都须要被分析,固然WordPress数据库驱动跟插件代码无关,但它所应用的办法(例如get_rwo())是可以被RIPS引擎识其余(搜刮潜在的SQL注入马脚)。

    modules/Emails/DetailView.php

    在这里,引擎可以分析SQL语句以辨认注情面况。一般来说,这种处所的安然马脚是很难被发明的。如不雅它攫取的是form_id=’$form_id’而不是form_id=$form_id,那么这条语句就没有安然问题了,因为WordPress可以对用户的输入进行甄别。是以,只有那些高低文情况敏感的SAST对象才能够感知到这种隐蔽的安然问题。

    (2) 第二步:跟踪用户输入数据流

    这一步相对来说比较简答,你可以大年夜鄙人面的代码中看到,如不雅对象无法分析到$form_id的潜在隐患,那么受污染的数据将有可能扩散到其他功能函数中。

    modules/Emails/DetailView.php

    1. class UFBL_Lib { 
    2.  
    3. public static function do_form_process() { 
    4.  
    5. $form_data = array(); 
    6.  
    7. foreach ( $_POST['form_data'] as $val ) { 
    8.  
    9. if ( strpos( $val['name'], '[]' ) !== false ) { 
    10.  
    11. $form_data_name = str_WordStr( '[]', '', $val['name'] ); 
    12.  
    13. if ( !isset( $form_data[$form_data_name] ) ) { 
    14.  
    15. $form_data[$form_data_name] = array(); 
    16.  
    17.  
    18. $form_data[$form_data_name][] = $val['value']; 
    19.  
    20. } else { 

    21.   推荐阅读

        浏览器被关闭后挖矿脚本竟然还在运行?

      开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散今朝为止,仅在一个网站上发明这种挖矿脚本 今朝安然研究人员发明一种隐蔽在网站中的新型挖矿脚本。这个脚本应用一个渺小窗口隐蔽在>>>详细阅读


      本文标题:盘点2017年的WordPress插件漏洞

      地址:http://www.17bianji.com/lsqh/39543.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)