虽然我用过mssql和oracle,但表示只是用过,不是很熟,所以本文大多数都在说MySQL数据库。
一、数据库
数据库管理系统 -> 数据库(可能存在多个) -> 表(一般一个数据库中都存储多个表) -> 字段 (一般一个表中都有多个字段)
也就是说:一般都是一对多的关系,这里就不深究了,我们先来看看表(tables)的结构。
这是从phpmyadmin中截取的一张图片,看起来是不是有点像excel 表格呢?
数据库中一般都会存储很多数据,包括我们的用户名和密码,所以很多黑客就喜欢搞数据库咯。
二、sqlmap 枚举数据库
首先进入终端,如果是Linux,就是terminal,如果是Windows,就是cmd。
当然,进行sql注入之前,你先要找到注入点,怎么找?google什么的,貌似还有些工具,我这里只是为了记录sqlmap的使用过程,不做深入。
1、枚举数据库
参数-u 表示URL,也就是注入点了,--dbs表示枚举数据库,说枚举太官方了,我们不如说:请sqlmap列出所有的数据库名。
2、枚举表 tables
使用-D 参数,把刚才枚举出来的数据库写到后面。--tables表示枚举这个数据库下面的表。
结果为:
那么我们就可以猜测那个数据库下面是用户名和密码了,也可以把数据库dump到我们的电脑上。进行分析。
3、枚举字段
意思就是说,枚举这个数据库下面的这个表,下面有哪些字段。
4、数据dump
这个命令表示dump当前这个数据库,下面的这个表中的所有数据。
如果这个表中刚好是管理员的用户名和密码的话,就可以尝试进行后台扫描和登录了。
总结:注入漏洞是一个经典的漏洞,我这里只是简单描述sqlmap的使用方法,关于高级的方式请参考官方说明。
sql注入虽然是个老是的注入攻击方式,当目前已经出现其它类型的变形注入,还是需要web开发者继续关注安全。