1

我们已成为 WordPress 网站上恶意 DDOS 攻击的受害者。

值得庆幸的是,它们应该很容易被删除,因为它们是带有字符串 ?ptrxcz 附加到 URL 末尾的 GET 请求。

考虑到这一点,我们设置了规则,为使用 .htacess 实现此功能的请求提供 403 权限错误页面。问题是这些似乎也不适用于安装的永久链接。

这是我完整的 .htaccess 文件。

RewriteEngine On
RewriteCond %{QUERY_STRING} .*ptrxcz.*
RewriteRule (.*) - [F]

# BEGIN WordPress

<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

开始部分是使用 ptrxcz 将用户重定向到 403 页面。如果我删除它下面的 WordPress 规则,这将非常有效,但如果包含它们,它就永远不会起作用。

令人沮丧的是,使用带有 QUERY_STRING 搜索的负正则表达式可以正确地反向工作(使用查询字符串阻止除请求之外的所有内容,如下所示:

RewriteCond %{QUERY_STRING} !.*ptrxcz.*

(注意添加的!)

有谁有想法吗:

  1. 为什么它不适用于永久链接
  2. 我如何使它与永久链接一起使用
  3. 为什么查询字符串上的负正则表达式有效但不是正则表达式。
4

2 回答 2

1

我遇到了同样的问题,但严重到我启动了一个小型 Web 服务器来充当前端并过滤掉这些请求。相关的 iptables 规则是:

iptables -A INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'ptrxcz_' -j DROP

它指示系统检查请求的前 70 个字符,如果找到“ptrxcz_”,则静默丢弃请求。我尝试返回错误消息,但考虑到连接的另一端永远不会有用户读取错误,错误代码消耗的带宽不值得。

我创建了一篇博客文章,描述了我采取的步骤:

http://web.htcomp.net/?pageid=85&blogger=2

拉里

于 2013-04-22T15:29:43.947 回答
0

如果您QUERY_STRING在上面的代码中替换为THE_REQUESTthen 这可以正常工作,并且完全符合 WordPress 中的要求。

于 2013-02-21T09:27:14.637 回答