플래그를 출력하는 패스워드를 찾아보자
디컴파일하기 전에 칼리리눅스에서 파일을 실행했다
chmod +x [filename]
./[filename]
실행권한을 부여하는거 잊지말기!
일단 테스트로 username을 admin으로 입력하고 시도해보니 실패한다
IDA에서 정적분석을 해보겠음
strcmp 함수가 등장하는걸로 보니 문자열 비교를 하는 기능이 있을듯
이번엔 디컴파일해보자
플래그에 해당하는 THM{}는 찾았는데 반복문으로는 힌트를 딱히 못 찾음
조건값에 해당하는 값을 decrypt해봐도 해당하는 문자는 못 찾았다
다시 칼리 리눅스로 돌아가보자
깃허브 URI 다음에 등장하는 AGB6~ 이게 패스워드가 아닐까
저번 리버싱에서 썼던 ltrace 명령어를 활용해서 테스트
ltrace ./file.exe admin
strcmp 함수가 입력값인 admin을 AGB6js5d9dkG7이랑 비교한다
위에서 찾은 값이랑 거의 비슷한데 약간 다르다 왜일까
플래그 획득 성공! 문제는 풀었는데 strings 명령어로 찾은 값이랑
실제 비교값이 왜 다른지 궁금하다
strings는 실행파일에 저장된 ASCII 문자열을 출력하는 반면에
ltrace 명령어는 실제로 프로그램에서 비교하는 동적 값을 보여줘서 다르게 나타나는듯
결론적으로는 ltrace로 찾은 값이 더 정확하다고 보여짐
Medium 난이도 문제 해결~~!!
'Writeup' 카테고리의 다른 글
Lab: SSRF with blacklist-based input filter 필터링 우회 Writeup (0) | 2025.05.01 |
---|---|
[Tryhackme] Carnage - Wireshark 네트워크 트래픽 분석 Writeup 1-6 (0) | 2025.03.24 |
[Hackthebox] Flag Command - Cyber Apocalypse 2024 CTF Writeup (0) | 2025.03.19 |
[HackTheBox] Sherlock Brutus 리눅스 로그파일 분석 Writeup (0) | 2025.03.19 |
[Hackthebox] SpookyPass Writeup (0) | 2025.03.18 |