⑴ sql注入哪些工具最有效
SQL Power Injector是一款在.Net 1.1中创建的应用程序,可帮助渗透测试人员在网页上查找和利用SQL注入。
特征
支持Windows,Unix和Linux操作系统
SQL Server,Oracle,MySQL,Sybase / Adaptive Server和DB2兼容
SSL支持
自动从网页上的表单或IFrame加载参数(GET或POST)
检测并浏览框架集
自动检测网站语言的选项
检测并添加加载页面进程期间使用的Cookie(Set-Cookie检测)
自动查找提交页面,其方法(GET或POST)以不同的颜色显示
可以直接在Datagrids中创建/修改/删除加载的字符串和Cookie参数
单个SQL注入
盲目的SQL注入
比较页面的真实和错误响应或cookie中的结果
时间延迟
SQL注入在自定义浏览器中的响应
可以使用HTML上下文颜色查看返回页面的HTML代码源并在其中搜索
微调参数和cookie注入
可以参数化预期结果的长度和计数以优化应用程序执行SQL注入所用的时间
创建/编辑预设的ASCII字符,以优化盲注SQL请求数/请求速度
多线程(最多可配置50个)
选项可以通过空的评论/ ** /针对IDS或过滤器检测来替换空间
在发送之前自动编码特殊字符
自动检测响应页面中的预定义SQL错误
在响应页面中自动检测预定义的单词或句子
实时结果
将会话保存并加载到XML文件中
自动查找正面答案和负面答案页面之间差异的功能
可以创建一个范围列表,它将替换隐藏的SQL注入字符串中的变量(>)并自动为您播放它们
使用文本文件中的预定义列表自动重播变量范围
Firefox插件,它将启动SQL Power Injector以及当前网页的所有信息及其会话上下文(参数和cookie)
两个集成工具:Hex和Char编码器和MS SQL @options解释器
可以编辑Referer
可以选择一个用户代理(或者甚至在用户代理XML文件中创建一个)
可以使用设置窗口配置应用程序
支持可配置的代理
软件截图
地址:http://www.sqlpowerinjector.com/index.htm
ilo--,Reversing.org - sqlbftools
地址:https://packetstormsecurity.com/files/download/43795/sqlbftools-1.2.tar.gz
Bernardo Damele AG:sqlmap,自动SQL注入工具
介绍
sqlmap是一款开源渗透测试工具,可自动检测和利用SQL注入漏洞并接管数据库服务器。它具有强大的检测引擎,针对终极渗透测试人员的众多特性,以及从数据库指纹识别,从数据库获取数据,到访问底层文件系统以及在操作系统上执行命令的各种开关,带外连接。
特征
完全支持MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird,Sybase,SAP MaxDB,HSQLDB和Informix数据库管理系统。
完全支持六种SQL注入技术:基于布尔的盲,基于时间的盲,基于错误,基于UNION查询,堆栈查询和带外。
支持直接连接数据库而不通过SQL注入,通过提供DBMS凭证,IP地址,端口和数据库名称。
支持枚举用户,密码哈希,特权,角色,数据库,表和列。
自动识别密码哈希格式并支持使用基于字典的攻击对其进行破解。
支持完全转储数据库表,根据用户的选择提供一系列条目或特定列。用户也可以选择仅转储每列条目中的一系列字符。
支持搜索特定的数据库名称,跨所有数据库的特定表或所有数据库表的特定列。例如,这对于识别包含自定义应用程序凭证的表格非常有用,其中相关列的名称包含名称和传递等字符串。
当数据库软件是MySQL,PostgreSQL或Microsoft SQL Server时,支持从数据库服务器底层文件系统下载和上载任何文件。
当数据库软件是MySQL,PostgreSQL或Microsoft SQL Server时,支持执行任意命令并在数据库服务器底层操作系统上检索它们的标准输出。
支持在攻击者机器和数据库服务器底层操作系统之间建立带外状态TCP连接。该通道可以是交互式命令提示符,Meterpreter会话或图形用户界面(VNC)会话,可以根据用户的选择进行选择。
通过Metasploit的Meterpreter 命令支持数据库进程'用户权限升级
地址:http://sqlmap.org/
icesurfer:SQL Server接管工具 - sqlninja
介绍
喜欢从Microsoft SQL Server上的SQL注入到数据库上的完整GUI访问?采用一些新的SQL注入技巧,在注册表中添加几个远程镜头以禁用数据执行保护,混合一个自动生成调试脚本的小Perl,将所有这些放在一个带有Metasploit包装器的振动器中,只有sqlninja的攻击模块之一!
Sqlninja是一款旨在利用以Microsoft SQL Server作为后端的Web应用程序中的SQL注入漏洞的工具。
其主要目标是在易受攻击的数据库服务器上提供远程访问,即使在非常恶劣的环境中也是如此。渗透测试人员应该使用它来帮助和自动化发现SQL注入漏洞时接管数据库服务器的过程。
特征
完整的文档可以在tarball中找到,也可以在这里找到,但是这里列出了忍者的功能:
远程SQL Server的指纹(版本,执行查询的用户,用户权限,xp_cmdshell可用性,数据库身份验证模式)
数据提取,基于时间或通过DNS隧道
与Metasploit3集成,通过VNC服务器注入获得对远程数据库服务器的图形化访问,或者仅上传Meterpreter
通过vbscript或debug.exe仅上传可执行的HTTP请求(不需要FTP / TFTP)
直接和反向绑定,TCP和UDP
当没有可用于直接/反向外壳的TCP / UDP端口时,DNS隧道伪外壳,但数据库服务器可以解析外部主机名
ICMP隧道外壳,当没有TCP / UDP端口可用于直接/反向外壳,但数据库可以Ping您的盒子
蛮力的'sa'密码(2种口味:基于字典和增量)
如果找到'sa'密码,权限将升级到系统管理员组
创建自定义的xp_cmdshell,如果原始的已被删除
TCP / UDP端口可以从目标SQL Server扫描到攻击机器,以便找到目标网络防火墙允许的端口并将其用于反向shell
回避技术混淆了一些IDS / IPS / WAF
与churrasco.exe集成,通过令牌绑架将权限升级到w2k3上的SYSTEM
支持CVE-2010-0232,将sqlservr.exe的权限升级到SYSTEM
地址:https://sourceforge.net/projects/sqlninja/files/sqlninja/sqlninja-0.2.999-alpha1.tgz/download
⑵ mysql 监控工具开源 有哪些
//SQL语句
12 var_mp($sql);
13 $res = mysql_query($sql);
14 $arr = array();
15 //吧结果存入数组 并记录数组长度
16 $count = 0;
17 while($data = mysql_fetch_array($res)){
18 $arr[$count] = $data;
19 $count++;
⑶ sql server 有没有什么开源的全文检索引擎
SQL Server中没有开源的全文检索引擎。SQL Server 中的全文搜索为用户和应用程序提供了对 SQL Server 表中基于字符的数据运行全文查询的功能。 在可以对某一表运行全文查询之前,数据库管理员必须对该表创建全文索引。 全文索引包括表中一个或多个基于字符的列。 这些列可以具有下列任何一种数据类型:char、varchar、nchar、nvarchar、text、ntext、image、xml 或 varbinary(max) 和 FILESTREAM。 每个全文索引都对表中的一个或多个列创建索引,并且每个列都可以使用特定语言。
参考文档:
https://msdn.microsoft.com/zh-cn/library/ms142571.aspx
⑷ 如何检测SQL注入技术以及跨站脚本攻击
在最近两年中,安全专家应该对网络应用层的攻击更加重视。因为无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制,如果你的网络应用程序开发者没
有遵循
安全代码进行开发,攻击者将通过80端口进入你的系统。广泛被使用的两个主要攻击技术是SQL注入[ref1]和CSS[ref2]攻击。SQL注入是
指:通过互联网的输入区域,插入SQL meta-characters(特殊字符
代表一些数据)和指令,操纵执行后端的SQL查询的技术。这些攻击主要针对其他组织的WEB服务器。CSS攻击通过在URL里插入script标签,然后
诱导信任它们的用户点击它们,确保恶意Javascript代码在受害人的机器上运行。这些攻击利用了用户和服务器之间的信任关系,事实上服务器没有对输
入、输出进行检测,从而未拒绝javascript代码。
这篇文章讨论SQL注入和CSS攻击漏洞的检测技术。网上已经有很多关于这两种基于
WEB攻击的讨论,比如如何实施攻击,他们的影响,怎样更好的编制和设计程序防止这些攻击。 然而,
对如何检测这些攻击并没有足够的讨论。我们采用流行的开源的IDS Snort[ref
3],组建根据检测这些攻击的规则的正则表达式。附带,Snort默认规则设定包含检测CSS的方法,但是这些容易被避开检测。比如大多通过hex进制编
码,如%3C%73%63%72%69%70% 74%3E代替避开检测。
依赖level of
paranoia组织的能力,我们已经编写了多种检测相同攻击的规则。如果你希望检测各种可能的SQL注入攻击,那么你需要简单的留意任何现行的SQL
meta-characters,如单引号,分号和双重破折号。同样的一个极端检测CSS攻击的方法,只要简单地提防HTML标记的角括号。但这样会检测
出很多错误。为了避免这些,这些规则需要修改使它检测更精确些, 当仍然不能避免错误。
在Snort规则中使用pcre(Perl
Compatible Regular
Expressions)[ref4]关键字,每个规则可以带或不带其他规则动作。这些规则也可以被公用软件如grep(文档搜索工具)使用,来审阅网络
服务器日志。 但是,需要警惕的是,用户的输入只有当以GET提交请求时,WEB服务器才会记录日记,如果是以POST提交的请求在日记中是不会记录的。
2. SQL注入的正则表示式
当
你为SQL注入攻击选择正则表示式的时候,重点要记住攻击者可以通过提交表单进行SQL注入,也可以通过Cookie区域。你的输入检测逻辑应该考虑用户
组织的各类型输入(比如表单或Cookie信息)。并且如果你发现许多警告来自一个规则,请留意单引号或者是分号,也许些字符是你的Web应用程序创造的
合法的在CookieS中的输入。因此, 您需要根据你的特殊的WEB应用程序评估每个规则。
依照前面提到,一个琐细的检测SQL射入攻击的正则表达式要留意SQL特殊的meta-characters 譬如单引号(’)双重扩则号(--),为了查出这些字符和他们hex等值数, 以下正则表达式适用:
2.1 检测SQL meta-characters的正则表达式
/(\%27)|(\’)|(\-\-)|(\%23)|(#)/ix
解释:
我
们首先检查单引号等值的hex,单引号本身或者双重扩折号。这些是MS SQL Server或Oracle的字符, 表示后边的为评论,
随后的都将被忽略。 另外,如果你使用MySQL,你需要留意 ’#’和它等值的hex的出现。注意我们不需要检查双重破折号等值的hex,
因为这不是HTML meta-character, 浏览器不会进行编码。 并且,
如果攻击者设法手工修改双重破折号为它的hex值%2D(使用代理像Achilles[ref 5]), SQL注入将失败。
加入上述正则表达式的新的Snort规则如下:
alert
tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"SQL
Injection - Paranoid";
flow:to_server,established;uricontent:".pl";pcre:"/(\%27)|(\’)|(\-\-)|(%23)|(#)/i";
classtype:Web-application-attack; sid:9099; rev:5;)
在本篇讨论中,
uricontent关键字的值为".pl ", 因为在我们的测试环境里, CGI
程序是用Perl写的。uricontent关键字的值取决于您的特殊应用, 这个值也许是".php ", 或" .asp ", 或" .jsp
", 等。 从这点考虑, 我们不显示对应的Snort 规则, 但是我们会给出创造这些规则的正则表达式。
通过这些正则表达式你可以很简单的创造很多的Snort规则.在前面的正则表达式里,
我们检测双重破折号是因为:即便没有单引号的存在那里也可能是SQL射入点[ref 6]。 例如, SQL查询条目只包含数值,如下:
select value1, value2, num_value3 from database
where num_value3=some_user_supplied_number
这种情况,攻击者可以执行额外的SQL查询, 示范提交如下输入:
3; insert values into some_other_table
最后, pcre的修饰符’ i’ 和’ x ’ 是用于分别匹配大小写和忽略空白处的。 上面的规则也可以另外扩展来检查分号的存在。然而,分号很可以是正常HTTP应答的一部分。为了减少这种错误,也是为了任何正常的单引号和双重扩折号的出
现,上面的规则应该被修改成先检测=号的存。用户输入会响应一个GET或POST请求,一般输入提交如下:
username=some_user_supplied_value&password=some_user_supplied_value
因此, SQL 注入尝试将导致用户的输入出现在a = 号或它等效的hex值之后。
2.2 修正检测SQL meta-characters的正则表达式
/((\%3D)|(=))[^\n]*((\%27)|(\’)|(\-\-)|(\%3B)|(:))/i
解释:
这个规则首先留意 = 号或它的hex值(%3D),然后考虑零个或多个除换行符以外的任意字符,最后检测单引号,双重破折号或分号。
典
型的SQL注入会尝试围绕单引号的用途操作原来的查询,以便得到有用的价值。讨论这个攻击一般使用1’or’1’=’1字符串. 但是,
这个串的侦查很容易被逃避,譬如用1’or2>1 --.
然而唯一恒定的部分是最初的字符的值,跟随一单引号,再加’or’。随后的布尔逻辑可能在一定范围上变化,可以是普通样式也可能是非常复杂的。这些攻击可
以相当精确被侦测,通过以下的正则表达式。2.3章节讲解。
2.3 典型的 SQL 注入攻击的正则表达式
/\w*((\%27)|(\’))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix
解释:
\w* - 零个或多个字符或者下划线。
(\%27)|\’ - 单引号或它的hex等值。
(\%6 F)|o|(\%4 F))((\%72)|r|-(\%52) -‘or’的大小写以及它的hex等值。
’union’SQL
查询在SQL注入各种数据库中攻击中同样是很常见的。如果前面的正则表达式仅仅检测单引号或则其他的SQL meta characters
,会造成很多的错误存在。你应该进一步修改查询,检测单引号和关键字‘union’。这同样可以进一步扩展其他的SQL关键字,像’select’,
’insert’, ’update’, ’delete’, 等等。
2.4 检测SQL注入,UNION查询关键字的正则表达式
/((\%27)|(\’))union/ix
(\%27)|(\’) - 单引号和它的hex等值
union - union关键字
可以同样为其他SQL查询定制表达式,如 >select, insert, update, delete, drop, 等等.
如
果,到这个阶段,攻击者已经发现web应用程序存在SQL注入漏洞,他将尝试利用它。如果他认识到后端服务器式MS SQL
server,他一般会尝试运行一些危险的储存和扩展储存过程。这些过程一般以‘sp’或‘xp’字母开头。典型的,他可能尝试运行
‘xp_cmdshell’扩展储存过程(通过SQL Server执行Windows
命令)。SQL服务器的SA权限有执行这些命令的权限。同样他们可以通过xp_regread, xp_regwrite等储存过程修改注册表。
2.5 检测MS SQL Server SQL注入攻击的正则表达式
/exec(\s|\+)+(s|x)p\w+/ix
解释:
exec - 请求执行储存或扩展储存过程的关键字
(\s|\+)+ - 一个或多个的空白或它们的http等值编码
(s|x) p- ‘sp’或‘xp’字母用来辨认储存或扩展储存过程
\w+ - 一个或多个字符或下划线来匹配过程的名称
3. 跨站脚本(CSS)的正则表达式
当
发动CSS攻击或检测一个网站漏洞的时候, 攻击者可能首先使简单的HTML标签如(粗体),(斜体)或(下划线),或者他可能尝试简单的
script标签如alert("OK").
因为大多数出版物和网络传播的检测网站是否有css漏洞都拿这个作为例子。这些尝试都可以很简单的被检测出来。
然而,高明点的攻击者可能用它的hex值替换整个字符串。这样标签会以%3C%73%63%72%69%70%74%3E出 现。
另一方面,攻击者可能使用web代理服务器像Achilles会自动转换一些特殊字符如换成%3E.这样攻击发生时,URL
中通常以hex等值代替角括号。
下列正则表达式将检测任何文本中包含的html的。它将捉住试图使用、、或。这正则表达式应该忽略大小写。我们需要同时检测角括号和它的hex等值(% 3C|
3.1 一般 CSS 攻击的正则表达式
/((\%3C)|)/ix
解释:
((\%3C)|) -检查>或它的hex等值
Snort 规则:
alert
tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"NII
Cross-site scripting attempt"; flow:to_server,established;
pcre:"/((\%3C)|)/i"; classtype:Web-application-attack; sid:9000; rev:5;)
跨站脚本同样可以使用技术。现行默认的snort规则可以被轻易避开。
3.2章节提供了防止这种技术的方法。
3.2 "
/((\%3C)|)/I
解释:
(\%3 C)|) ->或它的hex等值
3.3 CSS 攻击的极端的正则表达式
/((\%3C)|)/I
解释:
这个规则简单寻找。由于你的web服务器和web应用程序的构架,这个规则可能产生一些错误。但它能保证捉住任何CCS或者类似CSS的攻击。
一个不错避开过滤的CSS方法请参考Bugtraq投稿的
http://www.securityfocus.com/archive/1/272...rchive/1/272037.
但是请注意最后一种极端的规则将能检测这所有的攻击。
总结:
在
这篇文章中,我们提出了不同种类的正则表达式规则来检测SQL注入和跨站脚本攻击。有些规则简单而极端,一个潜在的攻击都将提高警惕。但这些极端的规则可
能导致一些主动的错误。考虑到这点,我们修改了这些简单的规则,利用了另外的样式,他们可以检查的更准确些。在这些网络应用成的攻击检测中,我们推荐将这
些作为调试你IDS或日志分析方法的起点。再经过几次修改后,在你对正常网交易部分的非恶意应答进行评估以后,你应该可以准备的检测那些攻击了。
⑸ 有没有好用的开源sql语法分析器
开源报表的话有jasperreport、BIRT、jasperreport,但是貌似都不是怎么发展了
⑹ asp 检测SQL数据库是否已打开
asp中一样可以用conn.State的值来判断数据库连接是否成功
⑺ 去哪儿网 MySQL 语法审核工具 Inception 正式开源
MySQL 语法审核工具 Inception 正式开源
关于Inception
MySQL的SQL语句审核做法,在业界都已经基本被认同了,实际上这也是为了促进MySQL语句写法的统一化、标准化。此前大多采用人工审核机制,这对于标准的把握吃力,标准越多,DBA越累,和开发协同也越累。
在这个追求自动化运维的时代,SQL审核也必须要跟上步伐,因此Inception诞生了。
Inception不仅仅是一个自动化审核工具,同时还具备执行SQL,并且生成对影响数据的回滚语句(类似闪回的功能),这样一条龙便捷服务的工具,将会给DBA的工作带来翻天覆地的变化,DBA从此就从繁重的审核、登上DB服务器执行,出错了很难回滚(如果提前没有备份的话)的被动局面解放了出来。
有了Inception,我们才突然发现,做DBA原来可以这么轻松,工作可以不饱和了,那就有更多的自由时间学习、进一步向自动化运维的实现等更智能化的方向去发展,是具有里程碑意义的
⑻ 分享一款开源的SQL查询优化工具--EverSQL
一般来说,SQL查询优化器分析给定查询的许多选项,预估每个选项的成本,最后选择成本最低的选项。如果查询优化器选择了错误的计划,则性能差异可能从几毫秒到几分钟。幸运的是,现在有许多第三方SQL查询优化工具可以自动优化每个SQL查询。这些工具极大地简化了开发人员和数据库管理员的工作,因为他们提供了正确的查询调优建议和索引建议。现在我们已经知道了SQL查询优化器的重要性,下面推荐一款免费的优化工具--EverSQL。
EverSQL是一个在线SQL查询优化器,它提供了监控SQL查询性能的最简单方法。EverSQL具有以下功能:
部分页面展示:
工具界面:
通过这款SQL查询优化工具可以帮助你选择最少的时间和资源来执行正确查询,同时提供最佳性能。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~