-
[SUA CTF][Reversing] 2nd_taxiCTF write_up/기타 CTF 2019. 7. 27. 18:15
해당문제를 한번 열어보면 다음과 같습니다.
문제가 입력한 값에 따라서 Input 에 값이 들어가고 그값으로 알고리즘을 거쳐서 Output이 결정되는데 Output의 값이 TAXI일때 완전한 FLAG가 출력되는 느낌입니다.
해당 바이너리에 어떤 보호기법들이 해당 파일에 적용이 되어있는지 확인해 보겠습니다.
바이너리에 Full RELRO 기법과 Canary, NX, PIE 전부 적용되어 있습니다.
gdb를 이용해서 한번 확인해 보면 다음과 같습니다.
주소가 조금.. 다른 바이너리하고는 많이 다른것을 느낄수가 있습니다.
IDA를 이용해서 한번 바이너리 내부를 확인해 보겠습니다.
hex-ray를 이용해서 코드를 디컴파일해서 확인을 해보면 JP 문자열을 입력한 s 라는 값고 비교를 합니다.
한번 JP를 입력해 보겠습니다.
jp를 입력해 보겠습니다.
TA라는 문자열이 Output으로 출력되었습니다.
그렇기 때문에 jp라는 입력값이 꼭 들어가야 합니다.
바로 스크립트를 작성해 보겠습니다.
3번째 자리 찾는 스크립트
결과를 확인해 보면 다음과 같습니다.!
즉, 아래의 사진의 값이 나오게된것 입니다.
위의 3글자가 TAX 까지고 그러면 위의 2개의 값을 가지고 4번째 글자를 찾아 보겠습니다. (코드가 2개가 되겠군요!)
이처럼 총 5개의 문자열이 나왔습니다.
이처럼 총 5개의 문자열이 나왔습니다.
총 올바른 플래그를 찾을수 있는 입력 문자열은 10개 입니다.
하지만 jp 말고도 jy j0 j9 등등 많은 값들이 TA라는 문자열로 변환되서 10개 보다 훨신더 많은 값들이 FLAG를 출력하는 문자로 작용할 것 같습니다.
Flag : h3Il0_Wo51D_YLimMy
'CTF write_up > 기타 CTF' 카테고리의 다른 글
[2019 사이버작전경연대회][Forensic] Industry (0) 2019.08.26 [2019 사이버작전경연대회][Web] Hidden Command (4) 2019.08.26 [SUA CTF][Reversing] 1st_encoding (0) 2019.07.27 [SUA CTF][Forensic] Forensic2 (0) 2019.07.22 [SUA CTF][Forensic] Forensic1 (0) 2019.07.22