发现靶机

  1. arp-scan -l

备战 OSCP_PwnLab_init - 图1
备战 OSCP_PwnLab_init - 图2

信息收集

端口信息
备战 OSCP_PwnLab_init - 图3
3306没爆破出来,39968不知道是什么鬼
只能搞80了
备战 OSCP_PwnLab_init - 图4
爆破一下登录
备战 OSCP_PwnLab_init - 图5
扫了一下目录,有config.php,index.php,login.php,upload.php和一些目录
备战 OSCP_PwnLab_init - 图6
除了images里面有张图片,其他都要登录才行
备战 OSCP_PwnLab_init - 图7
看了下这张图片,没有发现任何线索
备战 OSCP_PwnLab_init - 图8
burp爆破登录也没结果
备战 OSCP_PwnLab_init - 图9
http://172.21.137.244/config.php 应该是有内容,但是不显示出来
备战 OSCP_PwnLab_init - 图10
都看了一圈,好像实在没地方下手了
又看回了这个页面,发现url里好像可以搞搞
备战 OSCP_PwnLab_init - 图11
存在LFI漏洞
备战 OSCP_PwnLab_init - 图12
看到是连接mysql
尝试读一下之前的config.php,wdnmd,难怪爆不出来
备战 OSCP_PwnLab_init - 图13
upload.php文件

<?php
session_start();
if (!isset($_SESSION['user'])) { die('You must be log in.'); }
?>
<html>
    <body>
        <form action='' method='post' enctype='multipart/form-data'>
            <input type='file' name='file' id='file' />
            <input type='submit' name='submit' value='Upload'/>
        </form>
    </body>
</html>
<?php 
if(isset($_POST['submit'])) {
    if ($_FILES['file']['error'] <= 0) {
        $filename  = $_FILES['file']['name'];
        $filetype  = $_FILES['file']['type'];
        $uploaddir = 'upload/';
        $file_ext  = strrchr($filename, '.');
        $imageinfo = getimagesize($_FILES['file']['tmp_name']);
        $whitelist = array(".jpg",".jpeg",".gif",".png"); 
        if (!(in_array($file_ext, $whitelist))) {
            die('Not allowed extension, please upload images only.');
        }
        if(strpos($filetype,'image') === false) {
            die('Error 001');
        }
        if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/jpg'&& $imageinfo['mime'] != 'image/png') {
            die('Error 002');
        }
        if(substr_count($filetype, '/')>1){
            die('Error 003');
        }
        $uploadfile = $uploaddir . md5(basename($_FILES['file']['name'])).$file_ext;
        if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
            echo "<img src=\"".$uploadfile."\"><br />";
        } else {
            die('Error 4');
        }
    }
}
?>

index.php文件,有意思的是该文件写了个包含

<?php
//Multilingual. Not implemented yet.
//setcookie("lang","en.lang.php");
if (isset($_COOKIE['lang']))
{
    include("lang/".$_COOKIE['lang']);
}
// Not implemented yet.
?>
<html>
<head>
<title>PwnLab Intranet Image Hosting</title>
</head>
<body>
<center>
<img src="images/pwnlab.png"><br />
[ <a href="/">Home</a> ] [ <a href="?page=login">Login</a> ] [ <a href="?page=upload">Upload</a> ]
<hr/><br/>
<?php
    if (isset($_GET['page']))
    {
        include($_GET['page'].".php");
    }
    else
    {
        echo "Use this server to upload and share image files inside the intranet";
    }
?>
</center>
</body>
</html>

靶机开放了3306,连数据库看看
备战 OSCP_PwnLab_init - 图14
就这一个表,这密码也是挺难爆破的

账号 密码
kent JWzXuBJJNy
mike SIfdsTEn6I
kane iSv5Ym2GRo

使用上面的面登录进去,发现还是要靠上传和index.php文件包含来getshell
备战 OSCP_PwnLab_init - 图15
让我想起了以前碰到过的一种情况
备战 OSCP_PwnLab_init - 图16
改好文件之后上传
备战 OSCP_PwnLab_init - 图17
开启监听并且尝试在index.php中包含
备战 OSCP_PwnLab_init - 图18
成功反弹到了shell,但是权限太低了
备战 OSCP_PwnLab_init - 图19
备战 OSCP_PwnLab_init - 图20
/etc/passwd和home目录信息,看到存在跟上面一样的3个用户,应该密码也是一样的
备战 OSCP_PwnLab_init - 图21
这两用户没啥东西
备战 OSCP_PwnLab_init - 图22
kane用户下还有个msgmike,是个elf文件
备战 OSCP_PwnLab_init - 图23
mike权限的msgmike?
备战 OSCP_PwnLab_init - 图24
显示没有cat
备战 OSCP_PwnLab_init - 图25
搞了好久,终于进到mike了()
备战 OSCP_PwnLab_init - 图26
进到mike目录发现msg2root,又来?
备战 OSCP_PwnLab_init - 图27
试了半天,发现文件里写了个好东西,直接将输入写到/root/messages.txt里
备战 OSCP_PwnLab_init - 图28
这里就直接命令注入了
备战 OSCP_PwnLab_init - 图29
flag
备战 OSCP_PwnLab_init - 图30