sql注入工具的使用


前言

针对于sql注入的练习,目前我已经使用过两种sql注入工具,分别是Sqlmap和超级sql注入,下面将各自介绍一下,我对这两个工具的感受和他们的一些具体用法


提示:以下是本篇文章正文内容,下面案例可供参考

一、超级sql注入工具

1、下载地址:

链接:https://github.com/shack2/SuperSQLInjectionV1/releases

当然,如果你不想去这边下,也可以加我QQ(QQ在文末),我发给你就好,反正闲着也是闲着

2、使用步骤

(1).针对于get和post传递的参数进行注册

针对于这种方式,感觉还是比较完善的,通过自动识别可以识别出注入点,而且在注入的过程中,它也会自动设置注入模式,就相当于你只需要点一个自动识别,就可以让他自己去跑。

具体操作流程:先配置好头部,就是输入ip/域名,然后使用BP抓包,将http头部放到下面的http请求包里面,这就算是配置完成了,然后点击识别注入,工具就会自动运行,找到注入点,然后也会自动配置好注入方式和数据库的一些信息,还是比较高级的,但可能就是速度有点慢,因为他好像是从盲注开始尝试。在他自己注入点之后,我们接下来点到获取数据那一栏,就可以获取数据了。

小技巧:

1、可以再注入之前自己先点击发送数据,然后看一下包含这个头部的数据发出去会有什么响应,这样就可以判断这个数据到底有没有问题,方便自己查错

2、可以再日志中心里面查看测试时的payload以及发送此payload时响应的包,也可以方便自己查错

所以这种注入方式,简单,也好理解,可以省去很多时间,如果是针对于get和post传递参数的情况。但是这种方式也不是说一定能把这两种含参的有sql注入漏洞的能扫出来,我之前测试的order by 后面跟注入就没有测试出来,我感觉这个东西还是也得看运气吧

(2).针对于http头部进行的注入

如果使用超级sql注入工具对http头部进行注入,我感觉是一件挺繁琐的事情,因为这得需要你手动配置,手动配置包括你需要自己确定注入方式,确定数据库类型,还得你自己确认注入点,这个东西看着可能会觉得麻烦,但是他会即时反应,再加上sqlmap对头部的注入基本上发现不了,所以,如果用这个工具来进行手动注入,我觉得还是可以的,最起码起比用BP方便一百倍,接下来详细说一下如何进行手动注入。


首先,需要明确一点,注入方式尽量选择union注入,然后是显错注入,盲注比较费时间所以放在最后。

然后需要先找到注入点,根据注入点能不能回显在确定注入方式。这时候就需要用到前面提到的小技巧里面的第一个,利用发送数据这一选项,来确定注入点,然后在根据是否会有回显选择注入方式。


具体情景

如果他有回显,然后你选择了union注入方式,这时候你还需要手动再利用发送数据这一栏来确定总列数,和哪几列可以显示在浏览器中,这些都是需要自己手动完成的,确定这两栏之后,就可以去数据中心那里获取数据。

如果他有回显,你选择了报错注入这种方式,这种方式比较友好,自己什么都不用管,直接去数据中心获取数据即可。

如果是第三种情况,你选择了盲注,这个时候也需要对盲注进行一下配置,主要就是配置一下盲注的判断方式,所谓判断方式,就是用来判断他输入哪一些payload的时候,会输出正反馈,会有以下几种判断方式,我比较常用的可能是关键字判断。神奇的是这个工具他可以自己验证来生产判断值,而且要实现让他自己生产判断值,也只需要把注入点,即#injection#用编码验证框起来就行。


(3).最重要的

有同学可能会疑问,盲注的时候,会发现一直在运行跑包,但是union注入和显错注入的时候,你按下获取数据按钮,他只会跑几个包(跑几个包主要取决于再几栏前面选了对勾),然后会觉得可能是这个工具出了问题。其实不然,这个工具里面,所谓的注入点只是注入语句,他是不包括闭合前面的单引号,注释后面的其他符号的。比如
uname=1") or left(database(),2)='se' #&passwd=admin&submit=Submit
这个payload里面只有left(database(),2)='se'这个属于这个工具里面的注入点,前面的那个怎么闭合不属于payload,不属于注入部分,大家一定要注意这一点。

总结

所以,真正关键的怎么闭合前面的符号,又怎么注释后面的符号,对于手工注入来说,这些都得我们自己判断,但好歹这些判断起来也是挺方便的。我想,这个工具之所以能被推崇,他的意义应该在于,让手工注入变得更简单了吧。

二、sqlmap的使用

1、前言

对于sqlmap,我的感觉他就是sql注入的神器,因为他不仅可以注入对于get和post传参的方式,也可以自动对http头部进行注入,我们只需要配置一些参数即可实现自动化注入


2、使用方法

首先,需要使用-u参数,导入网页的地址

可以使用–batch让软件接下来所有操作,都不询问,自己回答,自动执行

可以用-p来指定注入点,测试此注入点是否可以被注入

可以使用–level和–risk来提高注入的风险和等级,这样会提高注入的成功率,但是风险也会增大

可以使用-g让软件自动搜索谷歌中的网页对其进行sql注入

当注入成功后,可以使用–current-user或者–current-db来分别获得当前用户名和当前数据库名,也可以通过–dbs获得所有的数据库之后,可以利用获得的名字来-D指定数据库名,通过–tables获取数据库里面的表,获得-T表之后,可以直接使用–dump获取表里面的列,dump意思为取下,倒出的含义,也可以在成功注入之后,不用获取表,直接使用–sql-shell来使用sql语句来查询表

可能看下面比较清楚

	--batch  	加入这个可以让他不在询问我们,自己去做决定
	--dbms=		数据库管理系统,可以指定数据库类型,不用挨个去尝试,缩短检测时间
	--p 		指定注入点,减少检测时间
	--risk		增大风险等级,有利于探测
	--level 	增大风险等级,有利于探测
	--user 		获得用户
	--current-user		获得当前用户
	--current-db		获得当前数据库
	--dbs 		获得数据库			
	--D 指定库 --tables
	--T 指定表
	--columns 	指定列
	--dump		值前面所有的值都列出来

3、总结

我感觉sqlmap真的完全就实现了自动化扫描注入点,然后进行注入,真的感觉很厉害,可能他的唯一缺点就在于对于注入度不高吧,比如用它来测试sqli-labs的http头部注入,他就没有测出来。但能测试的范围真的挺大的。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值