学习sqlmap时记得一些笔记,上传到博客方便以后查找
sqlmap -r 扫描http是否存在漏洞(用bp的http请求)
sqlmap -m 用文本进行get扫描
sqlmap -l 用bp生成的文件扫描
sqlmap -x 从stilmap.xml进行url扫描
sqlmap -c 从sqlmap.conf使用
--dbs 枚举所有数据库
-D 指定数据库
--table 枚举数据表
-T 指定数据表
--columns 枚举数据字段
-C 指定数据字段
--dump 打开相应字段
-a 检测所有内容
-z缩写命令
-p 指定sql探测的参数(url中或者post)
-f 获取指纹
-v 设置风险值(可能会报错)
--beep 发现注入会发出声音
--alert= 当发现sql注入,运行系统命令
--from解析测试表单的输入字段
--crawl= 根据设置深度爬取url
--batch 决策默认选择
--no-cast 针对数据库老版本 将null值转换为空格
--data= 属性 可把get的xxx.php?id=1 更改为 xxx.php --data="id=1" 隐式的改为post请求
--method =强制更改http请求方法
--level 等级,最高5 coo kie最低需要2 user-agent,referer最低需要3 host头最低需要5
--dbs 对应数据库名称
--skip-urlencode 不进行url加密
--skip-static= 忽略指定参数(如xxx.php,静态参数 防止注入出现问题)
--scop 对bp生成文件进行过滤(自己加过滤条件) 例如 -l xxxx --scop “127.0.0.1”过滤ip是127.0.0.1的
--randomize 设置随机参数,长度类型与提供的参数保持一致
--param-del= 指明分割符号(sqlmap默认分隔符是&,如果分隔符号是别的 就要指认使用的分隔符)
--safe-url --safe-post --safe-req --safe-freq 避免多次失败后销毁会话
--skip-url-urlencode 不进行url加密 有些网站后台不遵循rfc标准,需要以原始的非编码形式发送时使用
--risk 3 执行测试的风险(0-3,默认为1)risk越高,越慢但是越安全
--check-internet 确保网没有问题
--flush-session 刷新缓存
--fresh-queeries 忽略储存的结果
--identify-waf 查看是否有waf
--moblie 使用手机user-agent
时间_次数······
--timeout 等待时间(超时)可以设置浮点数
--delay 设置延时
--retries 设置对应重试次数
--eta注入数据时间·
http
--user-agent= 指定user-agent (sqlmap默认的可能会被拦截,需要指定一个合法浏览器的user-agent)不指定也可以直接用他会随机使用一个
--headers 设置额外的http头 多个标头需要
(换行符)隔开 level=5
--auth-type= 设置http认证 支持basic(弹出对话框) digest ntlm
--auth-cred http认证(登录)需要的用户名和密码
--auth-file 指定私钥文件 提供的值为一个pem格式的key_file其中包含协议和私钥
--ignore-401 忽略401错误
proxy代理
--proxy 设置代理服务器位置
--proxy-cred 代理的认证信息(账号 密码)
--proxy-file 使用文件 设置多条代理
tor
--tor 设置tor网络
--tor-port 设置默认以外的Tor代理端口
--tor-type 指定tor类型
--check-tor 查看tor是否可以使用
cookie(level不低于2)
--cookie 指定cookie
--cookie-del 指定cookie分隔符号
--load-cookies 探测过程中发送来的cookie不询问一直使用
--drop-set-cookie 探测过程中发送来的cookie不询问不使用
性能优化
-o开启所有的性能优化参数
--keep-alive 设置持久连接 (在http报文中设置connection:keep-alive)
--null-connection 不接受http中的body
--thread 设置线程最大为10
--predct-output 根据推理算法对检索字符的顺序统计预测 与--thread不兼容
指定位置注入
-p指定探查参数 多个用,分割
--skip 指定忽略参数 多个用,分割
--param-exclude= 忽略具体内容的参数 多个用|分割 (例如session)
--skip-static忽略非动态参数
--os windows --os linux 默认情况下会自动识别os类型 也可以指定os进行针对系统更详细的探测
uri注入
sqlmp无法自动探测 需要用*在参数后指定,(星号可以在任何合法文件中指定注入点)
DBMS
--count 只计算表的数量
--schema枚举模式列表下包含的所有数据库 表 列 以及它们的类型
--banner或-b 数据库版本信息
--current-user 当前用户名
--current-db 查看当前数据库名
--hostname 当前主机名
--is-dba 检测当前用户是否是数据库管理权限
--users 获取当前DBMS所有用户
--passwrod 获取当前所有dbms用户密码
--privilegs --role 枚举dbms权限
--encoding=强制设置dbms编码
csv
--csv-del= 设置分割符号
mysql<5.0 mysql中没有元数据库 information_schema
--common_tables
--common_columns
sqlmap读写文件
--file_read= 读取对应文件 (绝对路径)
--file_write= 读取本地文件
--file_dest=写入文件 与--file_write一起写