一天一道CTF 第四天(sql绕过||)

本文通过两个具体的CTF题目实例,详细介绍了如何利用网页源代码中的线索进行攻击,并探讨了SQL注入的一种特殊绕过方法,即使用不同的SQL模式来获取目标数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[极客大挑战 2019]Havefun
点进去以后是一只猫猫,鼠标点上去还有交互,给劳累的程序员带去了心灵上的慰藉 我能点一上午
在这里插入图片描述
右键查看网页源代码,前面都是幌子,真正有用的代码只有

<!--
        $cat=$_GET['cat'];
        echo $cat;
        if($cat=='dog'){
            echo 'Syc{cat_cat_cat_cat}';
        }
        -->

提示我们要用Get方式提交cat的值,那就试着在URL后面添加/cat=dog,居然就成功了。要是所有一分题都这么简单该多好

那既然这么轻松今天就再做一道
[SUCTF 2019]EasySQL
还是一道SQL注入题,前期瞎试总共会返回三种结果:Array ( [0] => 1 ),Nonono和什么都不显示。Nonono应该是报错了或者被过滤了,但是我们也看不到错误信息。
就和之前的题一样先尝试堆叠注入1;show databases;
在这里插入图片描述
1;show tables;
在这里插入图片描述
但是好多关键词都被过滤了,菜鸡还是只能网上找答案

关键代码是select $post['query']||flag from Flag(咱也不知道哪里找到的),那就是要绕过||

网上的payload有两种
1;set sql_mode=PIPES_AS_CONCAT;select 1
PIPES_AS_CONCAT 将 || 视为字符串的连接操作符而非 “或” 运算符,拼接起来就是select 1;set sql_mode=PIPES_AS_CONCAT;select 1||flag from Flag

*,1
拼接起来就是select *,1||flag from Flag,和第一种的原理差不多是类似的

参考:https://www.e-learn.cn/content/qita/2719846

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值