sqlmap使用 mysql_求sqlmap使用教程?
知乎小白,来写一篇sqlmap工具使用详解[更多有意思的可以关注我的微信公众号天禧信安】
1.sqlmap是什么
sqlmap是一款自动化的 sql 注入工具,闻名程度匹敌几年前的啊 D,他的功能很多,比如判断是否可以注入,发现,然后利用漏洞,里面也包含了许多绕 waf 的脚本,不过近两年都绕不了了,在 18 年的时候还勉强可以绕过。他支持许多数据库:MySQL,Microsoft sql server,access,sqllite,Oracle,postgreSQL,IBM DB2,sybase,SAP maxdb。当然我都是百度的这些。
sqlmap也是是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令),它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令SQLmap命令选项被归类为目标(Target)选项、请求(Request)选项、优化、注入、检测、技巧(Techniques)、指纹、枚举等。
sqlmap 有几种sql注入方式:布尔盲注,时间盲注,联合查询注入,报错注入,堆查询注入。
sqlmap支持五种不同的注入模式:
基于布尔的盲注,即可以根据返回页面判断条件真假的注入;
基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断;
基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中;
联合查询注入,可以使用union的情况下的注入;
堆查询注入,可以同时执行多条语句的执行时的注入。
2.安装 sqlmap
(1)windows下安装
sqlmap 的安装需要 Python 环境,不支持 Python3,可能需要一些组件包的支持,需要有python2.7.x或者2.6.x环境支持。可以去官网直接下载 Python,然后我们去 sqlmap 的官网,网址是:http://www.sqlmap.org
下载最新的 sqlmap,然后下载后,将压缩包复制到上 Python27 目录下,然后解压下来,然后我们打开 sqlmap,当然是必须在根目录下的,可不要直接在 cmd 打 sqlmap.py
安装完成
(2)kali默认安装sqlmap
3.sqlmap 初步入门
(1)判断是否存在注入
一个网站是否有注入点,我个人认为要依照三个点:
1.是否有可控参数,就是 id=1,这个 1 就是参数
2.是否可以在数据库执行
3.是否可以返回数据
如果有了这三条要点就可以了
我们假如拿到一个站,首先要看他的网页,先不提伪静态的站。假如注入点是 http://xxx.com/xxx?id=1假如注入点是这个,我们就拿 sqlmap 判断是否存在注入
sqlmap.py -u xxx.com/xxx?id=1
查询是否存在注入
然后我们如果遇到注入点的参数不为 1 的情况时,就是大于 1 时,需要加双引号
sqlmap.py -u “xxx.com/xxx?id=1”
然后我们可以看到,在第一行显示数据库可能是 MySQL,然后我这个出的信息太少,因为以前日过·······大家在找注入点时,检测的过程中会询问你什么问题,你就回车就可以了。
显示存在注入
(2)判断请求数据包中是否存在注入
sqlmap 有个功能,就是可以从 txt 中获取 http 请求,这样就可以不设置一些参数,比如 cookie,我们怎么弄到请求的数据包呢,就拿 burp 抓包,至于怎么抓包我会在下面提到的,然后我们用下面这条指令
sqlmap.py -r desktop/38.5wocnm.txt
这条指令我也不怎么经常用,他是存在 cookie 注入才使用的。
(3)查询所有数据库
当 sqlmap 确认可以注入时,我们就可以查询所有数据库了,前提是你的用户有权限读取所有数据库列表时,才可以列出是数据库,命令如下
sqlmap.py -u xxx.com/xxx?id=1 --dbs
查询数据库
我们可以看到,查询了 5 个数据库以及列出了库名,我们在继续注入时,要将--dbs 改为-D xxx,记住要是大写,意思是在 xxx 数据库查询
(4)获取数据库的表名
这个命令是我们前提下已经查询量数据库后,然后我们在查询数据库内的表名,命令如下
sqlmap.py -u xxx.com/xxx?id=1 -D stormgroup --tables
查询表名
可以看到我们查询出了两个表名
(5)查询表名的字段名
前提还是在我们获取了表名时,查询表内的字段名,当然我们还是跟上面的一样,将 tables 改为大写 T,命令如下:
sqlmap.py -u xxx.com/xxx?id=1 -D stormgroup -T member --columns
获取具体的字段内容
(6)获取字段内容
我们查询完字段内容,下一步就是获取字段内容了,我们就看 member 表中的 name 和 password 的值,命令如下:
sqlmap.py -u xxx.com/xxx?id=1 -D stormgroup -T member -C name,password --dump
获取具体的字段内容
可以看到列出了账号密码,并且密码是用 md5 加密的
(7)查询数据库名称
用下面这条指令查询当前网站使用的数据库
sqlmap.py -u xxx.com/xxx?id=1 --current-db
列出当前数据库用户
(9)获取数据库的所有用户
这个命令前提是当前用户有权限读取所有用户的表的权限,命令如下:
sqlmap.py -u xxx.com/xxx?id=1 --users
列出数据库用户
可以看到我们的用户账号是 root,root 是最高权限
(10)获取数据库用户的密码
这个指令是列出数据库用户的密码,命令如下:
sqlmap.py -u xxx.com/xxx?id=1 --password
查询数据库用户密码
以上就是 sqlmap 入门了,接下来我们讲一下更高层面
(1)--level 5 探测等级
sqlmap 他有 5 个等级,你可以理解为游戏一样,有 5 个等级,最低等级打的怪越垃圾,最高等级可以打 boss。在用此命令时,可以不加 level,默认 1。在我们不用此命令时,我们默认的就是 level 1。sqlmap 使用的 payload 在 xml/payloads.xml 中可以看到,也可以根据对应的格式添加自己的 payload,5 级包含的 payload 最多。不过 level 5 的执行速度会很慢很慢的。不过我还是建议使用高的 level 值,因为他出的东西是很全的
(2)--is-dba 查询当前用户是否为管理权限
该命令用于查看当前用户是否为数据库管理员账户
查询当前用户是否为数据库管理员账户
会返回 true
(3)--roles 列出数据库管理员角色
用于查看数据库用户的角色,如果当前用户有权限读取包含所有用户的表,该命令会列举出每个用户的角色,也可以使用-U 参数指定想看哪个用户的角色。该命令仅适用于当前数据库是 Oracle 时。
(4)--referer http refer 头
sqlmap 可以在请求中伪造 http 中的 Referer,当探测等级--level 参数设定为 3 或 3 以上时,会尝试 Referer 注入。如--referer http://www.baidu.com
(5)--sql-shell 运行自定义 SQL 语句
这个命令用于执行指定的 SQL 语句,我们假设执行 select name from stormgroup.member limit 0,1,就拿刚刚我用的那个靶场
执行指定的 sql 语句
(6)--os-cmd,--os-shell 执行任意操作系统命令
当数据库为 MySQL、PostgreSQL 或 SQLserver 且当前用户具有权限使用特定函数时该指令生效,但实现的原理有所不同。我本人其实很少用这个指令的,不过我知道他执行--os-shell的必须条件有两点,如果有补充的欢迎公众号后台找我
1.网站必须是root权限
2.攻击者需要知道网站的绝对路径
--os-shell支持asp,asp.net,jsp和php四种语言
(7)--file-read 从数据库服务器中读取文件
这个命令用于读取执行文件,数据库为MySQL,postgresql或Microsoft sql server,并且当前用户有权限使用特定的函数时,读取的文件可以是文本,也可以是二进制文件。
(8)--file-write --file-dest 上传文件到数据库服务器
权限必须是dba权限,file-write 从本地写入,file-dest 写入目标路径
数据库为MySQL,postgresql或Microsoft sql server,并且当前用户有权限使用特定的函数时,上传的文件可以是文本,也可以是二进制文件。
(9)sqlmap绕过waf脚本tamper
sqlmap有自带的绕waf的脚本,简单的示范下
sqlmap.py -u xxx.com/xxx?id=1 -v 3 --dbs --batch --tamper "space2morehash.py"
目前sqlmap提供了57个绕过脚本
sqlmap使用 mysql_求sqlmap使用教程?相关推荐
- mysql数据库求平均值的函数_使用MySQL中的AVG函数求平均值的教程
MySQL的AVG函数是用来求出各种记录中的字段的平均值. 要了解AVG功能考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...
- linux下sqlmap安装教程,(转)Sqlmap官网下载与安装教程[windows/linux版本]
转自:http://www.vuln.cn/2000 sqlmap的功能与强大性不必多言,方便大家下载,给大家整理了下sqlmap最新版的官网与github下载地址. 官网下载地址 github下载 ...
- avg最多用多少列 mysql_使用MySQL中的AVG函数求平均值的教程
MySQL的AVG函数是用来求出各种记录中的字段的平均值. 要了解AVG功能考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...
- sqlmap指定cookie_利用SQLMap进行cookie注入
SQLMap被称为注入神器,N多大神都使用SQLmap来进行注入测试,我等小菜当然也会用来装一下A*C,用了N久SQLMAP了,但是极少用 到cookie注入,一遇到cookie注入就去使用注入中转工 ...
- 怎么用计算机求平均值,电脑教程:计算机平均值怎么求
科技本身,支配宇宙的自然规律是充满魅力的!因此越来越多的人开始关注科技的相关动态,近来计算机平均值怎么求的消息也是引起了很多人的关注,那么既然现在大家都想要知道计算机平均值怎么求,小编今天就来给大家针 ...
- sqlmap的用法,sqlmap -r
sqlmap结合burpsuit进行sql注入漏洞查找; 配置好burpsuit和浏览器之间的代理,网上方法很多,创建一个记事本,准备写入参数使用: 1.在sqlmap根目录下创建list.txt,你 ...
- matlab求函数极值教程,MATLAB程序设计教程(7)—MATLAB解方程与函数极值
MATLAB程序设计教程(7)--MATLAB解方程与函数极值 第7章MATLAB解方程与函数极值 7.1 线性方程组求解 7.2 非线性方程数值求解 7.3 常微分方程初值问题的数值解法 7. ...
- mysql avg 求平均值_使用MySQL中的AVG函数求平均值的教程
MySQL的AVG函数是用来求出各种记录中的字段的平均值. 要了解AVG功能考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...
- jsch连接mysql_求用jsch网络工具包通过ssh连接远程oracle数据库并发送sql操作语句(数据库在unix上)java代码例子...
求用jsch网络工具包通过ssh连接远程oracle数据库(数据库在unix上)java代码例子:为何jsch发送:sqlplususer/pwd@service此命令,却没有结果返回啊.下面是代码: ...
- 多个时间合并并集mysql_求多个日期时间段的并集-java
说一下需求: 多个含有startTime,endTime的时间段,处理后取出并集,最后的格式为yyyy/MM/dd,如果中间有断,用逗号隔开,例如 2019/06/01-2019/08/01,201 ...
最新文章
- 常见的神经网络求导总结!
- OpenCV 中的 Scalar 类、Vec类
- 用 Flask 来写个轻博客 (15) — M(V)C_实现博文页面评论表单
- 《漫画算法2》源码整理-6 两数之和 三数之和
- asp伪装成jsp的方法
- hdu-4045 Machine scheduling
- (转)ASP.NET-关于Container dataitem 与 eval方法介绍
- 在URL里传入数组到HTML 里。
- 小林求职记(二):说好的问基础,为啥我感觉一点也不基础呢?
- Long Short-Term Memory Over Tree Structures
- 栈和队列8 - 数据结构和算法30
- NHibernate初学者指南(18):验证单个属性
- 数据库之常用SQL语句整合
- 数据结构(c语言版)各章内容总结
- 生鲜APP软件功能开发
- mysql got signal 11_轻松解决MYSQL错误mysqld got signal 11 ;
- linux无线网卡驱动编写,博通无线网卡驱动linux版
- 京东到家定位系统演化
- vue项目 使用百度云 cyberplayer.js插件方法
- strom及DRPC性能测试与改进