xctf-supersqli

2023-11-01

题目链接
1.首先打开题目链接是一个提交框,习惯性的先提交1看看返回什么结果,
在这里插入图片描述
返回了一个数组,再来提交1'看看,
在这里插入图片描述
根据回显可知这里可能存在sql注入,而且数据库为mysql,又根据报错提示提交1'#看看能不能闭合,提交后回显正常,说明是单引号闭合。
2.接下来使用order by看看联合注入的字段数,order by 2回显正常,order by 3,回显错误,说明字段数是2.然后就可以试试能不能进行联合查询注入了,提交1'union select 1,2#,结果提交后返回下图这些东西
在这里插入图片描述
显然是正则表达式过滤了这些关键语句,而且忽略大小写,所以不能大小写绕过了,又试了试双写绕过,结果还是一样。
3.既然不能使用上图那些关键语句了,尝试别的方法吧,先来试试提交1 and%20(extractvalue(1,concat(%27~%27,database())))#,结果回显正常
在这里插入图片描述
这里正常情况下不可能回显正常啊,检查了几遍提交的内容,抬头一看地址栏,这不是提交的内容吗,F12之后发现,果然这里的methodget,仔细一看地址栏的东西,发现比我提交的东西多了一个+inject=1+and%2520%28extractvalue%281%2Cconcat%28%2527~%2527%2Cdatabase%28%29%29%29%29%23,这下明白为啥回显正常了,问题在于+,由于1+字符串进行了类型转换,变成了1,当然回显正常了,所以应该在地址栏进行注入了。
4.这时再在地址栏提交1%27and%20(extractvalue(1,concat(%27~%27,database())))--+,成功爆出了数据库名
在这里插入图片描述
接下来怎么办,select这个关键字被过滤,很多方法就不行了,最后想到了堆叠注入.先来看看能不能进行堆叠注入,提交?inject=0%27;show%20tables;--+
在这里插入图片描述
回显两个表名,说明可以进行堆叠注入。
再来依次看看这两个表里面的东西
在这里插入图片描述
这里看到了flag,但是这里需要注意红圈的地方,在表
1919810931114514两边使用的是反引号,sql采用单引号环绕文本值,但是对于表名,字段名,关键字这些则使用反引号或者什么都不加,但是对数字或者存在特殊字符的表名需要使用反引号,在where条件表达式则使用单引号。
5.知道了flag在哪,但是该如何查出它?下面有两种方法:
第一种sql预处理:
主要是三个语句的应用,可以看看这篇文章对它们的解释
理解了文章里的三个语句就可以构造出查看flag的语句了,
在这里插入图片描述
提交语句后,又弹出了strstr()这个函数在检测传入的setprepare,而该函数对大小写敏感,所以可以采用大写绕过,构造语句是:/?inject=0%27;Set%20@sql=concat(%27s%27,%27elect%20*%20from%20`1919810931114514`;%27);Prepare%20sq%20from%20@sql;execute%20sq;–+
在这里插入图片描述
第二种:改表名
通过第一种方法看见了另外一个表words里面的东西
在这里插入图片描述
而红圈里面的内容不正是提交1时候所回显的内容吗,再来提交2和114514,回显如下
在这里插入图片描述
在这里插入图片描述
由这些结果可大致猜测出后台的语句是:select * from words where id=$inject,所以我们可以利用现成的select语句来爆出flag,这就牵涉到把words改为其他名,1919810931114514改为words,再把字段flag改为id,最后利用永真式1'or'1'='1爆出flag
修改表名和字段:
inject=1%27;rename%20table%20words%20to%20words1;rename%20table%20`1919810931114514`%20to%20words;alter%20table%20words%20change%20flag%20id%20varchar(50);–+
flag
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xctf-supersqli 的相关文章

  • TPS-1教学:TPS-1 PROFINET Demo Board概述视频

    TPS 1教学 TPS 1 PROFINET Demo Board概述 电子发烧友网 elecfans com
  • 用matlab进行模糊识别

    例1 设论域U x1 x2 x3 x4 x5 上的三个模糊模式分别为A 0 7 0 5 0 2 0 4 B 0 8 0 3 0 4 0 2 C 0 6 0 4 0 5 0 3 试判别A和B中 哪个和C最贴近 解 按照 格贴近度 有如下计算
  • C++堆内存分配

    C 堆内存分配 C堆内存分配 抽象与分层 如何扩展有效堆内存 brk和sbrk系统调用 如何维护有效堆内存 operator new 抽象与分层 c和c 的内存服务模型与计算机网络里面的协议分层模型有点类似 计算机网络协议大体分为 层 应用
  • 第二课if语句的练习

    知识点 if判断语句 题目1 训练 李雷想买一个价值7988元的新手机 她的旧手机在二手市场能卖1500元 而手机专卖店推出以旧换新的优惠 把她的旧手机交给店家 新手机就能够打8折优惠 为了更省钱 李雷要不要以旧换新 请在控制台输出 训练提
  • 手把手教你用Keras进行多标签分类(附代码)

    作者 Adrian Rosebrock 翻译 程思衍 校对 付宇帅 本文约7000字 建议阅读10 分钟 本文将通过拆解SmallVGGNet的架构及代码实例来讲解如何运用Keras进行多标签分类 本文的灵感来源于我收到的一封来自PyIma
  • 「Kubernetes」- 使用 Fluentd 收集日志 @20210128

    服务搭建流程概览 1 确定需要收集的日志及位置 2 搭建日志收集服务 Elasticsearch Kibana Fluentd 3 验证日志收集成功 能够查看 集群环境概述 操作系统 CentOS Linux release 7 4 170
  • 3d wallpaper android,3D Parallax Wallpaper

    Increase your home screen liveliness with 3D Parallax Wallpaper StoreThis app is not the usual 3D Live wallpaper but it
  • FreeRTOS-内核控制函数

    FreeRTOS 内核控制函数 FreeRTOS中有一些内核函数 一般来说这些内核函数在应用层不会使用 但是内核控制函数是理解FreeRTOS中断的基础 接下来我们逐一分析这些内核函数 taskYIELD 该函数的作用是进行任务切换 这是一
  • ubuntu防火墙命令介绍

    ubuntu在开启ufw防火墙前 为了避免与iptables现有规则冲突 建议先清空iptables的所有规则 相关命令如下 iptables F 更改iptables规则链默认操作命令如下 iptables P INPUT ACCEPT
  • Eclipse出现Widget is disposed错误

    在Eclipse中切换正常磨损和Debug模式的时候出现了这种问题 可以通过关闭toggle breakcrumb 来屏蔽这种错误 如图所示
  • 单片机串行口

    http www cnblogs com xianghang123 archive 2011 03 22 1991093 html 单片机串行口 MCS 51单片机的串行口具有两条独立的数据线 发送端TXD和接收端RXD 它允许数据同时往两
  • STM32从标准库转到HAL遇到的问题(持续更新)

    一 GPIO配置 1 写入高低电平报错use of undeclared identifier 以下代码在define过程中不报错 define A HAL GPIO WritePin GPIOA GPIO Pin 7 GPIO PIN R
  • web前端向java后端传递model的几种方法

    1 通过fastjson传值 前端代码 post test modelStr JSON stringify data collection collection function ret do something 后端代码 RequestM
  • yolov3为什么对大目标检测不好_基于改进YOLOv3的交通场景小目标检测方法与流程...

    本发明提出一种基于改进yolov3的交通场景小目标检测方法 解决yolov3网络过深问题 提高对小目标检测的精确度和速度 一定程度上避免训练神经网络出现的过拟合现象 属于智能交通领域 背景技术 在交通目标识别应用中 小目标的识别与跟踪是研究
  • 【SQL注入-02】SQL注入点的简单判断

    目录 1 实验环境 2 准备工作 3 判断是否存在SQL注入点及注入的类型 4 结论 1 实验环境 实验靶场 虚拟机 IP为172 16 1 1 本节实验靶场是在win2008系统上基于phpstudy搭建的一个简单网站 win2008及p
  • 区块链学习笔记1

    1 什么是区块链 区块链是通过去中心 化去信任的方式集体维护一个可靠数据库的技术方案 参与系统中的任意多个节点把系统一段时间内的全部的信息 数据通过密码学算法计算和记录到一个数据块 区块block 并且生成该区块的指纹用于链接下一个区块和校
  • Hadoop三种运行模式详解

    5 1 本地运行模式 本地运行模式不需要额外的设置 只需要执行响应的jar包就可以了 不需要任何的集群配置 本地运行模式其实也是一种单节点模式 Hadoop提供了两个案例 我们执行这两个案例 5 1 1 官方 grep 案例 这个案例是提供
  • Fast Global Registration 快速全局配准

    目录 1 算法过程 2 基于四元约束关系集的生成 3 基于关系集目标函数的构建 4 目标函数的优化 本文出自CSDN点云侠 爬虫自重 把自己当个人 1 算法过程 Fast Global Registration算法利用四元约束剔除匹配的关系
  • 字符串去掉小数点后取整数

    字符串去掉小数点后取整数 String str 70 2 if str contains int indexOf str indexOf str str substring 0 indexOf int matchRateInt Intege
  • VS 项目中查找中文正则表达式

    u4E00 u9FA5 u4E00 u9FA5 直接在VS中用Ctrl F或者Ctrl Shift F 在 查找内容 中输入 u4E00 u9FA5 u4E00 u9FA5 然后在 查找选项 使用正则表达式 打钩 就能找出所有这些中文字符串

随机推荐

  • ios gzip 压缩字符串

    1 import zlib h 2 libz 1 2 5 tbd 3 NSData gzipDeflate NSString str NSData data str dataUsingEncoding NSUTF8StringEncodin
  • CeiT阅读笔记

    CeiT Incorporating Convolution Designs into Visual Transformer 纯Transformer架构通常需要大量的训练数据和额外的监督才能获得与卷积神经网络CNNs相当的性能 为了克服这
  • Docker容器访问宿主机网络

    业务请求量小的时候 我们会把一些工程部署到同一台机器上 这些工程之间也会相互访问 如果是http的接口 我们最方便的是使用localhost带地本机的ip 不过结合docker容器后出现了问题 docker容器中localhost表示容器的
  • IDEA项目实践——JavaWeb简介以及Servlet编程实战

    系列文章目录 IDEA项目实践 创建Java项目以及创建Maven项目案例 使用数据库连接池创建项目简介 IDEWA项目实践 mybatis的一些基本原理以及案例 IDEA项目实践 动态SQL 关系映射 注解开发 IDEA项目实践 Spri
  • C# 系统应用之清除Cookies、IE临时文件、历史记录

    本文主要是项目 个人电脑使用记录清除软件 系类文章中关于清除浏览器Cookies IE临时文件 最近使用历史记录等内容 该篇文章的基本思想路线是首先了解上网历史记录的Windows中常用文件路径 再通过文件delete方法删除该文件下内容
  • leetcode86 分割链表

    题目 给你一个链表的头节点 head 和一个特定值 x 请你对链表进行分隔 使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前 你应当 保留 两个分区中每个节点的初始相对位置 示例 输入 head 1 4 3 2 5 2 x 3
  • LeetCode-216-组合总和Ⅱ

    题目链接 LeetCode 216 组合总和 解题思路 回溯算法 注意事项注释中有 代码实现 class Solution 和为 n 个数为 k 求的是组合 不要求顺序 递归的深度是 k public List
  • 2019.9.4 key-value stores 和 timestamps

    这一章先是将key value stores 其实这个就是对应的关系型数据库的以schema为基础的存储原理 一般的nosql就是用的这种 特点就是没有什么明显的schema 除了key以外就是一大坨的value 不需要有什么整齐的格式 讲
  • Leetcode刷题笔记:二叉树篇(下)

    1 Leetcode 110 平衡二叉树 难度 递归 迭代 给定一个二叉树 判断它是否是高度平衡的二叉树 本题中 一棵高度平衡二叉树定义为 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1 示例 1 给定二叉树 3 9 20 nu
  • Java类文件结构、Java类加载过程、类加载器(双亲委派模型)、Java对象实例化过程

    1 类文件结构 根据 Java 虚拟机规范 类文件由单个 ClassFile 结构组成 ClassFile u4 magic Class 文件的标志 u2 minor version Class 的小版本号 u2 major version
  • 【银河麒麟V10】【服务器】系统负载分析

    一 cpu负载 1 CPU基本概念 1 1 什么是物理cpu个数 物理cpu个数即主板上实际能够看到的cpu个数 也是cpu插槽数 1 2 什么是cpu核数 cpu核数指的是物理cpu个数 每个物理cpu的核心数 因为每个物理cpu可能包含
  • 深度学习笔记(八):目标检测性能评价指标(mAP、IOU..)

    一 mAP 这里首先介绍几个常见的模型评价术语 现在假设我们的分类目标只有两类 计为正例 positive 和负例 negtive 分别是 1 True positives TP 被正确地划分为正例的个数 即实际为正例且被分类器划分为正例的
  • iptables 规则管理

    参考 http www zsythink net archives 1517 有两台测试机 zk02 192 168 27 152 zk03 192 168 27 153 目录 1 增加规则 2 追加规则 1 增加规则 首先看一条命令 表示
  • C/C++

    文章目录 2 3 C语言内存空间的使用 数组 数组的定义及初始化 数组空间的初始化 空间的第一次赋值 和逐一赋值是一样的 代表空间的限制块 char strcpy 工程禁用 strncpy 推荐 非字符串空间 memcpy 指针与数组 指针
  • Genlovy_Hoo大神的杰作

    转 支持向量机学习笔记 支持向量机学习笔记 呕心沥血整理的SVM学习笔记 完整总结了SVM的思想和整个求解过程 里面有诸多本人在学习过程中的想法 希望对初学者有帮助 pdf下载地址 http download csdn net detail
  • 十大经典排序算法动画与解析

    排序算法是 数据结构与算法 中最基本的算法之一 排序算法可以分为内部排序和外部排序 内部排序是数据记录在内存中进行排序 而外部排序是因排序的数据很大 一次不能容纳全部的排序记录 在排序过程中需要访问外存 常见的内部排序算法有 插入排序 希尔
  • MFC常见问题以及解决方法_MFC下文本编辑框按下回车后窗口退出

    这里主要介绍遇到这种方法的解决方案 解决方法可能有多种 但这里只给出有效的一种 这里不会详细说明出现问题的原因以及为什么这样解决 想了解更多可以百度 写这个主要是防止以后忘记 做个简单的笔记 问题 MFC对话框程序 文本编辑框 Edit C
  • 学透JavaScript 你真的懂 Array 吗?

    前言 科普 JavaScript 揭开 JavaScript 神秘面纱 直击 JavaScript 灵魂 此系列文章适合任何人阅读 本文章内容为 标准化数组 数组与数组容器 ECMAScript 规范中 Array API 讲解 如果你想用
  • 【图像处理算法常用数据集】整理第一弹

    目录 一 通用 二 自己整理的一些数据集 Berkeley Segmentation Dataset BSDS Set14 Urban 100 Kodak dataset CBSD68 DIV2K 一 通用 可以在一些学术搜索引擎上查找关于
  • xctf-supersqli

    题目链接 1 首先打开题目链接是一个提交框 习惯性的先提交1看看返回什么结果 返回了一个数组 再来提交1 看看 根据回显可知这里可能存在sql注入 而且数据库为mysql 又根据报错提示提交1 看看能不能闭合 提交后回显正常 说明是单引号闭