본문 바로가기

전체 글97

메모리 접근 시간을 이용한 메모리 릭 안녕하세요. 오랜만에 게시글을 쓰는 것 같습니다. 오늘은 최근에 풀었던 AmateursCTF 2024 - baby-sandbox 문제에서 몰랐던 사실을 알게 되어 관련 글을 포스팅하려 합니다. 해당 문제는 유저 입력 값을 쉘코드로 사용하는 문제입니다. 하지만, 그냥 실행해주지는 않습니다. 보시는 바와 같이 몇 가지 제약 사항들이 존재합니다. 1. 해당 바이너리는 PIE가 설정되어 있습니다. (메모리 주소 랜덤) 2. 쉘코드 영역 주소는 0x1337000로 고정되며 r-x 권한을 가지고 있습니다. 3. 유저 입력 값 중 시스템 콜 명령어가 포함되어 있으면 안 됩니다. - int 0x80 "CD 80" - syscall "0F 05" 4. fs, gs 사용 불가능. (fs, gs로 메모리 주소 계산 방지) .. 2024. 4. 10.
[seccon 2021] Reversing - flag 이번 seccon은 연합팀 'KOREAN'으로 나가게 되어 최종 4위를 하였습니다. 하지만 명예 한국인 한 분도 계셨다는ㅋㅋ. 사실 조금 늦게 참여하였는데 운이 좋게 리버싱 한 문제를 풀 수 있었습니다. 다음은 리버싱 문제였던 'flag' 풀이입니다. 문제 클릭시 웹 사이트로 리다이렉트되며 알맞는 플레그를 웹에서 체크하는 문제였습니다. 리버싱 태그로 나왔기 때문에 살펴보면 wasm 웹 어셈블리어 바이너리가 존재하는걸 볼 수 있습니다. 즉, 해당 문제에서 플래그 문자열을 입력하고 체크 버튼을 클릭시 내부적으로 웹 어셈블리어 바이너리에서 검증을 하게 되는겁니다. 웹 어셈블리어를 분석할 때는 유명한 팁이 존재합니다. 바로 wasm 바이너리를 디컴파일 후 다시 elf로 빌드해서 보는 것입니다. 사실 디컴파일 소.. 2021. 12. 17.
IDA 사용법 설치 후 바탕화면에 32비트, 64비트 바로가기 링크 파일 2개가 생겼을겁니다. 분석하고자 하는 대상의 바이너리(파일)이 몇 비트 대상으로 컴파일 되었는지에 따라 결정되는 겁니다. 예를들면, 컴파일 시 위 처럼 x86 버전으로 빌드하였을 경우 ida 32비트 바로가기를 사용해 주시면 됩니다. (반대인 경우 x64) 대상 파일의 아키텍쳐를 모르신다면 그냥 x64로 열어보면 됩니다. (드래그앤드롭으로 바로가기 아이콘에 바이너리를 넣으시면 편합니다) x86 아키텍쳐인 경우 "Portable executable for 80386 (PE)"라고 나옵니다. x64 아키텍쳐인 경우입니다. Ok 버튼을 누르고 대상 바이너리를 IDA로 열었을 때 왼쪽 "Function window" 창이 있습니다. "Function W.. 2020. 6. 30.
PostScript 한컴 오피스 악성코드 분석하다 화딱지 나서 알아두면 좋은 Post Script 정보.. gs 9.21 버전 이하 기준. --------------------------------------------------------------------------------------------------------------------- Ghost Script Engine에서는 피연산자 Stack을 구조체로 관리하는데 다음과 같다. struct ref_stack_s { /* Following are updated dynamically. */ s_ptr p;/* current top element */ /* Following are updated when adding or deleting blocks. */ s_p.. 2020. 2. 5.