SQL注入攻击

来源:互联网 发布:淘宝网红直播推广费用 编辑:程序博客网 时间:2024/05/17 16:00

SQL注入攻击

当我们登陆一个系统的时候, 系统会提示我们首先输入用户名和密码, 然后在验证用户名和密码正确之后才会让我们进入主页。

此时数据库中的操作就应该是:

  1. 后台代码获取到我们输入的用户登录信息
  2. 将用户登陆信息组合成SQL语句
SELECT * FROM userInfo WHERE username=XXX AND password=XXX;

3.数据库执行此语句, 如果查询到数据则允许登陆, 否则不允许登陆。

实验一:
1. 首先创建一个简单的用户信息表
























columnName

dataType

constraint

uid

INT

PRIMARY KEY | AUTO_INCREMENT

username

VARCHAR(20)

NOT NULL

password

VARCHAR(200)

NOT NULL

CREATE TABLE userInfo(uid INT PRIMARY KEY AUTO_INCREMENT,     username VARCHAR(20) NOT NULL,    password VARCHAR(200) NOT NULL);

userInfo

  1. 向userInfo表中插入一些数据用来测试
INSERT INTO userInfo(username, password) VALUES ('zhangsan', '123456'),         ('lisi', '000000');

insertValue

  1. 此时我们输入一堆数据去select数据库中的数据看看会怎么样
/*1. 输入数据库中存在的数据*/SELECT * FROM userInfo WHERE username='zhangsan' AND password='123456';/*2. 输入数据库中不存在的数据*/SELECT * FROM userInfo WHERE username='66666' AND password='9999';/*3. 使用SQL注入去输入数据库中不存在的数据*/SELECT * FROM userInfo WHERE username='00000' AND password='111' OR '1=1';

第一种情况的输入如图:
first

第二种情况的输入如图:
Second

第三种情况的输入如图:
third

用户名和全部不对的请款下我们查询出了所有的信息,这就是SQL语言逻辑上的漏洞。

第三种输入中存在一个OR的关键字, 而且OR之后给出了一个true的值,此时相当于所有的条件全部失效,所以我们可以从数据库中得到全部的数据。

原创粉丝点击