Joomla的mod_security规则集! pipe理

我运行了几个托pipe服务器,最近我经历了很多针对joomla的网站的暴力攻击。 攻击者似乎试图对administrator/index.php页面bruteforce。

当他们尝试使用以下规则集强制Wordpresslogin时,我通常会lockingIP:

 SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},id:5000134 <Locationmatch "/wp-login.php"> SecRule ip:bf_block "@gt 0" "deny,status:401,log,id:5000135,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'" SecRule RESPONSE_STATUS "^302" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000136" SecRule RESPONSE_STATUS "^200" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000137" SecRule ip:bf_counter "@gt 10" "t:none,setvar:ip.bf_block=1,expirevar:ip.bf_block=300,setvar:ip.bf_counter=0" </Locationmatch> 

但是我找不到Joomla!的类似规则,因为响应状态是“303见其他”,有效的密码和无效的密码。

任何帮助? 提前致谢!

    所以,这是我的答案。

    通过查看返回标题,我注意到Joomla! 当login无误时,后端会返回一些HTTP标头,并且在login无效时不会返回。

    例如,成功login后返回P3P标题,所以我只是寻找其长度> 0

     SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},id:5000144 <Locationmatch "/administrator/index.php"> SecRule ip:bf_block "@gt 0" "deny,status:401,log,id:5000145,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'" SecRule RESPONSE_HEADERS:P3P "streq 0" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000146" SecRule RESPONSE_HEADERS:P3P "!streq 0" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000147" SecRule ip:bf_counter "@gt 10" "t:none,setvar:ip.bf_block=1,expirevar:ip.bf_block=300,setvar:ip.bf_counter=0" </locationmatch> 

    接受的答案的问题是它没有考虑到login页面刷新何时发生。 因此,当人员刷新login页面时,将会执行以下操作之一:1)重置计数器(这是坏的)或2)将刷新计为失败的login(这也是不好的)。

    我们刚刚devise了一个处理基于“com_login”post值的Joomlapowershell攻击的规则。 如果该值在post值中,则表示login失败,如果不是则login成功。 规则可以在这里find。