第一届贵州理工校赛--Directory Explorer

靶场地址:天狩CTF竞赛平台

来吧,开搞,进入靶场

题目提示:目录是怎么获取的?你知道Linux查看文件的命令有哪些吗?

ok,题目主要通过命令读取flag,而且页面提示使用了安全的过滤机制,先看看过滤了哪些

爆破一下

 加一些字典,题目提示文件查看的命令,那么添加,cat,tac,less,more,head,tail,nl,<,>,{,},',$,空格,`,\,",先试试这些

嗯,都被过滤了,不要看长度不一样,不一样是因为测试的字符长度不同,上面的都是被过滤了

其中一个没有过滤,也就是双引号没有,那么我们可以用双引号绕过,比如ca""t等同于cat

那么试一下

忘记试一下flag,flag也过滤了,但是问题不大,可以用fl""ag绕过

但是忘记其中最重要的问题,空格被过滤,因为payload

payload:ca""t /fl""ag 

是需要空格的,但是已知空格绕过的几种办法:

1、<>,进行绕过,但是<>被过滤了

2、${IFS},但是$和{,}被过滤了,也不行

3、{cat,flag},但是{}被过滤,不行

既然无法用空格,那就可以用其他的,比如tab,所以我们可以构造payload

payload:&    strings    /fla[g]

首先我要解释一下这个payload,

1、为什么要用&字符?

我们知道当我们输入/var/../fl""ag,会直接显示出flag这个文件夹,

这在Linux中不就是表示ls命令,所以我们需要绕过ls命令,所以使用管道符&即可,两边都会执行。

2、不是说空格过滤了吗,为什么还有空格?

payload中并不是空格,而是tab,在文本中,Tab通常显示为一个较宽的空白(类似多个空格),但它是一个单一字符。

所以可以使用多种payload:

payload:&    ca""t    /fl""ag

payload: &    ta""c    /fl""ag

那么最重要的问题来了,怎么打出这个tab呢,因为这是在浏览器中,不能直接使用tab键,那么我们可以在记事本或者编译器中使用,然后复制粘贴即可,如下所示

ok,flag出来了

总结一下:

这题主要的难点在于绕过:

1、首先需要绕过ls命令;

2、然后需要绕过空格,这里tab的使用很关键;

还有tab键用编码是绕不过的,比如使用%09是不行,需要使用tab键在文本输出然后复制即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值