虽然我用过mssql和oracle,但表示只是用过,不是很熟,所以本文大多数都在说MySQL数据库。


一、数据库

数据库管理系统  ->  数据库(可能存在多个) ->   表(一般一个数据库中都存储多个表) -> 字段  (一般一个表中都有多个字段)

也就是说:一般都是一对多的关系,这里就不深究了,我们先来看看表(tables)的结构。

  

sqlmap可以用python3 sqlmap简单使用_sqlmap可以用python3

这是从phpmyadmin中截取的一张图片,看起来是不是有点像excel 表格呢?

数据库中一般都会存储很多数据,包括我们的用户名和密码,所以很多黑客就喜欢搞数据库咯。


二、sqlmap 枚举数据库

首先进入终端,如果是Linux,就是terminal,如果是Windows,就是cmd。

当然,进行sql注入之前,你先要找到注入点,怎么找?google什么的,貌似还有些工具,我这里只是为了记录sqlmap的使用过程,不做深入。

1、枚举数据库

sqlmap可以用python3 sqlmap简单使用_字段_02

参数-u 表示URL,也就是注入点了,--dbs表示枚举数据库,说枚举太官方了,我们不如说:请sqlmap列出所有的数据库名。

2、枚举表  tables

sqlmap可以用python3 sqlmap简单使用_数据库_03

使用-D 参数,把刚才枚举出来的数据库写到后面。--tables表示枚举这个数据库下面的表。

结果为:

sqlmap可以用python3 sqlmap简单使用_字段_04

那么我们就可以猜测那个数据库下面是用户名和密码了,也可以把数据库dump到我们的电脑上。进行分析。

3、枚举字段

sqlmap可以用python3 sqlmap简单使用_数据库_05

意思就是说,枚举这个数据库下面的这个表,下面有哪些字段。

4、数据dump

sqlmap可以用python3 sqlmap简单使用_字段_06

这个命令表示dump当前这个数据库,下面的这个表中的所有数据。

sqlmap可以用python3 sqlmap简单使用_sqlmap可以用python3_07

如果这个表中刚好是管理员的用户名和密码的话,就可以尝试进行后台扫描和登录了。


总结:注入漏洞是一个经典的漏洞,我这里只是简单描述sqlmap的使用方法,关于高级的方式请参考官方说明。

            sql注入虽然是个老是的注入攻击方式,当目前已经出现其它类型的变形注入,还是需要web开发者继续关注安全。