用DVWA靶场实战sqlmap:从数据库探测到数据拖取的完整演练记录
在网络安全领域,SQL注入攻击始终是最常见且危害性极大的漏洞类型之一。作为渗透测试工程师,掌握自动化SQL注入工具的使用已成为必备技能。本文将带您深入探索sqlmap这一强大工具,通过DVWA(Damn Vulnerable Web Application)靶场的实战演练,从基础环境搭建到高级数据提取技巧,全面解析SQL注入检测与利用的全流程。
DVWA靶场专为安全研究设计,内置了多种可配置的安全漏洞场景,是学习Web应用安全的理想实验平台。我们将从零开始,演示如何利用sqlmap对DVWA进行完整的渗透测试,包括GET/POST注入点识别、数据库指纹识别、表结构枚举以及敏感数据提取等关键环节。无论您是刚入门的安全爱好者,还是希望提升实战能力的专业渗透测试人员,本指南都将提供清晰的操作路径和实用的技巧分享。
1. 环境准备与工具配置
在开始实战之前,我们需要搭建一个完整的测试环境。这包括DVWA靶场的部署和sqlmap工具的安装配置。虽然DVWA可以在多种环境下运行,但为了获得最佳实验体验,建议使用以下配置:
- 操作系统:Kali Linux 2023.4(内置Python环境和sqlmap)
- Web服务器:Apache 2.4.57
- 数据库:MySQL 8.0.35
- PHP版本:8.2.7
如果选择在Windows平台进行实验,需要特别注意Python环境的配置。以下是Windows下的安装步骤:
# 下载Python 3.10.x安装包(推荐使用3.10.11版本)
https://www.python.org/downloads/windows/
# 安装时勾选"Add Python to PATH"选项
# 验证安装是否成功
python --version
pip --version
sqlmap的安装则相对简单,只需从官方GitHub仓库获取最新版本:
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git
cd sqlmap
python sqlmap.py --version
提示:为避免权限问题,建议在非系统目录(如用户主文件夹)中创建sqlmap工作目录。在Linux系统中,可以使用
~/tools/sqlmap这样的路径。
DVWA的安装需要额外配置数据库连接。解压DVWA压缩包后,修改config/config.inc.php文件中的数据库凭据:
$_DVWA = array();
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'dvwa';
$_DVWA[ 'db_password' ] = 'p@ssw0rd';
完成配置后,通过浏览器访问http://localhost/dvwa/setup.php初始化数据库。首次登录使用默认凭据admin/password,务必在"DVWA Security"页面将安全级别设置为"Low"以便进行注入测试。
2. 基础注入检测与漏洞确认
一切准备就绪后,我们首先对DVWA的SQL注入漏洞模块进行测试。在安全级别设置为"Low"的情况下,DVWA存在明显的未过滤注入点。打开"SQL Injection"页面,可以看到一个简单的用户ID输入表单。
2.1 GET型注入检测
对于这种通过URL参数传递输入的场景,我们使用sqlmap的-u参数指定目标URL:
python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=your_session_id; security=low"
这里有几个关键点需要注意:
- Cookie处理:DVWA需要登录后才能访问漏洞页面,因此必须携带有效的会话Cookie。可以通过浏览器开发者工具(F12)获取当前会话的PHPSESSID值。
- 参数识别:sqlmap会自动分析URL中的参数,此处会检测id参数的可注入性。
- 风险确认:当工具提示发现注入点时,按回车接受默认选项(大写字母表示的推荐选择)。
执行后,sqlmap的输出会显示类似以下信息:
[12:34:56] [INFO] testing connection to the target URL
[12:34:57] [INFO] testing if the targe


2651

被折叠的 条评论
为什么被折叠?



