본문 바로가기

ctf6

메모리 접근 시간을 이용한 메모리 릭 안녕하세요. 오랜만에 게시글을 쓰는 것 같습니다. 오늘은 최근에 풀었던 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.
[RC3 2016] 메모리 포렌식 - 500pt 얼마 전 'RC3 2016' CTF에서 재밌는 메모리 포렌식 문제가 나왔다. 500pt로 포렌식 분야에서 배점이 가장 높았고 유일하게 못 푼 문제였다. 'TrueCrypt'에 관한 문제였는데, 목표를 잘 못 잡아 결국 풀지 못했다. ddddh@siftworkstation:~/Desktop/CTF/rc3/forensics$ vol.py -f memdump.raw imageinfoVolatility Foundation Volatility Framework 2.4Determining profile based on KDBG search... Suggested Profile(s) : Win7SP0x64, Win7SP1x64, Win2008R2SP0x64, Win2008R2SP1x64 AS Layer1 : AMD6.. 2016. 11. 27.
[RC3 2016] - Reversing 200pt http://blog.naver.com/yheekeun/220867134574 같은 팀 yokkkkk님의 풀이 Reversing -f1ay.yokkkkk [그림 1] main main은 이렇게나 간단하다.. memcpy(flag, enc(입력값), 0x23) 해서 일치하면 정답이다. [그림 2] enc 내부 내가 입력한 값을 d,a,d,?로 차례대로 암호화 시키는 것이다. 복호화 소스를 짜보자 [그림 3] 복호화 소스 [그림 4] sol내가 찾고자하는 플레그가 아니라고 한다... 엄청난 삽질 끝에, [그림 5] 바이너리 끝 FLAG가 뒤집혀 들어가있는 것을 알 수 있다. 그리고 문제이름도 elf의 반대인 fle이다.바이너리를 뒤집어보자 [그림 6] 뒤집기 [그림 7] 수정 fix_fle 파일 내부인데 E.. 2016. 11. 21.