TwoMillion
Test1
先namp扫描一下,发现有两个TCP端口22和80开放


这里80端口无法追踪到重定向,这里就需要用到DNS域名解析,在kali的/etc/hosts文件中添加ip和对应的网址

1 | |

这样之后再重新去访问就可以访问到了

Task2
找到有一个join界面,查看源码,搜索js,又看到题目提示是invite就找到了
1 | |


Task3
点击进入inviteapi.min.js

可以利用工具进行反混淆 de4js |JavaScript 反混淆器和解包器,点这个自动解码就可以看到两个函数

1 | |

Test4
通过上面得到的两个函数,发现其中有一个好像可以得到邀请码,curl一下看看,得到了邀请码的base64编码
1 | |
curl -X [传参方式] [url]用于指定传参方法的参数

解码结果
1 | |

Test5
这里进行目录扫描,发现有注册和登录界面

先去注册一下,并且需要刚刚解码的邀请码,但是这里好像不能直接复制上去,输入也不行,就进行抓包吧


注册之后就可以登录了

登录进去后在这个access下找到了Connection Pack,点击后会下载一个文件,直接右击复制一下下载路径
1 | |

Test6
因为上面的路径是api/v1,查看是否存在其他接口

在admin下的api有三个

Test7
在bp访问api/v1/admin/settings/update,需要修改请求方法,根据报错补全信息,这里要注意的是Cookie值需要在页面中的Network中拿到

发现有json响应可以修改权限


这里发现依旧报错提示,没有is_admin参数,所以添加这个参数,然后又报错了没有这个email,所以就把email换成注册的那个email

ok有正常回显了,可以验证一下,访问/api/v1/admin/auth,发现回显的是true,提权成功

emmm就是一开始我打的是引导模式,有很多小问题,有点嫌慢就改成闯关模式了(就是只要拿到flag的那种,所以后面的Test就没做,想做的可以参考一下网上的博客https://buutt3rf1y.github.io/2025/03/19/HTB-TwoMillion/
UserFlag
然后再看/api/v1/admin/vpn/generate路径,依旧修改传参方式
这里修改了Content/Type为json格式,然后传一个username上去,发现返回了很多东西

并且发现不管传什么都会有回显

利用管道分隔符执行命令进行rce,发现成功了
1 | |

1 | |

这里尝试了很多rce的命令,各种读文件,发现没有回显,看了学长的博客发现直接反弹shell了
1 | |
对其进行base64编码
1 | |

ok拿到shell了
利用find命令找user.txt

尝试读取,但是要admin权限才能读到
查看网址根目录,发现有env文件

在里面看到了admin的密码

提权
1 | |

ok拿到第一个flag

RootFlag
接下来就是继续提权为root,可以继续查找和admin相关的文件
1 | |

看到有一个mail目录下的文件,感觉有用,可以看一下

1 | |
是一份类似于邮件的,说了一堆英文,其中可以注意到有提到CVE,OverlayFS / FUSE,可以找到提升权限的漏洞
EXP:https://github.com/xkaneiki/CVE-2023-0386
下载后复制到kali
在kali上起一个服务
1 | |

再在服务器上下载exp
1 | |

这里显示权限不足,那就尝试放到/tmp目录下

然后解压并进入目录,然后参考github的教程做
1 | |

1 | |
在另一个终端输入
1 | |

现在是root身份,然后就可以读取/root/root.txt

拿到了rootflag
小结
这也算是打的第三个靶机了,感觉渗透的话,首先要做的肯定就是nmap扫一下,看看哪些端口开着,也可以扫一下看看是否存在其他主机,或者用fscan扫描,之后好像就没有什么固定的做法了,就是一些基本的信息收集(比如扫目录,看源码之类的)和提权,基础的话就是要熟悉那些基本的扫描工具还有提权工具吧,还有就是要会一些基本的命令(比如php -S,wget,chmod这些)还有反弹shell,感觉学的还不是很深,所以只能先浅显的总结一下