Sqlmap(SQL注入自动化工具)
简介
开源的SQL注入漏洞检测的工具,能够检测动态页面中的get/post参数,cookie,http头,还能够查看数据,文件系统访问,甚至能够操作系统命令执行。 检测方式:布尔盲注、时间盲注、报错注入、UNION联合查询注入、堆叠注入 支持数据库:Mysql、Oracle、PostgreSQL、MSSQL、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDb
下载安装
1、下载官网地址:
2、环境:因为sqlmap基于Python语言开发的,所以需要将Python这个语言环境给安装上。
3、将下载好的sqlmap进行解压并且copy到python路径下
4、在桌面创建一个cmd的快捷方式,并命名为SQLMap
5、在新建的快捷方式上右键“属性”,将“起始位置”修改为自己sqlmap的路径,点击确定。
6、 双击已创建的快捷方式,输入sqlmap.py -h,出现如下信息则表示安装成功。
参数使用
指定目标
-u "url" (指定URL,get请求方式) -r request.txt Post提交方式,使用HTTP请求文件,该文件可从BurpSuit中导出。 -m url.txt 使用一个包含多个url的文件进行扫描。若有重复,sqlmap会自动识别成一个。 -g "inurl:" .php?id=1" 扫描,使用Google语法得到的url。 -l log.txt --scope="正则表达式" Post提交方式,使用BurpSuit的log文件。(Options—>Misc—>Logging—>Proxy—>勾选Request ,scope的作用是 基于正则表达式去过滤日志内容,筛选需要扫描的对象。 -c sqlmap.conf 使用配置文件进行扫描 (sqlmap.conf与sqlmap.py 在同一目录)
指定目标参数
-p "username,id" 指定要扫描的参数 --data="username=admin&password=123" 指定扫描的参数,get/post都适用 --method=GET 指定请求方式,还有POST --cookie="security=low;PHPSESSID=121123131" 使用cookie的身份认证 --skip "username,id" 排除指定的扫描参数 --param-del=" ;" 改变分隔符,默认是&,因为有些网站不使用&传递多个数据。 --drop-set-cookie(放在cookie的值中的末尾位置) 有时候发起请求后,服务器端会重新Set-cookie给客户端,SQLmap默认会使用新的cookie,这时候可以设置此参数,表示还是用原来的cookie。 --user-agent " aaaaaaa" 使用浏览器代理头 --random-agent 使用随机的浏览器代理头 --host=" aaaaa" 指定主机头 --referer="aaaaaa" 指定referer头 --headers="host:aaaa User-Agent:bbbb" 有些网站需要特定的头来身份验证 --auth-type , —auth-cred —auth-type Basic —auth-cred “user:pass” 身份认证,还有Digest、NTLM --auth-file="ca.PEM" 使用私钥证书去进行身份认证 --proxy="url" 使用代理去扫描目标,代理软件占用的端口在8080 --proxy-cred="name:pass" 使用代理时的账号和密码 --ignore-proxy 忽略系统级代理设置,通常用于扫描本地网络目标,本网段。
查看数据信息
--users 查询所有的数据库账号 --dbs 查询所有数据库 --schema 查询源数据库(包含定义数据的数据) -a 查询当前user、当前数据库、主机名、当前user是否是最大权限管理员、数据库账号等 -D 数据库名 指定数据库 --current-user 查询当前数据库中所有用户名 --current-db 查询当前数据库名 --hostname 查看服务器的主机名 --Privileges -U username 查询username的权限 --roles 查询角色 --tables 查看所有的表 -T 表名 指定表 --columns 查看所有的字段 -C 字段名 指定字段 --count 计数,查看有多少条数据 --exclude-sysdbs 排除系统库 --dump 查看数据 --start 3 查看第三条 --end 4 查看第四条 --sql-query “select * from users” 执行语句 --common-columns 暴力破解字段,应用于两种情况:①无权限读取数据。②mysql<5.0 ,没有infomation_schema库 --common-tables 暴力破解表 --check-waf 检测WAF/IPS/IDS --hpp 绕过WAF/IPS/IDS —identify-waf 彻底检测WAF/IPS/IDS
