CTFhub RCE

题目复现 eval执行

打开题目

39ec31017d159729.png

蚁剑连接

8c9cda98b4c2ccb3.png

之后找flag

0b2ec128336bb439.png

问题解决

题目复现 ctfhub 文件包含

打开题目环境

12cd32b8c3e2f785.png

1
2
3
4
5
if (!strpos($_GET["file"], "flag")) {
include $_GET["file"];
} else {
echo "Hacker!!!";
}

重点代码我们分析

这里有一个strpos(string,find,start)函数

意思在string字符串中找find的位置,start是查找的开始位置

那么这句代码的意思就是如果file中没有flag字符串就执行下面的include $_GET["file"]

否则就输出Hacker。

shell.txt 内容

46fe0580049aec73.png

是将ctfhub传的参数用php执行

题目的目的也是让我们执行shell木马那么我们就输入

1
http://challenge-23e2c213e6139056.sandbox.ctfhub.com:10800/?file=shell.txt

开始命令执行

fb889fe7a531dc2e.png

现在找flag

252b34662fa558fb.png

出了,解决问题

题目复现 ctfhub php://input

打开题目环境

51ae30cd034b2a3b.png

开始分析题目

代码中说如果file 名中六个字符是 “php://” 就执行后面的include函数

这里其实就应该想到的是php://伪协议

php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码。

而执行php://input伪协议条件是allow_url_include是On
5d5066f46168c435.png

那么我们就开始做题

直接构造file的值为php://input

post参数为

因为php://input是执行后面的PHP命令所以要写成php代码形式

所以我们可以抓包改

2537137ba9b6c420.png

命令执行

找到flag

670a7df87115bcd0.png

ok,问题解决