SQL注⼊——从零开始搭建靶场详细教程_实战练习_注⼊原理⽂章⽬录
⼀、环境依赖
1. VMware V15.5(可选)
2. Windows 10 x64 虚拟机(可选)
3. phpstudy V8.1
4. MySQL V
5.7.26(在phpstudy内选择)
5. Nginx 1.15.11(在phpstudy内选择)
6. PHP V5.6.9(在phpstudy内选择)
7. SQLyog(可⽤phpstudy内其他软件代替)
8. 成绩管理系统靶场
⼆、靶场搭建
安装以上环境和软件
为模拟真实情况,靶场搭建在虚拟机内,⽽访问在物理机上完成(可选)
当然,操作均在物理机上进⾏也没问题
以下操作均在虚拟机内完成
Ⅰ、下载靶场⽂件
提取码:244q
Ⅱ、创建⽹站
phpstudy --> ⽹站 --> 创建⽹站 --> 填写域名、端⼝、根⽬录,更改PHP版本
物理路径选择解压的靶场路径(需修改成全英⽂)
请确认版本信息
Ⅲ、更改数据库root密码
数据库 --> 修改root密码 --> 将root密码修改为123456(与靶场数据库保持⼀致)靶场数据库密码在query.php可以查询
<?php
require_once('query.html');
$db=mysql_connect('127.0.0.1','root','123456');
...
Ⅳ、新建并导⼊数据库
打开SQLyog --> 新建 --> 填写主机地址为localhost、密码为123456
用phpstudy搭建网站
左侧栏 --> 右键创建数据库
名称⾃拟,建议设置成grade
–> 单击选中新建数据库 --> 将靶场⽂件夹内的.sql⽂件拖⼊SQLyog -->左上⾓执⾏全部
导⼊成功后右下会有提⽰
成功后即可关闭SQLyog
Ⅴ、验证访问靶场
浏览器输⼊localhost:端⼝号访问靶场
三、实战练习
以下操作在物理机上进⾏
访问靶场前使⽤CMD得到虚拟机IP
Ⅰ、嗅探字段
①、验证合法性
输⼊' #、任意英⽂字符串、任意数字串验证合法性若查询结果⽆报错则语句合法
use mysqli报错是由于使⽤了过时的PHP连接数据库函数,在此处不影响注⼊操作
※语句解释
查询学号基于SQL语法:
SELECT 学号 FROM 数据表 WHERE 名字 = ’ {输⼊的名字} ’
因此构造了以下语句
SELECT 学号 FROM 数据表 WHERE 名字 = ’ ’ # ’
查空名字对应的学号,#号将后接⼊的’注释了
②、查注⼊点
输⼊' or 1=1 #构造语句