CTFHub | 综合过滤练习

0x00 前言

        CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。

        

        

0x01 题目描述

综合过滤练习:

        同时过滤了前面几个小节的内容,如何打出漂亮的组合拳呢?

网页显示内容

        

        

0x02 解题过程

检查网页源代码发现这次网页对 | 、 && 、 || 、 \ 、 / 、; ,都进行了过滤处理。在之前的文章有对一些常见的 URL 绕过字符使用方法做一个简单的总结。这里先输入本地 IP 进行 ping 命令测试,发现可以正常回显。

        

根据网页源代码的过滤内容排除掉可测试的字符,还有换行符 %0a 和回车符 %0d 可以进行测试。

测试名称字符URL编码
可测试换行符%0a%0a
可测试回车符%0d%0d
可测试空格符%20%20
已过滤管道符|%7c
已过滤逻辑与操作符&&%26%26
已过滤逻辑或操作符||%7c%7c
可测试小于号<%3c
可测试大于号>%3e
可测试双引号"%22
可测试单引号

'

%27
已过滤反斜杠\%5c
已过滤正斜杠/%2f
已过滤路径分隔符;%3b
已排除查询符号?%3f

        

测试发现换行符 %0a 可以绕过网页过滤,具体方法是通过 HTTP 响应拆分攻击来插入恶意代码。

http://challenge-11d839953a631e6b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0als

        

刚刚用 ls 命令查看到了一个可疑文件夹 flag_is_here 。一开始直接用 ls flag_is_here 查看 flag 文件中的内容。发现回显为空。排查了一会发现网页源代码中还过滤了几个字符,分别是 cat 、 flag 、 ctfhub 。这里尝试使用 %09 ( URL 编码中 表示 Tab 制表符)加上通配符进行绕过,具体原理将在后文做出详细的解释。

 注意:在 Linux 中使用 Tab 键,可以实现命令补全、文件和目录名补全等。 

http://challenge-11d839953a631e6b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0als%09*here

        

成功使用通配符绕过后发现一个 flag.php 的文件。因为 cat 命令被过滤了,但是单、双引号是没有被过滤的,使用单引号绕过 cat 过滤。方法: 'c'a't ,在 URL 中为: %27c%27a%27t

http://challenge-11d839953a631e6b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0acd%09*here%0ac%27a%27t%09*_24761388917358.php

        

观察发现与之前的几个题目一样,有一个空回显,检查网页源代码发现此题 flag 。

        

        

0x03 关于通配符的使用

1.关于 * 通配符以及它的作用

        在 Linux 命令行中使用通配符时, * (星号)作为通配符,表示代替任意字符的任意次数。它可以在搜索和处理文本时更加便捷。使用 * 通配符,可以匹配任意长度的字符序列,从而实现模糊搜索和批量操作。

        

2.关于 * 通配符的使用示例

列出所有以 .sh 结尾的文件

ls *.sh

列出所有以字符 flag 开头的文件

ls flag*

列出所有以字符 here 结尾的文件

ls *here

列出所有以字母 f 开头、以字母 e 结尾的文件

ls f*e

复制所有以 .py 结尾的文件到另一个目录

cp *.py /usr/src

       注意: 关于 * 通配符的使用,可以融会贯通,灵活运用。 

        

3.关于 Linux 中常见的通配字符

通配符使用说明
 * 星号表示匹配任意字符的任意次数。例,*.sh可以匹配所有以.sh后缀结尾的文件。
 ? 问号表示匹配任意单个字符。例,ctf?.sh可以匹配"ctf1.sh"、"ctf2.sh"......
 {} 花括号表示匹配指定一组自选的字符。例,{ctf1,ctf2}.sh可以匹配"ctf1.sh"和"ctf2.sh"。
 [!] 取反方括号表示匹配不在方括号内的任意一个字符。例,ctf[!123].txt可以匹配除了"ctf1.sh"、"ctf2.sh"和"ctf3.sh"以外的任何文件。
 [] 方括号表示匹配方括号内的任意一个字符。例,ctf[123].sh可以匹配"ctf1.sh"、"ctf2.sh"或"ctf3.sh"。

 注意:在此题中还可以使用 {} 花括号通配符以及其他通配符进行搭配使用。 

        

        

0x04 总结

文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尼泊罗河伯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值