SQLMap入门

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLMap入门相关的知识,希望对你有一定的参考价值。

SQLMap入门

什么是SQLMap?

  • SQLMap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的url的SQL注入漏洞
    内置很多绕过插件,支持的数据库是mysql、Oracle、postgreSQL、MicrosftSQL server、IBM DB2等

  • SQLMap采用以下五种独特的SQL注入技术

    1. 基于布尔值的盲注,即根据返回页面判断条件真假的注入
    2. 基于时间的盲注,既不能根据页面返回的内容判断任何信息,要利用条件语句查看时间延迟语句是否已经执行来判断
    3. 基于报错注入,及页面会返回错误信息,或者把注入的语句的结果直接返回到页面中
    4. 联合查询注入,在可以使用union的情况下的注
    5. 堆查询注入,可以同时执行多条语句时注入
  • SQLMap的强大功能包括数据库指纹识别,数据库枚举,数据库提取,访问目标文件夹系统,并在获取完全的操作权限时实行任意指令命令,SQLMap的功能十分强大,当其他注入工具不能利用SQL注入漏洞时,使用SQLMap会有意向不到的结果

SQLMap安装

SQLMap需要python2环境的支持,暂时不支持python3
在官网下载SQLMap sqlmap官网地址
在官网下载Python python官网地址
在官网下载对应系统的python2版本
下载完成后 检查python环境变量是否安装成功
关于下载安装python的方法可以参考之前的博客

完成上述内容后
我这里是把python和SQLMap放到了C盘下 具体情况根据实际情况来设定
把下载好的SQLMap文件夹放到Python2的文件夹中
打开CMD
先检查pytho的环境是否安装成功
将cmd的路径切换到python的安装路径下
我这里是下载到C盘的根目录下

cd /  切换到 c盘根目录下
python 检查pytho的环境 出现python的版本及成功
cd /python2/sqlmap/sqlmap.py  将路径切换到sqlmap下的sqlmap.py
# 具体的路径根据实际情况设定 不知道sqlmap.py文件在哪的话可以进入文件夹后dir查看一下,运行sqlmap.py出现信息及成功

SQLMap使用方法

首先我们需要确保上次搭建的sqli-labs的环境成功
确保sqli-labs能够成功访问 我们点击下方的Less 1
技术图片

点进去以后出现一个黑色的界面 显示 SQLI DUMB SERIES-1
然后我们复制上面的网址
这里我的地址是 http://127.0.0.1/sqli-labs-master/Less-1/?id=1
复制完成后我们进入cmd里的sqlmap环境下
这里可以设置cmd的默认路径 将cmd的默认路径设置为sqlmap.py的路径
新建一个快捷方式 输入cmd 创建完成后在属性里更改路径即可

检测目标网页是否存在注入

进入更改完成后的cmd 提示出sqlmap的信息
这时候我们使用SQL注入语句来判断目标网址是否存在注入

sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1  #检测目标网址是否存在注入

输入完成后回车 显示内容如图
检测过程中出现输入Y/N的地方直接回车即可
技术图片

红框圈出的前四个就是注入的类型 根据我们开头讲到的注入类型看一下都是哪些注入类型

Type: boolean-based blind    # 基于布尔值的盲注
Type: error-based    # 基于报错注入
Type: time-based blind    # 基于时间的盲注
Type: UNION query    # 联合查询注入

最后一个红框里可以看到提示的是目标使用的数据库版本、服务器类型、php版本、Apache版本

获取数据库指定的字段内容

这里我们使用SQLMap获取security数据库下的id password username内容

首先需要确保运行数据库 这里我用的是phpmyadmin
这里使用我们搭建漏洞环境时导入的security库
命令如下

sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 -D security -T users -C id,password,username --dump
# -D 指定数据库 -T 数据库下的表名 -C 指定所需要的列 --dump获取所有信息

技术图片

获取数据库中所有用户

该命令的作用是列出数据库的所有用户,在当前用户有权限读取包含所有用户的表的权限时,使用该命令就可以列出所有的管理用户

sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --users

技术图片

获取数据库的密码

该命令的作用是列出数据库的用户的密码,如果当前用户有读取包含用户密码的权限,sqlmap会列出用户,然后列出hash,并尝试破解

sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --passwords

技术图片

我们看到这里列出了 数据库密码的哈希值,假如说我们这里没有破解出来,我们可以复制这个 password hash 的值
把这个值拿到破解网站上取尝试破解
这里我们拿图上的password hash 做个示范

password hash :*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B

技术图片

常见问题

python环境

关于python环境,如果在安装向导的时候选择的Add Path 的这个选项话
后面就不需要手动添加python环境了
如果忘记勾选这个选项了我们需要在我的电脑--管理--高级设置--环境变量中手动添加python的安装路径来添加python环境

详细的内容可以参考之前的博客

SQLMap运行指令报错

只要命令没有敲错的 一般是不会有什么问题的
检查一下自己的sqli-labs那个网页的地址是否跟实际输入的一样

是否可以更改路径

如果感觉路径太复杂是否可以更改路径呢
SQLMap的安装路径一定要在python文件夹下
如果要更改sqli-labs的路径,如果没有足够的实力最好不要更改
因为安装的时候安装了很多环境,很多都是有依赖关系的,如果这个改了说不准哪个就报错了
上次我更改了phpstudy的安装路径,改完以后phpstudy软件就会出错,重装的话之前搭建的环境也白整了
所以在安装之前思路一定要清晰一些,理好路径

相关法律

第二百八十五条 非法侵入计算机信息系统罪

违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。 违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。 提供专门用于侵入、非法控制计算机信息系统的程序、工具,或者明知他人实施侵入、非法控制计算机信息系统的违法犯罪行为而为其提供程序、工具,情节严重的,依照前款的规定处罚。 单位犯前三款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照各该款的规定处罚。

第二百八十六条 破坏计算机信息系统罪

违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。 违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。 故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。 单位犯前三款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照第一款的规定处罚。

总结

请使用自己搭建的漏洞环境,切勿用于非法的用途,仅供学习

初学SQL注入,如果有写的不周到的地方可以还请见谅
上次的搭建的漏洞环境和SQLMap一定要注意自己的路径是否正确
这里还有几个指令没有讲到
感觉写了什么查看数据库的没意思
还是写的破解密码的感觉刺激一点

以上是关于SQLMap入门的主要内容,如果未能解决你的问题,请参考以下文章

sqlmap入门

Burpsuite Sqlmap Nmap入门总结

sqlmap 入门到精通

安全测试入门——sqlmap的简易使用

安全测试入门——sqlmap的简易使用

sqlmap从入门到精通-第五章-5-1 使用sqlmap进行Access注入及防御