[HackTheBox] Waldo - WriteUp

扫端口,有个奇怪的8888端口。。。 image 先从web入手 image 试试几个功能,抓包看看 image 发现这几个功能 尝试读源码 image 好难受。。。丢进python print一下 发现

<?php
if($_SERVER['REQUEST_METHOD'] === "POST"){
        $fileContent['file'] = false;
        header('Content-Type: application\/json');
        if(isset($_POST['file'])){
                header('Content-Type: application\/json');
                $_POST['file'] = str_replace( array("..\/", "..\""), "", $_POST['file']);
                if(strpos($_POST['file'], "user.txt") === false){
                        $file = fopen("\/var\/www\/html\/" . $_POST['file'], "r");
                        $fileContent['file'] = fread($file,filesize($_POST['file']));
                        fclose();
                }
        }
        echo json_encode($fileContent);
}

发现只替换了一次../ dirRead.php差不多 通过双写../绕过,翻文件 读到ssh私钥 image ssh登陆 image 得到user.txt

收集一下信息 image woc我好像在docker里 注意到之前的8888端口 看一下本机的 image image image 注意到在外面连22和在docker里连22不是一个ssh docker里面的ssh监听的是8888 image 推测网络结构是这样的 image 我们直接从docker里面连接主机的22端口 就用之前的公钥,用户换成monitor image image 是个受限的rbash 发现ed可以用 拿gtfobins搜搜 即可绕过rbash image 顺手修一下PATH 把kali的粘贴进去就行 然后开始提权 4.9的内核。。。不行 suid。。。没有 看到了这个东西->传送门 image 其实就是拆分root权限,只对应用程序赋一部分root的能力 image 发现tac可以以root权限读取文件 读flag即可 image