Vulnhub靶机pwnlab_init通关笔记
前言
下载地址:https://www.vulnhub.com/entry/pwnlab-init,158/

开始
nmap扫描

80 111 3306端口
找到一个文件包含

包含config.php得到root账号密码

root:H4u%QJ_H99

登陆上了
查看
upload.php源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| 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');
}
}
}
|
上传一个反弹sell的gif上去

index.php源码的时候看到还能在cookie包含一个文件 可以getshell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
//Multilingual. Not implemented yet.
//setcookie("lang","en.lang.php");
if (isset($_COOKIE['lang']))
{
include("lang/".$_COOKIE['lang']);
}
// Not implemented yet.
|


成功
先去其他的用户那里看一下
kane的目录发现一个msgmike 是个二进制文件 会执行cat /home/mike/msg.txt
并且是以Mike的权限


可以修改环境变量
首先 将 “/bin/bash” 写入/tmp/cat里
然后修改环境变量export PATH=/tmp:$PATH
这样运行cat …的时候其实运行的是我们写在/tmp/cat的内容

成功su到了mike上面

mike的文件夹上面有一个msg2root


测试了一下这个程序的功能 以root权限运行echo 那就好办了
直接写一个/etc/passwd就可以了
perl -le 'print crypt("123456","SALT")'
得到加盐的密码
SAsvGnJ7itXgk
"r0ckyzzz:SAsvGnJ7itXgk:0:0::/root:/bin/bash">>/etc/passwd

拿到flag
