'CTF'에 해당되는 글 121건


다음 URL에 들어가면 문제를 풀 수 있는 사이트가 나온다.
https://ctf.fluxfingers.net:1316/ 

대충 봤을때는 PASSWORD를 알아내 인증을 하면 될 것 같다.

코드를 보니 크게 눈에 띄는 건 없다. 그냥 보여지는 것 처럼 패스워드 값 넣으면 전송하는 로직이 끝이다. 일단 key값과 관련된 js 파일 하나가 보인다. 코드를 확인해봤다.

일반적인 json 전송코드인데 key값을 날릴 때 debug라는 파라미터가 주석처리되어 있는게 보인다.
확인해보자.

아무거나치고 날려보자.

js 파일에서 주석처리된 debug 파라미터 없이 전송되고 있다. 응답값을 보면 별다른 특징은 보이지 않는다.


debug 파라미터를 추가해서 넘겨봤더니 해당 요청을 처리해주는 start와 end값이 응답 값에 날아온다.

여기서 생각해볼 수 있는 건 키값을 요청받는 페이지에는 분명 정답 값을 가지고 있을 것이고 그걸 내가 보낸 key 값과 비교하게 될 것이다. 이 때 요청한 값이 정답인 경우와 아닌 경우에는 처리되는 로직이 다를 것이고 그렇다면 분명 정답값에 대해서는 가장 시간이 오래걸리거나 적게걸리게 될 거라고 생각했고 일단 알파벳과 숫자를 대상으로 한글자씩 날렸을 때 각 문자에 대한 시간차이가 어떻게 발생되는지 확인해보기 위해 코드를 짜서 돌려봤다. 

첫 번째 문자로 A가 입력됬을 때 눈에띄게 시간이 오래 걸린게 보인다. 여기서 서버가 요청한 키 값을 한글자씩 비교해서 정답인지 확인하는 로직이라고 생각했고 그럼 정답과 가까워질 수록 시간이 점점 오래 걸리게 될 거라고 생각했다. 이를 토대로 brute forcing 하는 코드를 짜서 돌려봤다. 

잘 나온당.
key = AXMNP93
auth = OH_THAT_ARTWORK!


블로그 이미지

JeonYoungSin

메모 기록용 공간

,