几个月前,我们刚开始在Rackspace上运行我们自己的Web服务器(他们很棒)。 我使用NewRelic(也非常酷)来监视服务器的使用情况,我得到的错误警报在我看来是注入攻击? 想知道是否有人能够通过洞察或build议如何挫败这些努力,摆脱错误和烦人的通知。
我们知道一个事实,这些不是要求我们的网站打电话。 我已经开始进入访问日志,并阻止了IP的请求,但他们稍后又回来了一个不同的。
下面是一个“MySQL错误”示例:
http://www.ourdomain.com/item.php?fetchitem=46 “+和+ 999999.9)+ UNION + ALL +select+ 0x393133353134353632312e39,0x393133353134353632322e39,0x393133353134353632332e39,0x393133353134353632342e39,0x393133353134353632352e39,0x393133353134353632362e39,0x393133353134353632372e39,0x393133353134353632382e39,0x393133353134353632392e39,0x39313335313435363231302e39, 0x39313335313435363231312e39,0x39313335313435363231322e39,0x39313335313435363231332e39,0x39313335313435363231342e39,0x39313335313435363231352e39,0x39313335313435363231362e39,0x39313335313435363231372e39,0x39313335313435363231382e39,0x39313335313435363231392e39,0x39313335313435363232302e39,0x39313335313435363232312e39,0x39313335313435363232322e39,0x39313335313435363232332e39,0x39313335313435363232342e39,0x39313335313435363232352e39,0x39313335313435363232362e39,0x39313335313435363232372e39,0x39313335313435363232382e39,0x39313335313435363232392e39 +和+ '1'='1
该url应该是www(dot)ourdomain(dot)com / item.php?fetchitem = 46
另一个:
(*),%(%),% 2F **%2fcOnCaT((%2F **%2fsElEcT(%2F **%2fsElEcT(%2F **%2fsElEcT +%2F **%2fcOnCaT(炭(33,126,33),计数(吨。%2F%** 2ftAbLe_nAmE),炭(33,126,33))+%2F **%2ffRoM + INFORMATION_SCHEMA。%2F **%2fsChEmAtA + AS + d + +joinINFORMATION_SCHEMA。%2F **%2ftAbLeS +作为+ T + T +。 %2F **%2ftAbLe_sChEmA + = + d。%2F **%2fsChEmA_NaMe +join+ INFORMATION_SCHEMA。%2F **%2fcOlUmNs +为+ C +上+ C。%2F **%2ftAbLe_sChEmA + = + d。%2F ** %2fsChEmA_NaMe +和+ C。%2F **%2ftAbLe_nAmE + = +吨。%2F **%2ftAbLe_nAmE +%2F **%2fwHeRe +未+ C。%2F **%2ftAbLe_sChEmA +中(0x696e666f726d6174696f6e5f736368656d61,0x6d7973716c)+和+ d。%2F **%2fsChEmA_NaMe + = +%2F **%2fdAtAbAsE()+和+ C。%2F **%2fcOlUmN_NaMe +等+ 0x25656d61696c6164647265737325))+%2F **%2ffRoM + INFORMATION_SCHEMA。%2F%** 2ftAbLeS +%2F **%2flImIt + 0,1),地板(兰特(0)* 2))×+%2F **%2ffRoM + INFORMATION_SCHEMA。%2F **%2ftAbLeS +%2F **%2fgRoUp%2F%** 2fbY + x)的一个)+和+ '1'='1
有人build议在iptables上限制80端口,但是我怕阻止潜在的真实用户。
所有的想法和build议表示赞赏! 谢谢!
对,就是那样。
我build议使用ModSecurity检测并阻止这些攻击。
来自ModSecurity CRS(核心规则集)的SQL注入检测示例规则:
您可以清楚地看到包含关键字“select”,“union”,“all”等的规则
是的,这是一个经典的SQL注入攻击。 你唯一真正的长期防御就是确保应用程序的安全,尽pipe你可以根据需要禁止IP地址,并且有各种各样的工具来尝试自动化。
最终,除非它成为DOS攻击,否则如果你的网站是注入证据,它们应该是相对无害的。 尽pipe如此,事情的这一面是更多的StackOverflow。
古典方形扫描; 住它或阻止它(但不是手动:)
如果你想防止sql-injection-attempt和需要一个轻量级的解决scheme,使用nginx + naxsi ,如果你能够安装和运行你的apache的反向代理infront(mod_security可以减慢你的网站相当多)
使用naxsi的原因
当不使用naxsi时: