Атаки на WordPress-блоги и htaccess

G0
На сайте с 21.07.2012
Offline
8
2424

Добрый день.

На мой блог также были атаки - брутили админку, сервер грузили как надо, но я легко и удачно обошел эту занозу в заднице: поставил плагин Captcha с переводом слов на русский и плагин отключения доступа к wp-admin на 15 минут после 3-х неправильных вводов, причем не важно с какого IP и какие куки.

Если у вас есть несколько минут свободного времени и вы разбираетесь в синтаксисе Htaccess, прошу посмотрите этот конфиг, где тут может быть уязвимость ? :confused: Именно из-за приведенного ниже .htaccess файла был взломан блог моего знакомого и вставлен Malware код...

AddDefaultCharset utf-8

Options -Indexes

<FilesMatch "^(wp-config\.php|php\.ini|php5\.ini|readme\.html|bb-config\.php)">
order allow,deny
deny from all
</FilesMatch>

<files wp-config.php>
order allow,deny
deny from all
</files>

<files .htaccess>
order allow,deny
deny from all
</files>

<FilesMatch "\.(inc|cfg)$">
order allow,deny
deny from all
</FilesMatch>

LimitRequestBody 10240000
ServerSignature Off

AddType "application/x-rar-compressed" .rar
AddType "application/rar" .rar
AddType "application/x-compressed" .rar
AddType "application/x-rar" .rar
AddType "application/x-rar-compressed; application/x-compressed" .rar
AddType "compressed/rar; application/x-rar-compressed" .rar
AddType "application/zip" .zip

ExpiresByType image/gif "modification plus 1 days"
ExpiresByType image/jpeg "modification plus 1 days"
ExpiresByType image/jpg "modification plus 1 days"
ExpiresByType image/png "modification plus 1 days"
DirectoryIndex index.php index.html /index.php

ErrorDocument 404 /404.php
ErrorDocument 503 /404.php

RedirectMatch (timthumb)\.php$ /.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^http://mysite.su [NC]
RewriteRule ^(.*)$ http://www.mysite.su/$1 [R=301,L]
</IfModule>

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ -
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*mysite.su.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite\.su/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?rutracker\.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://?rutracker\.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?bozzi\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yandex\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yandex\.net/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.com.ua/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.by/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yahoo\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?nigma\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?rambler.ru\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?gogo\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mail\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?wowlol\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?undsoft\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?bing\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?bing\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?msn\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?msn\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?feedburner\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?poisk\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?plus.google\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?vk\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?facebook\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?twitter\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?odnoklassniki\.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !search?q=cache [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|js|css|pdf|tar|gz|z|exe|sfx|dds|rar|7z|zip|flv|mp4|mp3|avi)$ Hotlinks.png [L]

RewriteEngine On
RewriteCond %{QUERY_STRING} boot.ini [NC,OR]
RewriteCond %{QUERY_STRING} mosConfig [NC,OR]
RewriteCond %{QUERY_STRING} ftp: [NC,OR]
RewriteCond %{QUERY_STRING} tag= [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(globals|encode|config|localhost|loopback).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare|drop).* [NC]
RewriteRule ^(.*)$ - [F,L]

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK|DEBUG) [NC]
RewriteRule ^(.*)$ - [F,L]

RewriteCond %{QUERY_STRING} ^.*(http|https|ftp)(%3A|:)(%2F|/)(%2F|/)(w){0,3}.?(blogger|picasa|blogspot|tsunami|petapolitik|photobucket|imgur|imageshack|wordpress\.com|img\.youtube|tinypic\.com|upload\.wikimedia|kkc|start-thegame).*$ [NC,OR]
RewriteCond %{THE_REQUEST} ^.*(http|https|ftp)(%3A|:)(%2F|/)(%2F|/)(w){0,3}.?(blogger|picasa|blogspot|tsunami|petapolitik|photobucket|imgur|imageshack|wordpress\.com|img\.youtube|tinypic\.com|upload\.wikimedia|kkc|start-thegame).*$ [NC]
RewriteRule .* index.php [F,L]

RewriteCond %{REQUEST_URI} (timthumb\.php|phpthumb\.php|thumb\.php|thumbs\.php) [NC]
RewriteCond %{HTTP_REFERER} ^.*demo5.local.*
RewriteRule . -

RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|"|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
RewriteCond %{THE_REQUEST} \?\ HTTP/ [NC,OR]
RewriteCond %{THE_REQUEST} \/\*\ HTTP/ [NC,OR]
RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
RewriteCond %{THE_REQUEST} (%0A|%0D|\\r|\\n) [NC,OR]
RewriteCond %{REQUEST_URI} owssvr\.dll [NC,OR]
RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
RewriteCond %{QUERY_STRING} (\.\./|\.\.) [OR]
RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
RewriteCond %{QUERY_STRING} http\: [NC,OR]
RewriteCond %{QUERY_STRING} https\: [NC,OR]
RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*embed.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^e]*e)+mbed.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*object.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^o]*o)+bject.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*iframe.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^i]*i)+frame.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR]
RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D) [OR]
RewriteCond %{QUERY_STRING} ^.*(\(|\)|<|>|%3c|%3e).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(\x00|\x04|\x08|\x0d|\x1b|\x20|\x3c|\x3e|\x7f).* [NC,OR]
RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [OR]
RewriteCond %{QUERY_STRING} (\./|\../|\.../)+(motd|etc|bin) [NC,OR]
RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1) [NC,OR]
RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{QUERY_STRING} concat[^\(]*\( [NC,OR]
RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR]
RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC,OR]
RewriteCond %{QUERY_STRING} \-[sdcr].*(allow_url_include|allow_url_fopen|safe_mode|disable_functions|auto_prepend_file) [NC,OR]
RewriteCond %{QUERY_STRING} (;|<|>|'|"|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [NC,OR]
RewriteCond %{QUERY_STRING} (sp_executesql) [NC]
RewriteRule ^(.*)$ - [F,L]

Спасибо за помощь, я в упор не вижу нареканий в этом коде...:(

MaksimAlekseev
На сайте с 09.08.2013
Offline
14
#1

А не проще вам просто поставить на эту папку авторизацию через веб сервер?

Хостинг сайтов с проактивной защитой от вирусов - http://yutex.ru (http://yutex.ru)
K5
На сайте с 21.07.2010
Offline
209
#2

почему иакая уверенность, что проблема в приведенном .htaccess?

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
S_E_O
На сайте с 22.07.2006
Offline
237
#3
MaksimAlekseev:
А не проще вам просто поставить на эту папку авторизацию через веб сервер?

У меня с сайтами на DLE та же самая шляпа. Поставил дополнительную авторизацию, и проблемы как не бывало :).

█ ⭐ █ Размещение ссылок на 60 строительных сайтах без бирж: ⭐пакет №1 https://searchengines.guru/ru/forum/922181 ⭐ пакет №2 ( https://searchengines.guru/ru/forum/925481 ), ⭐пакет №3 ( https://searchengines.guru/ru/forum/938528 ), и ⭐пакет №5 ( https://searchengines.guru/ru/forum/977443 ) .
siv1987
На сайте с 02.04.2009
Offline
427
#4
g250:
Именно из-за приведенного ниже .htaccess файла был взломан блог моего знакомого и вставлен Malware код...

С чего вы взяли? htaccess обычно является следствием, а не причиной.

Z
На сайте с 13.12.2009
Offline
438
#5
g250:
плагин отключения доступа к wp-admin на 15 минут после 3-х неправильных вводов, причем не важно с какого IP и какие куки.

а что за плагин? :)

Консультации, seo-аудиты - https://seo-consulting.su Профессионально и без воды
SeVlad
На сайте с 03.11.2008
Offline
1474
#6

Только я один не понимаю нафига только мусора в хтацессе для Вордпресса?

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Топики помощи с ⓌordPress (https://searchengines.guru/ru/forum/1032910 ) и основы безопасности сайтов ( https://searchengines.guru/ru/forum/774117 ). *** Помощь\консультации в топиках форума - БЕСПЛАТНО. Платные услуги ( https://wp.me/P3YHjQ-3 ) - с бюджетом от 150$ ***
worldfoto
На сайте с 20.04.2012
Offline
179
#7

Чтобы уберечь WordPress от атак.

1. Не используйте имя пользователя "admin". Если вы не меняли имя после создания своего аккаунта на WordPress, то создайте новый аккаунт с другим именем, перенесите туда все посты и измените имя пользователя "admin" (или вообще его удалите). Кроме того, вы можете использовать плагин Admin Renamed Extended, который позволяет быстро поменять имя пользователя.

2. Используйте сложный пароль. Для генерации пароля можно использовать автоматические системы генерации паролей.

Придумывая пароль, не используйте в нем имена, название вашей компании или сайта, не используйте словарные слова, только буквы или только цифры, избегайте коротких паролей.

Сложный пароль защитит не только содержимое сайта. Получив доступ в админ-панель сайта, хакер может установить различные скрипты, которые могут нанести вред всему серверу.

3. Вы можете использовать следующие плагины, которые ограничивают количество попыток входа или блокируют тех, кто пытаются получить доступ к wp-admin:

Limit Login Attempts

Lockdown WP Admin

WP Fail2Ban

Admin Renamed Extended

Enforce Strong Password

Wordfence Security

3WP Activity Monitor

All in one WP Security

⭐-> HostPro.ua_ - Лучший хостинг. с CPanel и бесплатным ssl сертификатом. Сам пользуюсь и рекомендую. Пожизненная скидка -10% с промокодом, на Хостинг, Cервера "searchengines-10%" https://bit.ly/38IeuNR
SeVlad
На сайте с 03.11.2008
Offline
1474
#8
worldfoto:
Чтобы уберечь WordPress от атак.

И ничего это не спасёт от атак. От взлома - другое дело.

А плагинов мало. Надо больше :)

Z
На сайте с 13.12.2009
Offline
438
#9
SeVlad:
Только я один не понимаю нафига только мусора в хтацессе для Вордпресса?

у меня там по умолчанию 4 строчки :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий