sairon

Залили шелл на сайт

23 сообщения в этой теме

Залили шелл на сайт в корень, в wp-content, wp-content/uploads и еще хз куда.

Цитата

 

Known exploit = Fingerprint Match PHP Shell Exploit  P1517

Known exploit = Fingerprint Match  PHP REQUEST Exploit

 

называется как-то так up.php, wp-up.php и схожие названия.

Вопрос в следующем, как обезопасить в дальнейшем себя от залива подобного?

Я-то сейчас сайт восстановлю из бекапа, но как обезопасить себя в будущем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

seo-zona.ru Вячеславу заплатить копейку и он сделает всё в лучшем виде + проконсультирует

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как вариант: откатитесь и обновите ядро WP и все плагины. Должно помочь. Если сайт содержит собственноручные плагины и коды, их модификации, нужно ставить некоторые защиты. Например:

Создаем файл .htaccess и заливаем его в  /wp-includes

<FilesMatch "\.(php|php\.)(.+)(\w|\d)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>

Создаем файл .htaccess и заливаем его в /wp-content/uploads/ 

Order Allow,Deny
Deny from all
<FilesMatch "^[^.]+\.(?i:jpe?g|png|gif|pdf|ico|svg|css)$">
Allow from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)(.+)(\w|\d)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>

В файле functions.php текущей темы (вырезаем ненужное из ядра и прячем конфиденциальную инфо)

function remove_plugins() {
        remove_action('wp_head', 'feed_links_extra', 3);
        remove_action('wp_head', 'feed_links', 2);
        remove_action('wp_head', 'rsd_link' );
        remove_action('wp_head', 'wlwmanifest_link');
        remove_action('wp_head', 'wp_generator');
    remove_filter('comment_text', 'wptexturize');
remove_filter('the_content', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');
        remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
        remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
 }
    add_action('template_redirect', 'remove_plugins');

Открываем .htaccess в корне сайта и пихаем туда (запрещаем подозрительные обращения к сайту, блокируем распространенные боты, пауки и сканеры):

# Защита от хакеров от files. Подробности в скайпе: websochka
Options +FollowSymLinks -Indexes
########## Begin - Rewrite rules to block out some common exploits
# If the request query string contains /proc/self/environ (by SigSiu.net)
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
# Block out any script trying to base64_encode or base64_decode data within the URL
RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [OR]
## IMPORTANT: If the above line throws an HTTP 500 error, replace it with these 2 lines:
# RewriteCond %{QUERY_STRING} base64_encode\(.*\) [OR]
# RewriteCond %{QUERY_STRING} base64_decode\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]

RewriteCond %{REQUEST_METHOD} GET
# to put some exceptions
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=https:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=ftp:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
# CustomLog insert-path-and-name-of-log common env=bad-range
RewriteRule .* - [F]
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]
RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteCond %{QUERY_STRING} ^(%2d|\-)[^=]+$ [NC]
RewriteRule .* - [F]
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]
# CustomLog insert-path-and-name-of-log common env=bad-range
RewriteRule .* - [F]
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR]
RewriteCond %{THE_REQUEST} (\\r|\\n|%0A|%0D) [NC,OR]
RewriteCond %{HTTP_REFERER} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{HTTP_COOKIE} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (libwww-perl|curl|wget|python|nikto|scan) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{QUERY_STRING} proc\/self\/environ [NC,OR]
RewriteCond %{QUERY_STRING} etc\/passwd [NC,OR]
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh|sql|inc)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# BEGIN Bad Bot Blocker
SetEnvIfNoCase User-Agent "Abonti|aggregator|AhrefsBot|asterias|BDCbot|BLEXBot|BuiltBotTough|Bullseye|BunnySlippers|ca\-crawler|CCBot|Cegbfeieh|CheeseBot|CherryPicker|CopyRightCheck|cosmos|Crescent|discobot|DittoSpyder|DotBot|Download Ninja|EasouSpider|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|ExtractorPro|Fasterfox|FeedBooster|Foobot|Genieo|grub\-client|Harvest|hloader|httplib|HTTrack|humanlinks|ieautodiscovery|InfoNaviRobot|IstellaBot|Java/1\.|JennyBot|k2spider|Kenjin Spider|Keyword Density/0\.9|larbin|LexiBot|libWeb|libwww|LinkextractorPro|linko|LinkScan/8\.1a Unix|LinkWalker|LNSpiderguy|lwp\-trivial|magpie|Mata Hari|MaxPointCrawler|MegaIndex|Microsoft URL Control|MIIxpc|Mippin|Missigua Locator|Mister PiX|MJ12bot|moget|MSIECrawler|NetAnts|NICErsPRO|Niki\-Bot|NPBot|Nutch|Offline Explorer|Openfind|panscient\.com|PHP/5\.\{|ProPowerBot/2\.14|ProWebWalker|Python\-urllib|QueryN Metasearch|RepoMonkey|RMA|SemrushBot|SeznamBot|SISTRIX|sitecheck\.Internetseer\.com|SiteSnagger|SnapPreviewBot|Sogou|SpankBot|spanner|spbot|Spinn3r|suzuran|Szukacz/1\.4|Teleport|Telesoft|The Intraformant|TheNomad|TightTwatBot|Titan|toCrawl/UrlDispatcher|True_Robot|turingos|TurnitinBot|UbiCrawler|UnisterBot|URLy Warning|VCI|WBSearchBot|Web Downloader/6\.9|Web Image Collector|WebAuto|WebBandit|WebCopier|WebEnhancer|WebmasterWorldForumBot|WebReaper|WebSauger|Website Quester|Webster Pro|WebStripper|WebZip|Wotbox|wsr\-agent|WWW\-Collector\-E|Zao|Zeus|ZyBORG|coccoc|Incutio|lmspider|memoryBot|SemrushBot|serf|Unknown|uptime files" bad_bot
Deny from env=bad_bot
# END Bad Bot Blocker
AddDefaultCharset utf-8
AddType 'text/html; charset=utf-8' .html .htm .shtml

<files .htaccess>
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
</IfModule>
    </files>
    <files readme.html>
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
</IfModule>
    </files>
    <files readme.txt>
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
</IfModule>
    </files>
    <files wp-config.php>
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
</IfModule>
    </files>

    <IfModule mod_rewrite.c>
RewriteEngine On

# Защита системных файлов
RewriteRule ^wp-admin/install\.php$ - [F]
RewriteRule ^wp-admin/includes/ - [F]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F]
RewriteRule ^wp-includes/theme-compat/ - [F]

# Disable PHP in Uploads
RewriteRule ^wp\-content/uploads/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]

# Disable PHP in Plugins
RewriteRule ^wp\-content/plugins/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]

# Disable PHP in Themes
RewriteRule ^wp\-content/themes/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]
    </IfModule>

Если у Вас ситуация сложная и вы не понимаете как и зачем все это, то меня всегда можно найти в скайпе websochka

A1exandr, sairon, vituson и 1 другому понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ответ очень прост - не использовать ВП, как можно использовать эту сплошную дырку, шаблоны которого в основном на 90% состоят из php файлов, в котором куча всякого шлака, я незнаю....

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

чую набегут вордпрессники и будут доказывать, что у меня руки не с того места раз взламывают, - ответ даю сразу - я согласен, что руки не с того места, но на ВП больше в жизни не вернусь, хватило опыта 3-5 лет работы с ним....дыраааааа.... дырявей движка не встречал

woolfon и kuzovbmw понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, GUEVARA сказал:

ответ очень прост - не использовать ВП, как можно использовать эту сплошную дырку, шаблоны которого в основном на 90% состоят из php файлов, в котором куча всякого шлака, я незнаю....

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

чую набегут вордпрессники и будут доказывать, что у меня руки не с того места раз взламывают, - ответ даю сразу - я согласен, что руки не с того места, но на ВП больше в жизни не вернусь, хватило опыта 3-5 лет работы с ним....дыраааааа.... дырявей движка не встречал

На что в итоге перешли? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

ответ очень прост - не использовать ВП, как можно использовать эту сплошную дырку, шаблоны которого в основном на 90% состоят из php файлов, в котором куча всякого шлака, я незнаю....

Цитата

я согласен, что руки не с того места

Если вы не умеете водить автомобиль, но садитесь за руль и попадая в аварию начинаете хамить всем кто ездит на автомобиле - не совсем логично.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 minutes ago, files said:

Если вы не умеете водить автомобиль, но садитесь за руль и попадая в аварию начинаете хамить всем кто ездит на автомобиле - не совсем логично.

не подменяйте понятия, в данном случае хамства в сторону пользователей вп (водителей) не было, а только в сторону движка

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 минут назад, files сказал:

Как вариант: откатитесь и обновите ядро WP и все плагины. Должно помочь. Если сайт содержит собственноручные плагины и коды, их модификации, нужно ставить некоторые защиты. Например:

Создаем файл .htaccess и заливаем его в  /wp-content/wp-includes


<FilesMatch "\.(php|php\.)(.+)(\w|\d)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>

Создаем файл .htaccess и заливаем его в /wp-content/uploads/ 


Order Allow,Deny
Deny from all
<FilesMatch "^[^.]+\.(?i:jpe?g|png|gif|pdf|ico|svg|css)$">
Allow from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)(.+)(\w|\d)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>

В файле functions.php текущей темы (вырезаем ненужное из ядра и прячем конфиденциальную инфо)


function remove_plugins() {
        remove_action('wp_head', 'feed_links_extra', 3);
        remove_action('wp_head', 'feed_links', 2);
        remove_action('wp_head', 'rsd_link' );
        remove_action('wp_head', 'wlwmanifest_link');
        remove_action('wp_head', 'wp_generator');
    remove_filter('comment_text', 'wptexturize');
remove_filter('the_content', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');
        remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
        remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
 }
    add_action('template_redirect', 'remove_plugins');

Открываем .htaccess в корне сайта и пихаем туда (запрещаем подозрительные обращения к сайту, блокируем распространенные боты, пауки и сканеры):


# Защита от хакеров от files. Подробности в скайпе: websochka
Options +FollowSymLinks -Indexes
########## Begin - Rewrite rules to block out some common exploits
# If the request query string contains /proc/self/environ (by SigSiu.net)
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
# Block out any script trying to base64_encode or base64_decode data within the URL
RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [OR]
## IMPORTANT: If the above line throws an HTTP 500 error, replace it with these 2 lines:
# RewriteCond %{QUERY_STRING} base64_encode\(.*\) [OR]
# RewriteCond %{QUERY_STRING} base64_decode\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]

RewriteCond %{REQUEST_METHOD} GET
# to put some exceptions
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=https:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=ftp:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
# CustomLog insert-path-and-name-of-log common env=bad-range
RewriteRule .* - [F]
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]
RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteCond %{QUERY_STRING} ^(%2d|\-)[^=]+$ [NC]
RewriteRule .* - [F]
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]
# CustomLog insert-path-and-name-of-log common env=bad-range
RewriteRule .* - [F]
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR]
RewriteCond %{THE_REQUEST} (\\r|\\n|%0A|%0D) [NC,OR]
RewriteCond %{HTTP_REFERER} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{HTTP_COOKIE} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (libwww-perl|curl|wget|python|nikto|scan) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (<|>||%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond %{QUERY_STRING} proc\/self\/environ [NC,OR]
RewriteCond %{QUERY_STRING} etc\/passwd [NC,OR]
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh|sql|inc)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# BEGIN Bad Bot Blocker
SetEnvIfNoCase User-Agent "Abonti|aggregator|AhrefsBot|asterias|BDCbot|BLEXBot|BuiltBotTough|Bullseye|BunnySlippers|ca\-crawler|CCBot|Cegbfeieh|CheeseBot|CherryPicker|CopyRightCheck|cosmos|Crescent|discobot|DittoSpyder|DotBot|Download Ninja|EasouSpider|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|ExtractorPro|Fasterfox|FeedBooster|Foobot|Genieo|grub\-client|Harvest|hloader|httplib|HTTrack|humanlinks|ieautodiscovery|InfoNaviRobot|IstellaBot|Java/1\.|JennyBot|k2spider|Kenjin Spider|Keyword Density/0\.9|larbin|LexiBot|libWeb|libwww|LinkextractorPro|linko|LinkScan/8\.1a Unix|LinkWalker|LNSpiderguy|lwp\-trivial|magpie|Mata Hari|MaxPointCrawler|MegaIndex|Microsoft URL Control|MIIxpc|Mippin|Missigua Locator|Mister PiX|MJ12bot|moget|MSIECrawler|NetAnts|NICErsPRO|Niki\-Bot|NPBot|Nutch|Offline Explorer|Openfind|panscient\.com|PHP/5\.\{|ProPowerBot/2\.14|ProWebWalker|Python\-urllib|QueryN Metasearch|RepoMonkey|RMA|SemrushBot|SeznamBot|SISTRIX|sitecheck\.Internetseer\.com|SiteSnagger|SnapPreviewBot|Sogou|SpankBot|spanner|spbot|Spinn3r|suzuran|Szukacz/1\.4|Teleport|Telesoft|The Intraformant|TheNomad|TightTwatBot|Titan|toCrawl/UrlDispatcher|True_Robot|turingos|TurnitinBot|UbiCrawler|UnisterBot|URLy Warning|VCI|WBSearchBot|Web Downloader/6\.9|Web Image Collector|WebAuto|WebBandit|WebCopier|WebEnhancer|WebmasterWorldForumBot|WebReaper|WebSauger|Website Quester|Webster Pro|WebStripper|WebZip|Wotbox|wsr\-agent|WWW\-Collector\-E|Zao|Zeus|ZyBORG|coccoc|Incutio|lmspider|memoryBot|SemrushBot|serf|Unknown|uptime files" bad_bot
Deny from env=bad_bot
# END Bad Bot Blocker
AddDefaultCharset utf-8
AddType 'text/html; charset=utf-8' .html .htm .shtml

<files .htaccess>
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
</IfModule>
    </files>
    <files readme.html>
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
</IfModule>
    </files>
    <files readme.txt>
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
</IfModule>
    </files>
    <files wp-config.php>
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
</IfModule>
    </files>

    <IfModule mod_rewrite.c>
RewriteEngine On

# Защита системных файлов
RewriteRule ^wp-admin/install\.php$ - [F]
RewriteRule ^wp-admin/includes/ - [F]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F]
RewriteRule ^wp-includes/theme-compat/ - [F]

# Disable PHP in Uploads
RewriteRule ^wp\-content/uploads/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]

# Disable PHP in Plugins
RewriteRule ^wp\-content/plugins/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]

# Disable PHP in Themes
RewriteRule ^wp\-content/themes/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]
    </IfModule>

Если у Вас ситуация сложная и вы не понимаете как и зачем все это, то меня всегда можно найти в скайпе websochka

Огромное спасибо, очень полезная инфа. Сейчас откачу к бекапу до заражения, вроде все файлы созданы одним числом. Потом обновлю WP (не хотелось бы, но придется, есть плагины которые не работают как мне нужно с новыми версиями WP), а потом применю ваш гайд. Похожее находил, когда гуглил, но такого полного и объемного гайда не видел. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мой Вам совет. Всем. Сам WP из коробки достаточно безопасен, есть ручные методы. Не ставьте плагины, тем более сторонних разработчиков, они дырявые почти все. К примеру список похожих записей. кол-ва просмотров статей, вывести только нужные статьи, внешний вид, шаблоны и прочее можно делать легко без плагинов, мануала полно, та же ajax подгрузка, поиск, пагинация, хлебные крошки и даже сео настройки. Знаю людей которые ставят плагин чтобы favicon поставить это же бред, у меня стоит 5 плагинов, 4 из которых якорные. 

Но конечно же соглашусь что фреймворки лучше в 100 раз, но тут все от задачи зависит, одно дело слабенький блог, другое крупный проект 

vituson понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если руки, простите, из жопы, любая CMS будет дырявой. Я с 2008 года использую WP, ни разу ни одного сайта не заразили вирусами, ни одного шелла не залили. Были проблемы со скрытыми ссылками, но это только из-за использования "бесплатных" шаблонов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А есть какая-нибудь команда в cPanel чтобы найти файлы измененные в определенную дату? Как их автоматически найти?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
50 минут назад, sairon сказал:

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

belavir (php MD5)

sairon понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, sairon сказал:

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

Wordfence Security....и предупредит, и не даст изменить файл, и сканирует по заданию, и еще много цего, сильно не нагружает систему, комплексно заменяет все существующие плагины безопасности

sairon понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот почему я не работаю с wp вирусня прям и липнет к нему

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, files сказал:

Создаем файл .htaccess и заливаем его в  /wp-content/wp-includes


<FilesMatch "\.(php|php\.)(.+)(\w|\d)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>

отдельно в  /wp-content и отдельно в  /wp-includes ??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

отдельно в  /wp-content и отдельно в  /wp-includes ??

Отдельно туда и туда, файлы то разные! В некоторых ситуациях нужна их корректировка, если на сайте перестает что-то работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, sairon сказал:

заливаем его в  /wp-content/wp-includes

просто меня путь смутил))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

просто меня путь смутил))

Чем именно? Мы запрещаем прямые обращения к файлам ядра WP извне.

P.S. Там имеется ввиду корневой /wp-includes (напутал чуток)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, files сказал:

Чем именно? Мы запрещаем прямые обращения к файлам ядра WP извне.

Ну я к тому что вы пишете:
 

Создаем файл .htaccess и заливаем его в  /wp-content/wp-includes (такого пути нет, есть отдельно /wp-content и отдельно /wp-includes, поэтому я и уточнил, нижеследующий файл мы заливаем и туда и туда??)

<FilesMatch "\.(php|php\.)(.+)(\w|\d)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>




Потом вы пишете:

 

Создаем файл .htaccess и заливаем его в /wp-content/uploads/  (тут все ясно разрешаем конкретные типы файлов в папке /wp-content/uploads/)

Order Allow,Deny
Deny from all
<FilesMatch "^[^.]+\.(?i:jpe?g|png|gif|pdf|ico|svg|css)$">
Allow from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)(.+)(\w|\d)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|php\.)$">
Order Allow,Deny
Deny from all
</FilesMatch>
 
<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

В защите от XSS-атак поможет?

Да, поможет. Смотрите код корневого .htaccess

Sairon, про пути напутал (исправил в первом ответе и отписал в P.S. сообщением выше).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, files сказал:

Да, поможет. Смотрите код корневого .htaccess

По поводу XSS отписал Вам вчера в личку в тему Скрытые ссылки. Буду очень признателен, если поможете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

По поводу XSS отписал Вам вчера в личку в тему Скрытые ссылки. Буду очень признателен, если поможете.

Продублируйте еще раз, так как нет вашего сообщения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу