Sqlmap联合Nginx实现“地毯式”检测网站SQL注入漏洞

以安全防御方的角度来看,防御的广度比深度更具优先级,这也是信息安全中木桶原理的体现。

Sqlmap是一个开源的SQL注入漏洞检测工具,Nginx是高性能的WEB服务器。今天我们将二者结合起来,对网站的SQL注入漏洞实现“地毯式”的检测!

思路

sqlmap可以批量导入http代理的日志,根据日志中的每一个请求进行分析和探测。(可参考sqlmap帮助文档) 所以,我们可以配置nginx记录下网站所有的http请求信息,格式化处理后提供给sqlmap,这样sqlmap就能根据网站的每一个请求进行检测,从而实现最全面的检测效果。

操作步骤

实验环境:centos 6.5 + nginx + sqlmap

1. 配置nginx,记录请求信息

nginx无法记录完整的请求信息(反正我没找到),只能指定相应的字段进行记录,不过够了,关键信息基本都有了。

这里有个细节可以注意下,sqlmap接受的log日志是有一定格式的,所以要拼凑出这个格式。

修改nginx配置文件中的log_format的内容如下:

log_format main '=====================================================


=====================================================
$request
Cookie: $http_cookie
User-Agent: $http_user_agent
Content-Type: $content_type
Content-Length: $content_length
Host: $host

$request_body
=====================================================


';   #到这结束,注意上面的空行

记录的字段分别为:请求行、cookie、agent、content-type、content-length、host、post参数。

这样记录下来post请求参数也能检测了;实际上如果是get请求的话只记录请求行就行了。 配置好后记得重启nginx。

现在日志应该是这个样子了:

2.格式化日志

在linux下换行符是LF,而HTTP协议中要求的换行符为CRLF,所以要替换换行符为CRLF;

方法1

终端执行

perl -p -i -e 's/\n/\r\n/' access.log

方法2

使用vi编辑器编辑access.log 在命令模式下输入:set ff=dos 然后保存退出

3.根据日志,执行检测 终端执行:

sqlmap.py  -l  access.log  --batch  -smart

可以看到针对日志中的请求记录进行检测了:

总结

这个方案的优势在于:可以利用网站的普通访问来帮助我们对网站来进行注入检测,达到“人人为我”的效果,这也算是一种互联网思维吧。

个人拙作,欢迎大家讨论。

[本文由作者占个位撰写并投稿,转载请注明来自FreeBuf.COM]

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2014-11-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

nginx应用总结(1)--基础认识和应用配置

在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结。 一、nginx服务简介 Ng...

51560
来自专栏IT笔记

Tomcat优化之配置线程池

简介 线程池作为提高程序处理数据能力的一种方案,应用非常广泛。大量的服务器都或多或少的使用到了线程池技术,不管是用Java还是C++实现,线程池都有如下的特点:...

37280
来自专栏云计算教程系列

如何使用RabbitMQ和Python的Puka为多个用户提供消息

只有在安装和配置软件后,才能使用RabbitMQ发送和接收消息,安装教程可以参考CentOS安装RabbitMQ的教程。

17340
来自专栏大数据智能实战

HBase启动过于缓慢的原因及其优化策略

当HBASE导入了几十亿的数据记录时,某一天重启一下HBASE,发现启动过于缓慢,一直在提示PleaseHoldException:Master is init...

25890
来自专栏Java帮帮-微信公众号-技术文章全总结

Java模板生成word文档/POI生成Excel【面试+工作】

首先要指出的是,实现的思路和freeMarker差不离,将.doc的文档做相应的转换后转为.ftl文档,其中的变量会以${xxx}来代替,这样就可以

1K20
来自专栏乐沙弥的世界

Percona XtraDB Cluster集群线程模型

Percona XtraDB集群创建一组线程来为其操作提供服务,这些线程与现有的MySQL线程无关。有三个主要线程组:

9300
来自专栏程序员互动联盟

【专业技术】arm中的7种执行模式

嵌入式设备已经越来越与我们的日常生活密切相关了,由此带来了ARM的高速发展。就拿我们的手机来说吧,几乎所有的手机都是ARM体系的。这里大致介绍下ARM 的7种执...

42690
来自专栏java思维导图

【 CDN 最佳实践】CDN 命中率优化思路

CDN 在静态资源的加速场景中是将静态资源缓存在距离客户端较近的CDN 节点上,然后客户端访问该资源即可通过较短的链路直接从缓存中获取资源,而避免再通过较长的链...

84220
来自专栏流柯技术学院

loadrunner录制回放常见问题及解决办法

1.录制错误     1)录制本机 WebTours 或录制本地网站无法打开     当 使 用 Vista 以 后 的 操 作 系 统 时 , 会 出 现 该...

33920
来自专栏白驹过隙

架构设计 - Server设计草稿

13820

扫码关注云+社区

领取腾讯云代金券