.htacess和随机文件被黑客入侵

最近在我的一个运行apache和php的客户端服务器上,我注意到一大堆随机文件被放置在网站的每个文件夹中。 他们被命名为随机数字,如205492.php。

还有.htaccess文件已被放置在随机编号的文件。 我的主机告诉我它的客户端上传脚本在PHP中,但所有者/文件组被设置为httpd。 我认为这意味着它放置在这里的文件的Apache守护进程。 这些文件的创build时间都设置为完全相同的时间戳。

在随机的php文件中有很多CURL和base64_encode函数。 我没有注意到build立我的客户网站的人在整个文件夹的chmod到777。 我已经改变为755认为可能是问题。

我想知道有没有人听说过这样的事情,如果有人有任何build议。 非常感谢您的时间。

不仅是糟糕的或平均的,通常很好的PHP程序员会忘记安全目标。

尽pipe它并不是石刻,但通过引入一些规则,黑客网站可能会变得更加困难

  • 代码/数据/工作文件分割和权限执行
  • 代码:保存可执行文件的目录:此目录必须可以访问,但不能由运行apache的用户写入(不同系统中的www-data或httpd)(php_admin_flag引擎启用)
  • 数据:CSS文件的位置,图片和页面附带的静态文件:这个目录一定不能被Apache(php_admin_flag引擎closures)写入或执行,
  • 一个用户可上传文件的目录,临时文件等等:这个directive可能是可写的,但不能由Apache执行(php_admin_flag引擎closures)
  • 禁用.htaccess文件:三分之一的时间,网站“黑客”只是重写.htaccess文件,所以这就像一个特权升级。 如果不需要检查任何.htaccess文件是否位于正在服务的path的_any_级别,也会加速Apache。
  • 在PHP中引入非限制性的限制,比如
    • 禁用未使用的function(系统,exec在开始),
    • 引入open_basedir(严格说明php exec不允许的目录)
    • 在Directory /中closuresphp_admin_flag引擎,只允许特定的目录(或更好的特定文件)
    • display_errors严格closures
    • 与虚拟主机的许多网站,它是变得方便,如果一个引入一个sendmail包装,为了水印每个外出的信件,更容易find哪个虚拟主机泛滥的垃圾邮件系统
  • 当然也可以避免包含GET / POSTvariables的常见错误
  • 一个简单的sendmail包装器:

    #!/bin/sh umask 077 TEMP=/tmp CHROOT=${1:-unspecified} trap "rm -f msg.$$ ; exit 1" 0 1 2 3 15 rm -f msg.$$ || exit 1; cat | formail -f -I "X-subsystem-sent: \"$CHROOT\"" >$TEMP/trapmail.$$ exec <$TEMP/trapmail.$$ || exit 1 rm -f $TEMP/trapmail.$$ # safe, we hold the file descriptor exec /usr/sbin/sendmail -t -i exit 1 

    在网站正在使用的文件/库中有一个漏洞。 利用漏洞可以将file upload到服务器,听起来像是放在任意位置。 由于PHP运行的是与Apache相同的用户,所有上传的文件将由该用户拥有。 其次,因为文档根被修改为777,它允许任何系统用户将文件/文件夹写入该path。

    像你这样更改权限级别,chmod 755将有助于解决这个问题,但是我build议您查看一下日志/代码,并消除漏洞利用或可能的漏洞利用。

    我和我的一个网站有类似的情况。 我使用服务器日志和基于PHP的CMS日志来识别IP地址。

    使用.htaccess文件我添加了以下行(阻止访问点空白)

     #Blacklist RewriteCond %{REMOTE_ADDR} (?:123.123.123.123) [NC] 

    用IP代替上面的数字(或者如果它来自一个狡猾的国家,则阻止整个范围),这就是我所做的。 做了这份工作 这只是一个可能的解决scheme。 希望能帮助到你!