渗透测试之二:sqlmap

2023-11-13

参考链接:

https://www.freebuf.com/sectool/164608.html

sqlmap是常用测试工具之一,本片简单讲它的用法(python版)。

1、简单介绍

sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。

官网:http://sqlmap.org

sqlmap支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。

sqlmap支持五种不同的注入模式:

l  基于布尔的盲注,即可以根据返回页面判断条件真假的注入;

l  基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断;

l  基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中;

l  联合查询注入,可以使用union的情况下的注入;

l  堆查询注入,可以同时执行多条语句的执行时的注入。

 

2、命令详解

2.1 选项

 -h,–help  显示基本帮助信息并退出

 -hh    显示高级帮助信息并退出

 –version  显示程序版本信息并退出

-vVERBOSE信息级别: 0-6 (缺省1),其值具体含义:“0”只显示python错误以及严重的信息;1同时显示基本信息和警告信息(默认);“2”同时显示debug信息;“3”同时显示注入的payload;“4”同时显示HTTP请求;“5”同时显示HTTP响应头;“6”同时显示HTTP响应页面;如果想看到sqlmap发送的测试payload最好的等级就是3。

2.2 目标

在这些选项中必须提供至少有一个确定目标

 -d DIRECT    直接连接数据库的连接字符串

-u URL, –url=URL   目标URL (e.g.”http://www.site.com/vuln.php?id=1“),使用-u或者–url

-l LOGFILE     从Burp或者WebScarab代理日志文件中分析目标

-x SITEMAPURL  从远程网站地图(sitemap.xml)文件来解析目标

-m BULKFILE      将目标地址保存在文件中,一行为一个URL地址进行批量检测。

-r REQUESTFILE   从文件加载HTTP请求,sqlmap可以从一个文本文件中获取HTTP请求,这样就可以跳过设置一些其他参数(比如cookie,POST数据,等等),请求是HTTPS的时需要配合这个–force-ssl参数来使用,或者可以在Host头后门加上:443

-g GOOGLEDORK     从谷歌中加载结果目标URL(只获取前100个结果,需要挂代理)

-c CONFIGFILE       从配置ini文件中加载选项

2.3 请求

这些选项可以用来指定如何连接到目标URL

–method=METHOD  强制使用给定的HTTP方法(例如put)

    --data=DATA   通过POST发送数据参数,sqlmap会像检测GET参数一样检测POST的参数。--data="id=1" -f --banner --dbs --users

   –param-del=PARA..  当GET或POST的数据需要用其他字符分割测试参数的时候需要用到此参数。

   –cookie=COOKIE     HTTP Cookieheader 值

   –cookie-del=COO..  用来分隔cookie的字符串值

   –load-cookies=L..  Filecontaining cookies in Netscape/wget format

   –drop-set-cookie   IgnoreSet-Cookie header from response

   –user-agent=AGENT  默认情况下sqlmap的HTTP请求头中User-Agent值是:sqlmap/1.0-dev-xxxxxxx(http://sqlmap.org)可以使用–user-agent参数来修改,同时也可以使用–random-agent参数来随机的从./txt/user-agents.txt中获取。当–level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入

   –random-agent     使用random-agent作为HTTP User-Agent头值

   –host=HOST         HTTP Hostheader value

   –referer=REFERER   sqlmap可以在请求中伪造HTTP中的referer,当–level参数设定为3或者3以上的时候会尝试对referer注入

   -H HEADER, –hea..  额外的http头(e.g.”X-Forwarded-For: 127.0.0.1″)

   –headers=HEADERS  可以通过–headers参数来增加额外的http头(e.g.”Accept-Language: fr\nETag: 123″)

   –auth-type=AUTH.. HTTP的认证类型 (Basic, Digest, NTLM or PKI)

   –auth-cred=AUTH..  HTTP 认证凭证(name:password)

   –auth-file=AUTH..  HTTP 认证PEM证书/私钥文件;当Web服务器需要客户端证书进行身份验证时,需要提供两个文件:key_file,cert_file,key_file是格式为PEM文件,包含着你的私钥,cert_file是格式为PEM的连接文件。

   –ignore-401        Ignore HTTPError 401 (Unauthorized)忽略HTTP 401错误(未授权的)

   –ignore-proxy      忽略系统的默认代理设置

   –ignore-redirects忽略重定向的尝试

   –ignore-timeouts   忽略连接超时

   –proxy=PROXY       使用代理服务器连接到目标URL

   –proxy-cred=PRO..  代理认证凭证(name:password)

   –proxy-file=PRO..  从文件加载代理列表

   –tor               使用Tor匿名网络

   –tor-port=TORPORT  设置Tor代理端口

   –tor-type=TORTYPE  设置Tor代理类型 (HTTP,SOCKS4 or SOCKS5 (缺省))

   –check-tor       检查Tor的是否正确使用

   –delay=DELAY   可以设定两个HTTP(S)请求间的延迟,设定为0.5的时候是半秒,默认是没有延迟的。

   –timeout=TIMEOUT   可以设定一个HTTP(S)请求超过多久判定为超时,10表示10秒,默认是30秒。

   –retries=RETRIES   当HTTP(S)超时时,可以设定重新尝试连接次数,默认是3次。

   –randomize=RPARAM可以设定某一个参数值在每一次请求中随机的变化,长度和类型会与提供的初始值一样

   –safe-url=SAFEURL  提供一个安全不错误的连接,每隔一段时间都会去访问一下

   –safe-post=SAFE..  提供一个安全不错误的连接,每次测试请求之后都会再访问一遍安全连接。

   –safe-req=SAFER..  从文件中加载安全HTTP请求

   –safe-freq=SAFE..  测试一个给定安全网址的两个访问请求

   –skip-urlencode    跳过URL的有效载荷数据编码

   –csrf-token=CSR..  Parameter usedto hold anti-CSRF token参数用来保存反CSRF令牌

   –csrf-url=CSRFURL  URL地址访问提取anti-CSRF令牌

   –force-ssl         强制使用SSL/HTTPS

   –hpp               使用HTTP参数污染的方法

   –eval=EVALCODE     在有些时候,需要根据某个参数的变化,而修改另个一参数,才能形成正常的请求,这时可以用–eval参数在每次请求时根据所写python代码做完修改后请求。(e.g “import hashlib;id2=hashlib.md5(id).hexdigest()”)

 sqlmap.py -u”http://www.target.com/vuln.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b“–eval=”import hashlib;hash=hashlib.md5(id).hexdigest()”

2.4 优化

-o               打开所有的优化开关

–predict-output    预测普通查询输出

–keep-alive        使用持久HTTP(S)连接

–null-connection   获取页面长度

–threads=THREADS   当前http(s)最大请求数 (默认 1)

2.5 注入

 -p TESTPARAMETER    可测试的参数

   –skip=SKIP         跳过对给定参数的测试

   –skip-static       跳过测试不显示为动态的参数

   –param-exclude=..  使用正则表达式排除参数进行测试(e.g. “ses”)

   –dbms=DBMS         强制后端的DBMS为此值

   –dbms-cred=DBMS..  DBMS认证凭证(user:password)

   –os=OS            强制后端的DBMS操作系统为这个值

   –invalid-bignum    使用大数字使值无效

   –invalid-logical   使用逻辑操作使值无效

   –invalid-string    使用随机字符串使值无效

   –no-cast          关闭有效载荷铸造机制

   –no-escape         关闭字符串逃逸机制

   –prefix=PREFIX     注入payload字符串前缀

   –suffix=SUFFIX     注入payload字符串后缀

   –tamper=TAMPER   使用给定的脚本篡改注入数据

2.6 检测

   –level=LEVEL     执行测试的等级(1-5,默认为1)

   –risk=RISK       执行测试的风险(0-3,默认为1)

   –string=STRING    查询时有效时在页面匹配字符串

   –not-string=NOT..  当查询求值为无效时匹配的字符串

   –regexp=REGEXP     查询时有效时在页面匹配正则表达式

   –code=CODE       当查询求值为True时匹配的HTTP代码

   –text-only        仅基于在文本内容比较网页

   –titles           仅根据他们的标题进行比较

。。。

3、常用命令组合

https://blog.csdn.net/qq_33530840/article/details/82144515

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

渗透测试之二:sqlmap 的相关文章

  • 安装mmdetection(windows下)

    windows环境安装mmdetection 创建pytorch环境 最终安装的版本信息 安装过程 step1 安装mmcv full step2 安装mmdetection 安装mmdet报错 Could not build wheels
  • Linux进程间通信--msgsnd函数的作用

    msgsnd函数用于将消息发送到消息队列中 它的原型如下 int msgsnd int msqid const void msgp size t msgsz int msgflg 参数解释 msqid 消息队列标识符 由msgget函数返回
  • windows系统查看进程端口号的命令

    查看进程端口号 1 查看windows所有端口进程 netstat ano 命令提示符窗口 2 查询指定的端口占用 netstat aon findstr 端口 显示列表中的PID 然后根据PID在电脑的任务管理器中查看对应的占用程序 根据
  • Python 生成当前项目依赖包 requirements

    Python 生成当前项目依赖包 requirements 1 安装 pipreqs pip install pipreqs 2 执行命令 在当前工程目录生成 pipreqs encoding utf8 force 3 使用requirem
  • CentOS下ELK 7.2生产安全部署

    01 架构说明 在需要采集日志的服务器上部署Filebeat服务 它将采集到的日志数据推送到Kafka集群 Logstash服务通过input插件读取Kafka集群对应主题的数据 期间可以使用filter插件对数据做自定义过滤解析处理 然后
  • Android Studio 4.x 返回上一次编辑的地方

    Android Studio 升级到 4 x 后 返回上一次编辑的地方的快捷键变成了 Alt Shift 左箭头 了
  • JUC之ReentrantReadWriteLock

    JUC之ReentrantReadWriteLock 1 背景 由于ReentrantLock是独占可重入锁 因此在进行操作的时候 不能够满足多线程同时操作数据 为了满足并发场景下的临界资源的数据共享 出现了ReentrantReadWri
  • web上传图片到七牛云服务器

    本文通过java web的使用 把要上传的图片通过浏览器上传到服务器上面 文本仅供参考 可能出现很多不合理 1 创建对应的jsp页面 下面是jsp下面的对应的from表单 上传文件用的那么ImgFiles的属性名称 同样你可以使用其他的 或
  • 零基础开发NBIOT

    前言 shineblink core 开发板 简称Core 的库函数支持NBIOT通信功能 所以只用几行代码即可实现基于M5311 NB模块的联网通信 TCP UDP MQTT 功能 这里我们主要介绍通过TCP实现联网通信的功能 更多关于T
  • KVM MMU EPT内存管理

    转载请注明 转载自博客xelatex KVM 并附本文链接 谢谢 注 文章中采用的版本 Linux 3 11 https www kernel org pub linux kernel v3 x linux 3 11 tar gz qemu

随机推荐

  • 信息学奥赛C++语言: 螺旋方阵1

    题目描述 一个 n 行 n 列的螺旋方阵按如下方法生成 从方阵的左上角 第 1 行第 1 列 出发 初始时向右移动 如果前方是未曾经过的格子 则继续前进 否则 右转 重复上述操作直至经过方阵中所有格子 根据经过顺序 在格子中依次填入 1 2
  • 【学习笔记】性能测试——Jmenter的使用入门(自用)

    一 性能理论 性能测试理论 什么是性能测试 初始 服务器崩溃 宕机 客户机性能 概念 利用脚本或者工具对于被测系统进行一定的负载测试 观察性能指标是否满足用户需求 得到相关性能指标 并优化 性能测试的目的 不是完全为了找bug 是为了验证系
  • vue gyp错误

    gyp verb ensuring that file exists C Python27 python exe gyp ERR configure error gyp ERR stack Error Can t find Python e
  • POJ 2966 k-d Tree

    题意 二维平面中有n个点 求每个点和其他点的最远距离 include
  • 语义分割之FCN训练预测自己的数据集

    之前博客PyQt5实现深度学习平台Demo 八 c 调用python方式完成训练和预测 jiugeshao的专栏 CSDN博客中提到 接下来主精力还是先放在深度学习分类 检测 分割算法上面 之前虽然也对各算法做过了解 但没有一一用代码实现过
  • CUDA之窄带常规波束形成

    思路 现在手上有了cuda的复数矩阵乘法和复数矩阵转置 理论上讲可以做一个简单的波束形成了 按照matlab之并行计算 的思想把for循环都变成矩阵来做 复数矩阵定义 typedef struct int width int height
  • flutter是什么

    Flutter是Google开源的构建用户界面 UI 工具包 帮助开发者通过一套代码库高效构建多平台精美应用 支持移动 Web 桌面和嵌入式平台 Flutter 开源 免费 拥有宽松的开源协议 适合商业项目 截止2022年5月12日Flut
  • 回溯算法之最大团问题

    以下内容摘自 http wenku baidu com view 356779bdf121dd36a32d8243 html 本人第一篇博文 经验严重不足 尚未完成 先做做测试 大家多多包涵 回溯法的思想 穷举 暴力搜索整个解空间 找出所有
  • Unity IAP的使用

    http blog sina com cn s blog 94dfd97d0102wwap html 按照这个哥们的教程顺利完成内购 记下一些坑点 1 使用UnityIAP需要将应用先发布至Google 获取应用公钥 在服务和IPA中 2
  • 给程序员推荐的一款机械键盘

    一 Keychron品牌简介 Keychron是一个网红机械键盘 可以同时兼容多款操作系统 是众多科技博主推荐产品 Keychron是机械键盘网红品牌 因在油管上被无数码博主使用而爆红 国内的版本是京东京造K系列键盘 价格要比国外官网便宜
  • 深度学习算法发展:从多样到统一

    OpenAI在GPT 3模型基础上引入了人类反馈强化学习方法 RLHF 训练出InstructGPT模型 并据此发布了对话机器人ChatGPT 引起了互联网用户的注意 深度学习算法发展 从多样到统一 up pdf https url39 c
  • openwrt的路由器重置root密码

    家里路由器刷了openwrt 结果长期没登录 忘了root密码 很容易就找到了这里介绍的办法 http www openwrt org cn bbs thread 12327 1 1 html 但在我这里不行 那个recvudp exe一直
  • 《Kubernetes部署篇:Ubuntu20.04基于containerd部署kubernetes1.25.14集群(多主多从)》

    一 架构图 如下图所示 二 环境信息 1 资源下载 基于containerd部署容器版kubernetes1 25 14集群资源合集 2 部署规划 主机名 K8S版本 系统版本 内核版本 IP地址 备注 k8s master 12 1 25
  • MySQL索引面试题面经汇总

    一 索引 1 MySQL如何实现的索引 三种 B 树索引 主要 重点 hash索引 配合b 树索引使用 没法手动创建 全文索引 对于整个数据做全文的摘要索引 2 innodb和Myisam索引的区别 innodb索引本身就在数据中 也就是说
  • 3. 栈-递推与递归(普及-)

    文章目录 问题描述 问题分析 代码实现 运行结果 总结 问题描述 宁宁考虑了这样一个问题 一个操作数序列1 2 n 图示为 1 到 3 的情况 栈 A 的深度大于n 现在可以进行两种操作 1 将一个数 从操作数序列的头端移到栈的头端 对应数
  • 四、ROS话题通信机制

    四 ROS话题通信机制 1 话题通信模型 Topic 2 话题通信基本操作 2 1 Talker发布方实现 2 2 Listener订阅方实现 1 话题通信模型 Topic 该模型中涉及到三个角色 ROS Master 管理者 Talker
  • 清华裴丹:我在智能运维科研领域的一些思考

    前言 中国应用性能管理行业盛宴 2017中国应用性能管理大会 简称APMCon 2017 于8月10日至11日在北京新云南皇冠假日酒店隆重召开 本届APMCon是由听云 极客邦和InfoQ联合主办 作为国内APM领域最具影响力的技术大会 本
  • Android颜色透明度(不透明度)

    颜色值 AARRGGBB 透明度百分比和十六进制对应关系 下面是透明度 再加上平常写得颜色值就表示该颜色值多少透明度了 一 一张表格 基本都概括 方便查找和使用 透明度 十六进制 100 FF 99 FC 98 FA 97 F7 96 F5
  • 阿里巴巴著名的“管理三板斧”

    先说结论 阿里三板斧 也被成为阿里巴巴管理之道 说的是组织中的管理者如何通过简单的三招 实现管理团队的力量 成就自我的成长与整个团队的发展 由于阿里在业内的广泛影响 著名的管理三板斧 还被其他很多优秀企业学习吸收 比如滴滴公司 借鉴了三板斧
  • 渗透测试之二:sqlmap

    参考链接 https www freebuf com sectool 164608 html sqlmap是常用测试工具之一 本片简单讲它的用法 python版 1 简单介绍 sqlmap是一个开源的渗透测试工具 可以用来进行自动化检测 利