sairon

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

23 posts in this topic

Залили шелл на сайт в корень, в 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 и схожие названия.

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Как вариант: откатитесь и обновите ядро 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

sairon, Elliot, vituson and 1 other like this

Share this post


Link to post
Share on other sites

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

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

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

kuzovbmw and woolfon like this

Share this post


Link to post
Share on other sites
2 минуты назад, GUEVARA сказал:

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

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

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

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

Share this post


Link to post
Share on other sites
Цитата

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

Цитата

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

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

Share this post


Link to post
Share on other sites
6 minutes ago, files said:

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

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

Share this post


Link to post
Share on other sites
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), а потом применю ваш гайд. Похожее находил, когда гуглил, но такого полного и объемного гайда не видел. Спасибо.

Share this post


Link to post
Share on other sites

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

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

vituson likes this

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites
50 минут назад, sairon сказал:

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

belavir (php MD5)

sairon likes this

Share this post


Link to post
Share on other sites
2 часа назад, sairon сказал:

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

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

sairon likes this

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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 ??

Share this post


Link to post
Share on other sites
Цитата

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

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

Share this post


Link to post
Share on other sites
18 минут назад, sairon сказал:

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

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

Share this post


Link to post
Share on other sites
Цитата

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

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

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

Share this post


Link to post
Share on other sites
Только что, 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>

Share this post


Link to post
Share on other sites
Цитата

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

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

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

Share this post


Link to post
Share on other sites
8 минут назад, files сказал:

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

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

Share this post


Link to post
Share on other sites
Цитата

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.