nginx服务器防sql注入与溢出(二)
上一篇——nginx服务器防sql注入与溢出(一) 列出了常用的进行注入与溢出的各种防止方法。但是上文列出的是普遍的方法,针对各自现网应用的不同,使用上也需要进行相应的调整。下面列出一下我现网中的防止方法。
一、自动防护
1if ($request_uri ~* .(htm|do)?(.*)$) {
2 set $req $2;
3}
4if ($req ~* "(cost()|(concat()") {
5 return 503;
6}
7if ($req ~* "union[+|(%20)]") {
8 return 503;
9}
10if ($req ~* "and[+|(%20)]") {
11 return 503;
12}
13if ($req ~* "select[+|(%20)]") {
14 return 503;
15}
1、这里之所以使用$request_uri而未使用$query_string变量,因为通过$request_uri进行rewrite分割更精准。
2、%20代表的是空格,同上文不的是,我这里把上面的空格匹配进行了取消。这样像www.361way.com/aaa.do?select * from test之样的也可以进行匹配。
3、上面的htm是伪静态,实际上同.do一样,也是动态文件。为了便于和静态文件进行区分,这里选择了htm而不是html。
4、注意,最上面的url里面的? ,这个也分重要。如果没有的话,www.361way.com/aaa.htm select * from test不会被过滤,而www.361way.com/aaa.htm?select * from test会被过滤。如果想将前面的也过滤,只需要把? 取消即可。
二、日志获取,手动分析
具体哪些url有可能有注入漏洞而被人扫描了,可以利用下面的脚本并通过mail发送。
1#!/bin/bash
2cd /tmp
3/bin/rm -rf nginxanalay.tar.gz
4cd /logs/nginx
5egrep '(sqlmap|select|"order by")' *|egrep -v '(Googlebot|Baiduspider|Sosospider|stepselect)'|awk -F 'HTTP/1.1"' '{print $1}' > /tmp/nginxanalay.log
6cd /tmp
7tar czvf nginxanalay.tar.gz nginxanalay.log
8/usr/bin/sendEmail -f [email protected] -t 收件人1 收件人2 -s mail.361way.com -u 'site sql analay' -m 'this is nginxlog analay . see Annex ,That is
9 may be injected into page .' -xu 用户名 -xp 密码 -a /tmp/nginxanalay.tar.gz
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/ant-injection/2561.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.