sqli-labs(50-53)

Less-50

从源码可以看出,这里执行sql语句的函数是mysqli_multi_query(),它与以往执行sql语句的函数mysqli_query()不同,它一次可执行多条语句,而以往的一次只能执行一条,所以可以使用堆叠注入,之前都做过很多堆叠注入了,所以不再演示,只是这里为字符型注入,下面把一些基础常用的sql语句进行了罗列

数据库

# 查看所有数据库
SHOW DATABASES;
#创建一个数据库
CREATE DATABASE n;
#删除一个数据库
DROP DATABASE n;
#使用这个数据库
USE n;

# 查看所有表
SHOW TABLES FROM database;
#创建一个表
CREATE TABLE n(id int,name varchar(10));
CREATE TABLE n(id int,name varchar(10),PRIMARY KEY (id),FOREIGN KEY(id))
# 直接将查询结果导入或复制到新创建的表
CREATE TABLE n SELECT * FROM m;
#新创建的表于一个存在的表的数据结构类似
CREATE TABLE n LIKE m;
#创建临时表
#临时表将在你连接Mysql期间存在。但断开连接时,Mysql将自动删除表并释放所用空间,也可以手动删除
CREATE TEMPORARY TABLE n(id int,name varchar(10));
# 直接将查询结果导入新创建的临时表
CREATE TEMPORARY TABLE n SELECT * FROM m;
#删除一个存在表
DROP TABLE IF EXISTS n;
#更改存在表的名称
ALTER TABLE n RENAME m;
RENAME TABLE n TO m;
#查看表的结构
DESC n;
SHOW COLUMNS IN n;
SHOW COLUMNS FROM n;
#查看表的创建语句
SHOW CREATE TABLE n;

表的结构

# 添加字段
ALTER TABLE n ADD age varchar(2);
#删除字段
ALTER TABLE n DROP age;
#更改字段名和熟悉
ALTER TABLE n CHANGE age a int;
#只更改字段属性
ALTER TABLE n MODIRY age varchar(7);

表的数据

# 增加数据
INSERT INTO n VALUES(1,'TOM','23');
INSERT INTO n SELECT * FROM n;#把数据复制一遍再插入
# 删除数据
DELETE FROM n WHERE id=2;
#更新数据
UPDATE n SET name='tom' WHERE id=2;
#数据查找
SELECT * FROM n WHERE name LIKE '%H';
#数据排序(倒序)
SELECT * FROM n ORDER BY name,id DESC;

Less-51

闭合方式为',报错型注入

Less-52

数字型排序堆叠盲注

Less-53

符号型(')排序堆叠盲注,这里提一下如何判断是'闭合还是')闭合,如果是单引号闭合,可能也会回显正常,因为这里id是整型的,1)会隐式转换为1,所以回显也是正常的,所以靠?sort=1’and'1'='1'--+?sort=1'and'1'='1')--+来判断,前者回显正常则是单引号闭合,后者则是‘)闭合,当然这也不是惟一的判断方法,只要能区分两者就行。

你可能感兴趣的:(sqli-labs)