본문 바로가기

# technic/- pwnable6

메모리 접근 시간을 이용한 메모리 릭 안녕하세요. 오랜만에 게시글을 쓰는 것 같습니다. 오늘은 최근에 풀었던 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.
Windows용 AFL(American Fuzzer Lop) - winafl 윈도우용 퍼저 : https://github.com/googleprojectzero/winafl 개인적으로는 BFF보다 좋을 것 같다. 조만간 성능 테스트를 거쳐 봐야 할 것 같다. 2018. 10. 20.
syscall socket x86, x86-x64 가끔 문제들을 보면 file descriptor를 싹 닫는 경우가 있다. 이런 경우 socket을 통해 새로운 file descriptor를 생성해주면 된다. sys_mprotect를 사용해 실행 권한을 할당 해 reverse shellcode를 실행 시키는게 대표적이며, sys_socket, sys_connect를 사용한 srop로 직접 리버스 커넥트를 맺을 수 있다. Reverse Connect를 맺게 되면 dup2 처리를 해 stdin / stdout을 제공해준다. x86-x64 기준 sys_socket : rax - 0x29 rdx - 0x0 rsi - 0x1 rdi - 0x2 sys_connect : rax - 0x2a rdx - 0x10 rsi - ptr (ip/port) rdi - fd (s.. 2018. 9. 30.
SCP 명령어로 바이너리를 옮기는 방법 SCP 명령어로 바이너리를 옮기는 간단한 방법.Example)scp -P 2222 alloca@pwnable.kr:/home/alloca/alloca ./ 2018. 9. 30.