频道栏目
读书频道 > web开发 > 其他综合 > 代码审计:企业级Web代码安全架构
2.3.5 SQL执行监控工具
2015-11-27 15:56:19     我来说两句
收藏   我要投稿
本书共分为三个部分。第一部分为代码审计前的准备,包括第1~2章,第1章详细介绍代码审计前需要了解的PHP核心配置文件以及PHP环境搭建的方法;第2章介绍学习PHP代码审计需要准备的工具,以及这些工具的详细使用方  立即去当当网订购

SQL执行监控可以非常高效地帮助我们发现一些SQL注入和XSS等问题,帮助我们非常方便地观察到数据在Web程序与数据库中的交互过程,在做模糊测试时,只需利用模拟测试工具爬取页面的URL及表单,提交特定的参数如带单引号(‘)等,通


 

过分析SQL执行日志则可以非常准确地判断出SQL注入漏洞是否存在,同样的注入<>”等符合也可以用来测试XSS漏洞

这里分别针对MySQL和MSSQL列举SQL执行监控的工具和使用方法,其中着重介绍MySQL的监控,因为PHP大多都是使用的MySQL作为存储。

针对MySQL的执行监控,笔者没有找到比较好的工具,于是在自己的代码审计系统上加入了这么一个插件,主要原理是开启MySQL的general_log来记录MySQL的历史执行语句,它有两种记录方式,默认是通过记录到文件方式,另外一种是通过直接记录到MySQL库的general_log表中,为了更方便地查询,我选择的是记录到MySQL数据库的方式。另外这个功能的开启方式也有两种,一种是直接用MySQL的SQL语句开启,SQL语句如下:

set global general_log=on;
SET GLOBAL log_output='table';

执行结果如图2-35所示。

不过这些步骤在笔者的工具中都自动完成了,同时它还支持快速过滤实时预览。只要点击下断,操作完之后点击更新即可看到这段时间内在MySQL执行过的所有SQL语句,主界面如图2-36所示。


 

另外一种开启方法是在MySQL配置文件中修改,在[mysqld]配置中加入如下代码:

general_log=ON
general_log_file={日志路径}/query.log

重启MySQL后可以看到所有的SQL查询语句都会记录在设置的这个文件中。

SQL Server执行监控也很简单,在SQL Server 上自带有一个性能监控的工具SQL Server Profiler,在开始菜单里可以找到它,使用SQL Server Profiler可以将SQL执行过程保存到文件和数据库表,同时它还支持实时查看和搜索。

下面我们来看看怎么使用它,打开 SQL Server Profiler后,在左上角的菜单栏里选择“文件→新建跟踪”,在常规栏输入跟踪名(随意)后,点击“事件选择”标签,我们只需要SQL执行过程,所以要过滤掉一些干扰的东西,比如登录、退出等,在事件选择里只保留TSQL下面的SQL:BatchCompleted事件,然后点击“运行”,如图2-37所示。


 

运行后监控的到SQL语句如图2-38所示。


 

从图中监控结果可以非常清楚第看到之前执行的SQL语句以及开始执行时间、结束时间。

 

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.3.4 正则调试工具
下一篇:引言
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站