server {
set $block_sql_injections 0;
if ($query_string ~ “union.*select.*(“) {
set $block_sql_injections 1;
}
if ($query_string ~ “union.*all.*select.*”) {
set $block_sql_injections 1;
}
if ($query_string ~ “concat.*(“) {
set $block_sql_injections 1;
}
if ($block_sql_injections = 1) {
return 444;
}
WAF
全称是Web Application Firewall,跟Web Server耦合度很高,一般是作为Web Server的插件编译安装进去,常见的方案有下面几种:
- tengine_waf:基于Nginx二次开发的Tengine的WAF模块.
- Nginx+Sysguard:Nginx定制版WAF
- Nginx+HTTPGuard:Nginx定制版WAF
- Apache+Mod_security:Mod_security其实支持Apache和Nginx,原生的支持Apache,是很通用的一种方案.
一般WAF支持的功能是在以下层面进行匹配、过滤.
- user-agent 匹配拦截恶意的user-agent
- url 匹配拦截恶意的网页路径
- args 匹配拦截恶意的GET请求参数
- POST 匹配拦截恶意的POST请求参数
- Cookie 匹配拦截恶意的Cookie 请求
- whitetip IP白名单
- whiteurl 网页路径白名单
- blockip IP黑名单
4、日志分析
在海量的Web Server access.log中分析匹配攻击模型,从中发现SQL注入或者GetShell的敏感语句.
比如下面这个wordpress的攻击日志,通过报错或者’’敏感字符发现报警:
[07-Dec-2016 02:40:49] WordPress database error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘WHERE id = -1&; at line 1 for query SELECT text,author_id,date FROM WHERE id = -1&; (编辑:淮安站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|