首页 > 数据库 >sqlmap

sqlmap

时间:2024-10-10 19:19:50浏览次数:3  
标签:sqlmap DBMS -- 数据库 py 空格 SQL

一、介绍

1.简介

SQLMAP是一种开源渗透测试工具,可自动执行SQL注入缺陷的检测和注入过程,并接管数据库服务器。它有强大的检测引擎,针对不同类型的数据库提供多样的渗透测试功能选项,实现数据库识别、数据获取、访问DBMS\操作系统甚至通过带外数据连接的方式执行操作系统的命令。以及从数据库指纹识别、从数据库获取数据、 通过带外连接在操作系统上执行命令。

2.功能

  • 自动化SQL注入检测工具
  • 它可以读取数据库内容
  • 获取数据库权限、系统权限

3.SQL注入技术

布尔盲注、时间盲注、报错注入、联合查询、堆叠注入

4.工具网站

sqlmap: automatic SQL injection and database takeover tool

5.语法

python3 sqlmap.py

二、使用

1.查看帮助信息

python3 sqlmap.py -h

python3 sqlmap.py -hh

2.Target

-d 指定直接数据库连接得连接字符串,直接连接到数据库。

-u 指定URL目标

-I 从Burp或WebScarab代理得日志中解析目标

-m 扫描文本文件中给出得多个目标,批量扫描

-r 从文本中加载HTTP请求。 * 标记注入位置

-g 将Google Dork得结果作为目标URLh

3.Techniques⽅法

-a 获取所有信息

-current-user 获取DBMS当前用户

--current-db 获取DBMS当前数据库

--hostname 获取DBMS当前主机名

--is-dba 检测当前用户是否为管理员用户

--users 枚举DBMS用户

--passwords 枚举DBMS用户密码hash

--dbs 枚举DBMS数据库

--tables 枚举DBMS数据库中得表

--columns 枚举DBMS数据库表得列名

--dump 转储DBMS数据库表

--dump-all 转储DBMS所有数据库表

-D db_name 指定要求枚举得DBMS数据库名

-T table_name 指定要枚举得DBMS表

-C column_name 指定要枚举得DBMS列

--batch 从不询问用户输入,使用所有默认配置

4.Request请求选项

--data=DATA 通过POST方式发送数据字符串

--cookie=COOKIE HTTP Cookie头 LMXCMS演示

--user-agent=AGENT 指定HTTP User-Agent头

--random-agent 使用随机选定得HTTP User-Agent头

--host=HOST 指定HTTP HOST header

--referer=REFERER 指定HTTP Referer header

--ignore-proxy 忽略系统默认代理配置

--proxy=PROXY 使用代理连接目标URL --proxy=" http://127.0.0.1:7891 "

--delay=DELAY 可以设定两个请求间得延迟

--timeout=TIMEOUT 可以设定一个请求超过多久判定为超时

--force-ssl 强制使用SSL/HTTPS

-- threads=THREADS HTTP(s)最大并发请求数(默认是1)

--dbms=DBMS 强制指定后端DBMS

--os=OS 强制指定后端得DBMS操作系统

--tamper 使用给定得脚本修改注入数据

5.Detection探测选择

--level=LEVEL 测试等级(1-5, default 1)

--risk=RISK 测试的风险等级(1-3, default 1)

--technique 来指定要使用哪种注入模式,快速扫描

  • level 1 默认的等级,会进行基本的测试,包括GET和POST方式
  • level 2 在原有的基础上增加对cookie的检测
  • level 3 增加对USER AGENT/REFERER的检测
  • level 4 更多的payload
  • level 5 最高等级,包含所有的payload,会尝试自动破解出cookie、xff等头部注入(速度最慢)

6.访问文件系统

--file-read=D:/1.txt 从后端的数据库管理系统文件系统读取文件

--file-write=WFILE 编辑后端的数据库管理系统文件系统上的 本地文件

--file-dest=DFILE 后端的数据库管理系统写入文件的 绝对路径

7.权限操作-⽂件&命令&交互式

--os-cmd='whoami' 执行操作系统命令(OSCMD)

--os-shell 交互式的操作系统的shell

--priv-esc 数据库进程用户权限提升

--sql-shell 执行SQL语句

--file-write --file-dest 写入文件

二、sqlmap常见使用

python3 sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-3/?id=1 --file-write D:/00SIS/123.txt --file-dest D:/00SIS/1/123.php

三、tamper绕过

--tamper=base64encode.py

--tamper=test.py

space2comment.py 用/**/代替空格

apostrophemask.py 用utf8代替引号

equaltolike.py like代替等号

space2dash.py 绕过过滤‘=’ 替换空格字符(”),(’–‘)后跟一个破折号注释,一个随机字符串和一个新行

(’n’)

greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。

space2hash.py 空格替换为#号,随机字符串以及换行符

apostrophenullencode.py 绕过过滤双引号,替换字符和双引号。

halfversionedmorekeywords.py 当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论

space2morehash.py 空格替换为 #号 以及更多随机字符串 换行符

appendnullbyte.py 在有效负荷结束位置加载零字节字符编码

ifnull2ifisnull.py 绕过对IFNULL过滤,替换类似’IFNULL(A,B)’为’IF(ISNULL(A), B, A)’

space2mssqlblank.py (mssql)空格替换为其它空符号

base64encode.py 用base64编码替换

space2mssqlhash.py 替换空格

modsecurityversioned.py 过滤空格,包含完整的查询版本注释

space2mysqlblank.py 空格替换其它空白符号(mysql)

between.py用between替换大于号(>)

space2mysqldash.py替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’)

multiplespaces.py围绕SQL关键字添加多个空格

space2plus.py 用+替换空格

bluecoat.py 代替空格字符后与一个有效的随机空白字符的SQL语句,然后替换=为like

nonrecursivereplacement.py双重查询语句,取代SQL关键字

space2randomblank.py代替空格字符(“”)从一个随机的空白字符可选字符的有效集

sp_password.py追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾

chardoubleencode.py双url编码(不处理以编码的)

unionalltounion.py替换UNION ALLSELECT UNION SELECT

charencode.py url编码

randomcase.py随机大小写

unmagicquotes.py宽字符绕过 GPCaddslashes

randomcomments.py用/**/分割sql关键字

charunicodeencode.py字符串 unicode 编码

securesphere.py追加特制的字符串

versionedmorekeywords.py注释绕过

space2comment.py替换空格字符串(‘‘) 使用注释‘/**/’

四、SQL注入流量特征

参数长度异常:攻击者通常会在参数后来尝试构建恶意语句,因此流量特征中需要寻找异常长度的参数。

特殊字符:攻击者通常使用非法字符来构建恶意SQL语句,如:单引号、分号、注释符

异常请求:攻击者肯能会在HTTP请求中包含多个语句或查询、包含错误或缺失的参数。

错误响应:如果应用程序未正确处理SQL注入语句,则可能会返回错误响应。

非常规流量:攻击者可能会在短时间发送大量请求且请求中包含恶意的SQL语句字符等

五、SQLMAP

1.静态特征

特征一: UA头

特征二: 关键字

特征三:在前几个数据包中,会检测是否过滤了 常见的字符

2.动态特征

@@version_compile_os特征

尝试访问上传的脚本文件 (tmpuwxuv.php tmpuhalq.php)

测试命令执行语句特征

调用sys_eval() sys_exec() 尝试执行代码和系统命令

标签:sqlmap,DBMS,--,数据库,py,空格,SQL
From: https://blog.csdn.net/qq_58725061/article/details/142830096

相关文章

  • 喜欢长文吗?1w字带你了解sqlmap,从0到1,WAF绕过,高级用法一文通透
    前言在信息安全领域,SQL注入攻击是一种极为常见且危害严重的安全漏洞。攻击者利用Web应用程序对SQL查询的不当处理,通过注入恶意SQL代码,从而绕过安全措施,非法访问或篡改数据库中的数据。随着网络安全威胁的日益严峻,了解和掌握SQL注入攻击的检测与防御技术变得尤为重要。sqlmap作为......
  • sqlmap工具查询接口是否存在sql注入
     转:https://blog.csdn.net/m0_63641882/article/details/134529081 sqlmap-u'https://orgvue3.cyberwing.cn/api/org/tree/unitTree?id=0&_t=1725517383534'--header'Authorization:BearereyJraWQiOiI2MGMyY2RiNC03N2NlLTQzYzMtOTdiNS0xNmE1YjVlM......
  • WEB渗透Web突破篇-SQL注入(SQLMAP)
    WEB渗透Web突破篇-SQL注入(数据库判断)-CSDN博客WEB渗透Web突破篇-SQL注入(MYSQL)-CSDN博客WEB渗透Web突破篇-SQL注入(MSSQL)-CSDN博客WEB渗透Web突破篇-SQL注入(Oracle)-CSDN博客WEB渗透Web突破篇-SQL注入(PostgreSQL)-CSDN博客WEB渗透Web突破篇-SQL注入(SQLite)-CSDN博客WEB渗透Web......
  • SQL server基于报错的注入(使用sqlmap进行get shell)
    SQLserver基于报错的注入1.访问MSSQLSQLiLabs网站点击按钮,我们使用GET请求上传参数“id”,当id=1时,页面显示id=1的用户名Dump、密码Dump:2.寻找注入点http://[靶机IP]/less-1.asp?id=1'运行后报错,说明我们可以利用参数“id”作为我们的注入点,根据回显我们可以判断这是字......
  • Sqlmap中文使用手册 - Injection模块参数使用
    目录1.Injection模块的帮助文档2.各个参数的介绍2.1指定测试参数2.2--dbms=DBMS2.3--os=OS2.4--invalid-bignum2.5--invalid-logical2.6--invalid-string2.7--no-escape2.8--prefix/--suffix2.9--tamper=TAMPER1.Injection模块的帮助文档Injection:......
  • sqlmap的使用简介
    SQLmap是一款自动化的SQL注入工具,可以用于检测和利用SQL注入漏洞,通过Sqlmap工具可以比较轻松的获取数据库中的相关数据,以下通过一个简单的测试案例简单介绍sqlmap的使用教程:1.通过pikachu的sql盲注提交一个url请求,请求连接为:http://192.168.10.69/pikachu/vul/sqli/sqli_......
  • sqlmap使用,配合Burpsuite
    一、Burpsuite抓包 二、使用sqlmap寻找爆破点执行命令:sqlmap-rsql.txt--risk3--level3如下显示有注入点 三、各种语句1、爆库:sqlmap-rsql.txt--dbs--risk3--level3 2、爆表 3、爆字段 4、爆值 ......
  • Sqlmap使用
    基础使用sqlmap.py-u"http://192,168.1.104/sq11/Less-1/?id=1&uid=2"文本中获取请求sqlmap.py-rdesktop/1.txt查询数据库与表sqlmap.py-uhttp://192.168.1.104/sql1/Less-1/?id=1--dbssqlmap.py-uhttp://192.168.1.104/sql1/Less-1/?id=1--D--tabls//-D不指......
  • sqlmap注入详解
    免责声明:本文仅做分享...目录1.介绍2.特点3.下载4.帮助文档5.常见命令指定目标请求HTTPcookie头HTTPUser-Agent头HTTP协议的证书认证HTTP(S)代理HTTP请求延迟设定超时时间设定重试超时设定随机改变的参数值利用正则过滤目标网址避免过多的错误请求被屏......
  • SQLMAP使用参数
    get型常用参数-u:指定注入的URLsqlmap-uURL--dbs:爆出所有数据库sqlmap-uURL--dbs--dbms:指定数据库类型sqlmap-uURL--dbms=mysql--users:查看数据库的所有用户sqlmap-uURL--users--current-user:查看数据库当前用户sqlmap-uURL--current-user--current-db:......