[SUCTF 2019]EasySQL1 及sql_mode
(我被虐到了,呜呜呜)
当 sql_mode 设置了 PIPES_AS_CONCAT 时,|| 就是字符串连接符,相当于CONCAT() 函数
当 sql_mode 没有设置 PIPES_AS_CONCAT 时 (默认没有设置),|| 就是逻辑或,相当于OR函数
听说有大佬就三个字母就解决了,我枯了,payload:*,1,听说是直接猜出了源码select $_GET['query'] || flag from flag
这种方式拼接出来那就是select *,1||flag from Flag
听说是因为1和任意字符串或数字使用 ||连接 的值都为1
当然还有一种解法,那是官方的解法:
1;set sql_mode=PIPES_AS_CONCAT;select 1
拼接完之后就是select 1;set sql_mode=PIPES_AS_CONCAT;select 1||flag from Flag
|| 相当于是将 select 1 和 select flag from flag 的结果拼在一起
sql_mode : 它定义了 MySQL 应支持的 SQL 语法,以及应该在数据上执行何种确认检查,其中的PIPES_AS_CONCAT将 ||视为字符串的连接操作符而非 “或” 运算符
关于MYSQL的sql_mode解析与设置
ONLY_ FULL_ GROUP_B:如果在SELECT中的列,没有在GROUP BY中出现,那么将 认为这个SQL是不合法的,因为列不在GROUP BY从句中,因为这个设置的存在,我们对于group by的用法只能是类似于select * from users group by id ;并且只能展示group by的字段,要是带有其他字段便会报错。
对这种状态进行修改:
set sql_mode=(select replace (@@sql_mode,'ONLY_FULL_GROUP_BY','')); 可以使用该语句来将空格替换掉only_full_group_by
STRICTTRANSTABLES:在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制。
NOZERODATE:在严格模式,不要将 '0000-00-00'做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告。
ERRORFORDIVISIONBYZERO:在严格模式,在INSERT或UPDATE过程中,如果被零除(或MOD(X,0)),则产生错误(否则为警告)。如果未给出该模式,被零除时MySQL返回NULL。如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作结果为NULL。
NOAUTOCREATE_USER:防止GRANT自动创建新用户,除非还指定了密码。
ANSIQUOTES:启用ANSIQUOTES后,不能用双引号来引用字符串,因为它被解释为识别符。
PIPESASCONCAT:将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样是,也和字符串的拼接函数Concat想类似。
太晚了,不搞了qaq,感觉学海无涯啊。
[SUCTF 2019]EasySQL1 及sql_mode的更多相关文章
- 刷题记录:[SUCTF 2019]EasySQL
目录 刷题记录:[SUCTF 2019]EasySQL 一.涉及知识点 1.堆叠注入 2.set sql_mode=PIPES_AS_CONCAT;将||视为字符串的连接操作符而非或运算符 3.没有过 ...
- 刷题记录:[SUCTF 2019]EasyWeb(EasyPHP)
目录 刷题记录:[SUCTF 2019]EasyWeb(EasyPHP) 一.涉及知识点 1.无数字字母shell 2.利用.htaccess上传文件 3.绕过open_basedir/disable ...
- 刷题记录:[SUCTF 2019]Pythonginx
目录 刷题记录:[SUCTF 2019]Pythonginx 一.涉及知识点 1. CVE-2019-9636:urlsplit不处理NFKC标准化 2.Nginx重要文件位置 二.解题方法 刷题记录 ...
- 刷题记录:[SUCTF 2019]CheckIn
目录 刷题记录:[SUCTF 2019]CheckIn 一.涉及知识点 1.利用.user.ini上传\隐藏后门 2.绕过exif_imagetype()的奇技淫巧 二.解题方法 刷题记录:[SUCT ...
- SUCTF 2019 Upload labs 2 踩坑记录
SUCTF 2019 Upload labs 2 踩坑记录 题目地址 : https://github.com/team-su/SUCTF-2019/tree/master/Web/Upload La ...
- [SUCTF 2019]EasySQL(堆叠注入配合sql_mode)
考点:1.堆叠注入 2.set sql_mode=PIPES_AS_CONCAT;将||视为字符串的连接操作符而非或运算符 意外:注入* 复现: 1;set sql_mode=PIPES_AS_CON ...
- BUUCTF | [SUCTF 2019]EasySQL (堆叠注入)
fuzz ing了一下,发现了一堆过滤: 同时发现了注入点,这个应该是var_dump()函数 ===============第二天的分割线 好吧我放弃了,找了一下wp 正确解:select 1;se ...
- BUUCTF [SUCTF 2019]EasySQL
首先打开网址 发现有三种显示方法 还有一个没有输出 可以堆叠注入 1;show databases; 1;show tables; 可以看到有一个Flag表 测试发现from flag都被过滤不能直接 ...
- [SUCTF 2019]Pythonginx
贴出源码 @app.route('/getUrl', methods=['GET', 'POST']) def getUrl(): url = request.args.get("url&q ...
随机推荐
- Combining STDP and Reward-Modulated STDP in Deep Convolutional Spiking Neural Networks for Digit Recognition
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 灵长类视觉系统激发了深度人工神经网络的发展,使计算机视觉领域发生了革命性的变化.然而,这些网络的能量效率比它们的生物学对 ...
- 微信小程序发送订阅消息(之前是模板消息)
之前的模板消息已经废弃,现在改为订阅消息,订阅消息发布前,需要用户确认后才能接收订阅消息. 小程序端 index.wxml <button bindtap="send"> ...
- C++入门记-构造函数和析构函数
前文回顾 本文档环境基于Vscode + GCC + CodeRunner 关于C++的环境搭建请参考下面链接: C++入门记-大纲 由于本人具有C#开发经验,部分相同的知识就不再赘述了.只列一下需要 ...
- python os库的使用方法 + 自动化安装第三方库脚本
一.os库基本介绍 os库提供通用的.基本的操作系统交互功能,包括windows.Mac os.linux os库是python标准库,包含几百个函数 常用路径操作.进程管理.环境参数等几类 路径操作 ...
- Python开发的入门教程(八)-迭代
介绍 本文主要介绍Python中迭代的基本知识和使用 什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Ite ...
- Intermediate English Book 1
List x1.0 x1.5 Lesson 1 Reading Lesson 1 Details Lesson 2 Dialogue Lesson 2 Details Lesson 3 Reading ...
- 14_Python语法示例(面向对象)
1.自己写一个Student类,此类的对象有属性name, age, score, 用来保存学生的姓名,年龄,成绩 # 1)写一个函数input_student读入n个学生的信息,用对象来存储这些信息 ...
- hacker101 CTF 学习记录(二)
前言 无 Easy-Postbook 拿到功能有点多,先扫一遍目录 .Ds_Store没有啥东西,page是个静态页面 随便注册个账号,登录后已经有2篇文章,第一篇文章的id是1 自己创建文章,将ur ...
- odoo10同一模型的不同视图不同群组权限控制
先描述下需求: 一个模型定义两个calendar视图,其中A视图G1群组可以CRUD操作,但是不显示特殊字段spec_field,对于B视图G1群组只能查看,G2群组只能修改其中的特殊字段spec_f ...
- [04] C# Alloc Free编程之实践
C# Alloc Free编程之实践 上一篇说了Alloc Free编程的基本理论. 这篇文章就说怎么具体做实践. 常识 之所以说是常识, 那是因为我们在学任何一门语言的时候, 都能在各种书上看到各种 ...