靶场地址:天狩CTF竞赛平台
进入靶场--CatBank
发现登录、注册界面,先随便注册一个账号
分析一下此页面,可以转账,可以乞讨,还有要100万的信息,那么可不可以注册两个账户,一个给另一个转账呢,再注册一个账号,看看用户列表有没有刚注册的账户
ok,可以看到第一个注册的账户,那么进行转账
ok,转账成功,再登录第一个账号,然后给第二个用户转账100万以上,flag出来
此题的考点在哪,嗯没有想到,这题应该是道签到题,多尝试一下就能够出flag。
进入靶场--
一个输入URL界面,先进行目录爆破,再看看是什么类型的题目,这里我用的是dirserch,速度较快
ok,出现admin,访问一下
意思是需要本地访问,进行抓包,请求头加上
X-Forwarded-For:127.0.0.1
出现flag的获得方式,分析一下代码
// 定义获取flag的函数
function getFlag() {
// 使用fetch API向服务器发起GET请求,访问/admin/flag路径
fetch('/admin/flag', {
// 设置请求头,添加内部认证信息
headers: {
// 自定义认证头,用于服务器验证请求合法性
'X-Internal-Auth': 'cateye-internal-000' // 固定认证凭证,可能存在安全风险
}
})
// 处理响应,将响应体解析为JSON格式
.then(response => response.json()) // 自动转换JSON响应为JavaScript对象
// 处理解析后的数据
.then(data => {
// 将获取的flag或错误信息显示在页面上
// 使用id为flagResult的DOM元素展示结果
document.getElementById('flagResult').innerText = data.flag || data.error;
// 优先显示flag字段,不存在则显示error字段内容
})
}
意思是要求访问路径为admin/flag,然后请求头加上认证信息X-Internal-Auth: cateye-internal-000即可得到flag,如下所示
没有? 应该是X-Internal-Auth: cateye-internal-000中的不是000,应该是其他的三位数,那么爆破一下
设定爆破位置
设定payload,number形式,从0到999,步为1
ok,结果出来了
获得flag
此题的没有多少难点,还是比较简单的。