ipwn
Layer7 [CTF] DO NOT TOUCH ME! 본문
이 문제는 리버싱 문제에 해당하는 문제입니다.
이 문제는 난이도가 없지는 않아보이는 문제입니다.
사진과 같이 실행결과가 출력 되는걸 알 수 있습니다.
그럼 이제 디버깅을 시작 해봅시다.
일단 이전은 생략하고 바로 메인함수 부분을 찾아 들어가봅시다.
이 부분이 바로 메인함수 부분입니다.
계속 주욱 내려가다보면
이렇게 생긴 반복문이 있네요.
보아하니 [EBP-60]과 [EBP-5C]의 값을 계속 증가시켜주는 듯 합니다.
이 반복문은 [EBP-60] = [EBP-5C] = 7이 될 때 끝이 납니다.
조금 더 밑으로 내려가봅시다.
위 사진과 같이 Secret key를 입력받는 함수가 보입니다.
플래그를 모르니 아무 값이나 입력하고 디버깅을 계속 해봅시다.
내려오다 보니 반복문이 두 개가 보이네요 큰 반복문 하나와 작은 반복문 하나가 보입니다.
반복문을 전체적으로 해석하면 아까 [EBP - 60]의 위치에 받은 7의 값으로
입력받은 문자열들을 하나하나 XOR 해주는 반복문입니다.
즉 0000 0111의 값으로 잘 xor된 것을 확인 할 수 있습니다.
아무거나 입력한 값이므로 역시 검사를 진행 한 뒤 Nono..를 출력하는 위치로 이동되는군요,
검사를 끝낸 뒤 스택 부분에 쌓인 문자열은 보면 뜬금없이 "AKF@|chXlihpXfisn8z" 라는 문자열이 보입니다.
우리는 이렇게 마지막에 등장한 문자열로 입력받은 문자열은 검사한다는 것을 유추해볼 수 있습니다.
그럼 이렇게 등장한 AKF@|chX~hrXlihpXfisn8z라는 문자열을 하나하나 0000 0111의 값으로 xor 해줍시다.
그렇게 된다면 FLAG{do_you_know_anti?}라는 문자열이 나옵니다. (벌써부터 플래그 같군요ㅎㅎ)
혹시 모르니 FLAG{do_you_know_anti?} 문자열을 입력하고 프로그램을 실행시켜봅시다.
Correct! 정답! 플래그가 맞았습니다.
'CTF's > Layer7' 카테고리의 다른 글
Layer7 [CTF] 후기 (0) | 2017.12.18 |
---|---|
Layer7 [CTF] Knock, Knock! (0) | 2017.12.18 |
Layer7 [CTF] Layer's Letter (0) | 2017.12.18 |