Security/Write-Up

dact 뭐 파일 압축을 해주는 놈인데 afl fuzzer를 이용해서 fuzzing 을 하고 이 dact를 exploit 해서 쉘을 얻어내는 것이 목표다. 일단 처음 시작은 어디서 어떻게 segmentation fault가 떴는지였다. input으로 crash_file 을 주었을 때 dact_common.c 의 478번째줄에서 file_extd_urlent++ 가 계속 되면서 접근할 수 없는 주소로 접근을 해버린다. 그리고 file_extd_urls는 char*[256]의 자료형이다. 즉 file_extd_urlent 가 256이 넘어가면 sfp,ret에 접근이 가능해서 원하는 곳으로 점프가 가능하다는 것이다. 저 parse_url_subst 함수가 어떻게 작동하는지는 잘 모르지만, 만약 여기서 ROP가..
바이너리는 이곳에서 받을 수 있습니다. 환경은 Ubuntu 20.04 glibc 2.31이다. 보호기법은 (당연히) 전부 걸려있다. 그렇게 기능이 많지 않은 바이너리인데 그리고 seccomp black list 또한 걸려있다. execve의 호출은 불가능하다. 1. Take a card 단순하게 사이즈를 입력받고 bss영역에 있는 cardSizeTable에 사이즈를 저장하고 malloc으로 입력한 사이즈 만큼 할당을 받는다. ReadInt는 8바이트만큼 문자열을 읽어서 atoi 로 변환해 반환하는 함수이다. (atoll이 아니다!) 2. Edit 취약점이 생기는 부분으로 edit 할 내용을 전역변수에 저장하고, 다시 그 전역변수의 내용을 strcpy로 복사한다. 그러나 전역변수 내용 전체를 memset ..
OSOR2
'Security/Write-Up' 카테고리의 글 목록