目录
一、信息收集
1.启动靶机,获得目标靶机IP10.10.11.221
2.对目标靶机进行端口扫描,发现22和80端口
3.浏览器访问80端口http服务,发现目标ip被域名重定向了,修改/etc/hosts
文件,增加以下内容
4.再次访问2million.htb
5.点击Join HTB
发现登陆页面/invite
6.查看页面源码,发现了与邀请码有关的js文件inviteapi.min.js
7.查看inviteapi.min.js
代码,发现一个makeInviteCode
函数,里面的内容是如何获取验证码
makeInviteCode|how|to|generate|verify'.split('|'),0,{}))
8.但是上面的代码被混淆了,利用GPT解混淆后得到完整代码
第二个函数提示我们向/api/v1/invite/how/to/generate
发送POST请求
function verifyInviteCode(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);
}
});
}
function makeInviteCode() {
$.ajax({
type: "POST",
dataType: "json",
url: '/api/v1/invite/how/to/generate',
success: function(response) {
console.log(response);
},
error: function(response) {
console.log(response);
}
});
}
9.尝试向目标url发送请求curl -sX POST http://2million.htb/api/v1/invite/how/to/generate | jq
,输出的内容是JSON格式,包含了一些被加密的数据Va beqre gb trarengr gur vaivgr pbqr, znxr n CBFG erdhrfg gb /ncv/i1/vaivgr/trarengr
,提示加密类型为ROT13
,是一种凯撒密码
10.通过rot13
网站CTF在线工具-在线Rot13密码加密|在线Rot13密码解密|Rot13密码算法|Rot13 Cipher
进行解密,得到in order to generate the invite code, make a post request to /api/v1/invite/generate
11. 这条消息提到,我们可以通过向 /api/v1/invite/generate
发送一个POST请求来生成邀请码。
按照之前的说明来进行操作curl -sX POST http://2million.htb/api/v1/invite/generate | jq
输出TTJKMTYtOU9ISkYtMVFNUE8tWE40TVM=
,使用了Base64编码
12.利用在线工具对其进行解码得到M2J16-9OHJF-1QMPO-XN4MS
,貌似是一个有效的邀请码
13.回到http://2million.htb/invite
页面,填写邀请码M2J16-9OHJF-1QMPO-XN4MS
成功进入注册界面
14.按照要求注册一个账号,然后进行登录
登录成功,进入/home
页面