CTFshow之RCE代码命令远程执行第53关到第64关详细讲解。可私信!

手眼通天和大人。               

                                                --真锅和

引言:今天继续ctf之旅!!解决53关到64关

ps:今天是8.22,重新回归开始填坑,先发个废品

一、实验准备

1、ctf网址:ctf.show

2、工具:firefox浏览器、hackbar插件

二、实验过程

(一)、第53关 代码审计和空格绕过

简单代码审计后,发现过滤内容:

; cat flag 空格 0-9数字 * more wget less head sort tail sed cut tac awk strings od curl `(反引号)% x09 x26 < >

同时捋一捋代码逻辑:

1、首先,参数c接收$_GET()传递的值

2、其次,通过preg_match()函数进行过滤

3、最后,先输出参数c接收的值,并且通过system()函数执行接收的值,随后使用echo输出

看到这,很多方法都已经不能再用了,所以我们开始进行总结一下前24关的过滤技巧,看是否存在漏网之鱼参考文章如下

CTFshow之RCE代码命令远程执行绕过思路阶段性总结-CSDN博客

简单思考后,tac、cat、nl等查看文件命令依旧存在,并且未过滤$,可以使用环境变量三剑客进行绕过:$IFS$9,${IFS},$IFS

payload:

?c=nl${IFS}fla?.php

(二)、第54关 代码审计

简单代码审计后,发现过滤内容为在上一关的基础上对文件操作命令关键字flag全部加上了通配符*

有些一筹莫展,不过linux中还有一个命令grep

格式:grep [options] pattern [input_file_names]

样式:grep "example" file.txt

表示在file.txt文件中搜索example关键词的值。同时我们的目的就是读取flag.php文件中含ctfshow的值,而flag.php被全部过滤,所以可以使用八个占位符?进行替代,空格则使用${IFS}替代

所以我们如此构造payload:

?c=grep${IFS}ctfshow${IFS}????????

(三)、第55关 代码审计

(四)、第56关 代码审计

(五)、第57关 代码审计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值