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

Easy WP SMTP(v1.3.9)0 day漏洞被攻击的过程和复现

来源:本站整理 作者:佚名 时间:2019-05-14 TAG: 我要投稿

前言
自己博客网站用wordpres托管着,上个月发现了一些异常。
3.12日,邮箱爆了,收到了100多封关于网站被爆破的通知邮件。

那天看到也觉得不奇怪,因为之前就出现过这样的情况,每天都会有几十条爆破通知,让他们去日(佛系开站)……
可那几天邮件不断的提示音告诉我,这件事情并不是那么简单。
15日,爆破通知比前两天高了一倍,我马上登入网站查看情况,并没有发现什么异常,只是量多了而已,爆破的IP都进行了阻止。该死的是那段时间根本没空,这边跑那边跑,哪还有时间去理你这爆破。
16号爆破数量降了下来,我也就更加没有在意了,直到19号,邮件提示我网站新成员注册???

网站注册功能关了还能注册?这是发现自己被日了;爆破的脚步也随着用户注册成功停止了下来。
至于后来那些爆破,估计不是同一伙人,在账号注册成功后还收到大量的网站锁定通知。
根据爆破的时间分析,都在23-7这个时间段,那几天累成狗,我凌晨还和你刚吗?
直到看到这份邮件,我*****……

网站都不是我的网站了。
登入网站后台发现阻止的IP已经全部被清空:


攻击者最后登入时间。想想这招妙啊,还爆破啥,直接用它自己的账户登入。

我看看了日历,估计要忙到4月初。。
我赶紧关闭了网站,把网站备份了下来,用于事后分析。
分析
分析开始,前面一堆废话……
网站被做了一下更改:注册功能被打开。

发现新注册用户:

网站首页地址被修改:

网站首页被注入script脚本进行跳转到恶意网站,在其多个插件主题页面也发现script脚本植入跳转。

根据网站被修改的内容和3.15日被NinTechNet最新披露WordPress WP SMTP插件出现0 day漏洞(存在于v1.3.9版本中)判断,攻击者就是利用了该0 day漏洞;
3.17日,官方更新了版本v1.3.9.1,还未更新版本的站长请及时更新!
漏洞分析:问题代码块
   function admin_init() {
 if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
     add_action( 'wp_ajax_swpsmtp_clear_log', array( $this, 'clear_log' ) );
     add_action( 'wp_ajax_swpsmtp_self_destruct', array( $this, 'self_destruct_handler' ) );
 }
 //view log file
 if ( isset( $_GET[ 'swpsmtp_action' ] ) ) {
     if ( $_GET[ 'swpsmtp_action' ] === 'view_log' ) {
  $log_file_name = $this->opts[ 'smtp_settings' ][ 'log_file_name' ];
  if ( ! file_exists( plugin_dir_path( __FILE__ ) . $log_file_name ) ) {
      if ( $this->log( "Easy WP SMTP debug log file\r\n\r\n" ) === false ) {
   wp_die( 'Can\'t write to log file. Check if plugin directory  (' . plugin_dir_path( __FILE__ ) . ') is writeable.' );
      };
  }
  $logfile = fopen( plugin_dir_path( __FILE__ ) . $log_file_name, 'rb' );
  if ( ! $logfile ) {
      wp_die( 'Can\'t open log file.' );
  }
  header( 'Content-Type: text/plain' );
  fpassthru( $logfile );
  die;
     }
 }
 //check if this is export settings request
 $is_export_settings = filter_input( INPUT_POST, 'swpsmtp_export_settings', FILTER_SANITIZE_NUMBER_INT );
 if ( $is_export_settings ) {
     $data      = array();
     $opts      = get_option( 'swpsmtp_options', array() );

[1] [2] [3]  下一页

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