[SUCTF2019]EasySQL

这个连闭合都测试不出来,就有点无从下手了。

额,随手输了一个1;show tables;出来了表名。一通操作之后,点开了别人的wp,学习了一波。

然后知道了题目中的查询语句是怎么样的了,

sql="select".post['query']."||flag form Flag"

并且知道了,这个是拼接出来的语句,此处||的作用相当于是or;

解法一:

额,既然知道了闭合方式,尝试构造

首先,观察,我们可以传递一个*进去,查询所有数据,如果有限制,随后在做修改;其次,我们需要将||flag给“吃掉”

于是构造出payload:qurey=*,1

即可获得flag:

*,1说明

  • *,1作用

    *代表查询搜有数据;1是跟||flag做判断,进行了运算。由于1这一列是“存在”的(是临时增加的),得到1;

    所以语句select *,1||flag from Flag成了select *,1 from Flag

  • *,*行不行

    不行,且不知道原因

  • 数字不能出现在*前,即1,*是错误的

    额,知道原因,说不清楚;意思就是说,临时增加的列,不能够对原来的表造成任何影响。如果临时增加的列在了*前面那么原来的列的序号就会发生改变。如图:

  • ,12,1 在后面随便跟数字也行

解法二:

playload:query=1;set sql_mode=pipes_as_concat;select 1

说明:

PIPES_AS_CONCAT:将“||”视为字符串的连接符号,而不是操作符号,这个和Oracle数据库是一样的,也和字符串拼接函数Concat相似。

注意:这里的payload不能拆分,单独执行

因为,select 99和两个ARRAY,足以说明已经将||视为连接符号

反思:

哇,由于以前做的题类型,都是对限制条件进行注入和绕过,还没有做过注入,所以,想也想不到是构造查询的列。

再加上,对于我来说,第一步,必然是找闭合方式,如果闭合方式找不到,也就没法做题了(只是对我来说),别说盲注什么的了,就连下一步的勇气都没了。

参考:https://blog.csdn.net/weixin_44866139/article/details/105857487

BUUCTF-[SUCTF2019]EasySQL的更多相关文章

  1. buuctf刷题之旅—web—EasySQL

    打开环境,发现依旧是sql注入 GitHub上有源码(https://github.com/team-su/SUCTF-2019/tree/master/Web/easy_sql) index.php ...

  2. [BUUCTF]REVERSE——[SUCTF2019]SignIn

    [SUCTF2019]SignIn 附件 步骤: 无壳,64位ida载入 程序调用了 __gmpz_init_set_str 函数,这是一个 GNU 高精度算法库,在RSA加密中见过几次,加上6553 ...

  3. BUUCTF | [SUCTF 2019]EasySQL (堆叠注入)

    fuzz ing了一下,发现了一堆过滤: 同时发现了注入点,这个应该是var_dump()函数 ===============第二天的分割线 好吧我放弃了,找了一下wp 正确解:select 1;se ...

  4. BUUCTF [SUCTF 2019]EasySQL

    首先打开网址 发现有三种显示方法 还有一个没有输出 可以堆叠注入 1;show databases; 1;show tables; 可以看到有一个Flag表 测试发现from flag都被过滤不能直接 ...

  5. buuctf Easysql 小记

    堆叠注入 利用原理: 补充系统变量@@sql_modesql_mode:是一组mysql支持的基本语法及校验规则PIPES_AS_CONCAT:将“||”视为字符串的连接操作符而非或运算符,这和Ora ...

  6. BUUCTF知识记录

    [强网杯 2019]随便注 先尝试普通的注入 发现注入成功了,接下来走流程的时候碰到了问题 发现过滤了select和where这个两个最重要的查询语句,不过其他的过滤很奇怪,为什么要过滤update, ...

  7. BUUCTF[归纳]sql注入相关题目

    这是我自己对于sql注入的部分ctf题型的归纳,均来自buuctf的平台环境. [0CTF 2016]piapiapia 我尝试了几种payload,发现有两种情况. 第一种:Invalid user ...

  8. never下的easysql

    什么是EasySql 在我们早期写的代码中,想实现组装灵活的sql语句与参数,我们可以去翻阅早期自己写的代码 var @sb = new StringBuilder(); sb.Append(&quo ...

  9. 刷题记录:[BUUCTF 2018]Online Tool

    目录 刷题记录:[BUUCTF 2018]Online Tool 一.知识点 1.escapeshellarg和escapeshellcmd使用不当导致rce 刷题记录:[BUUCTF 2018]On ...

  10. 刷题记录:[SUCTF 2019]EasySQL

    目录 刷题记录:[SUCTF 2019]EasySQL 一.涉及知识点 1.堆叠注入 2.set sql_mode=PIPES_AS_CONCAT;将||视为字符串的连接操作符而非或运算符 3.没有过 ...

随机推荐

  1. 关于解决 inittramfs unpacking failed:Decoding failed 报错

    解决办法 vi /etc/initramfs-tools/initramfs.conf 更改COMPRESS=lz4以COMPRESS=gzip 保存更改 sudo update-initramfs ...

  2. Kubernetes-基于容器云构建devops平台

    1.基于kubernetes devops的整体方案 本文以Kubernetes为基础,为基于java语言研发团队提供一套完整的devops解决方案.在此方案中,开发人员基于eclipse集成开发环境 ...

  3. python爬虫爬取网易云音乐(超详细教程,附源码)

    一. 前言 先说结论,目前无法下载无损音乐,也无法下载vip音乐. 此代码模拟web网页js加密的过程,向api接口发送参数并获取数据,仅供参考学习,如果需要下载网易云音乐,不如直接在客户端下载,客户 ...

  4. java调用python脚本 并传参(根据配置文件获取python文件地址)

    方式一: Java代码 package com.mybatis.plus.utils; import cn.hutool.core.lang.Console; import java.io.Buffe ...

  5. MassTransit 知多少 | 基于MassTransit Courier实现Saga 编排式分布式事务

    Saga 模式 Saga 最初出现在1987年Hector Garcaa-Molrna & Kenneth Salem发表的一篇名为<Sagas>的论文里.其核心思想是将长事务拆分 ...

  6. Java-递归查询法

    递归查询用户所在团队的老大的用户id(一个团队中,只有一个老大,也就是父级id="-1") 如下:是表结构 first_agent_id----用户的上级id user_id--- ...

  7. Ajax---EventLoop事件循环

    前言       JavaScript 是一门单线程执行的脚本语言.也就是说,同一时间只能做一件事情. JavaScript要运行在宿主环境中(浏览器,nodejs)下.浏览器内部有执行js代码的引擎 ...

  8. [深度学习] ncnn编译使用

    文章目录 工程 ncnn工程编译使用(cpu) ncnn工程编译使用(vulkan) 参考 工程 ncnn工程编译使用(cpu) 在linux下建立如CMakeLists文件即可编译生成ncnn工程 ...

  9. S2-017 CVE-2013-2248

    漏洞名称 Apache Struts 多个开放重定向漏洞 (CVE-2013-2248) s2-017 利用条件 Struts 2.0.0 - Struts 2.3.15 漏洞原理 通过操作前缀为&q ...

  10. 数据结构与算法 -> 大顶堆与小顶堆

    一.大顶堆 大顶堆是一种数据结构,它是一颗完全二叉树,并且满足以下性质: 每个节点的值都大于或等于它的子节点的值 因此,大顶堆的根节点(也称为堆顶)总是最大的元素 二.小顶堆 小顶堆也是一种数据结构, ...