environ1 [pwn] environ ptr 우선 주어진 문제는 위와 같았다. 위에 사진은 environ.c 코드, 밑에 사진은 컴파일 된 코드를 IDA로 디컴파일 한 결과다. stdin, stdout 버퍼를 initialize 하고, stdout의 주소를 출력한 다음 사용자가 원하는 Size를 입력하면, 해당 Size 만큼의 Data도 입력 받는다. 그리고 마지막으로 사용자가 원하는 주소로 점프 (jmp) 한다. 취약점은, read함수에 있다. buf 크기는 24 byte인데 사용자가 입력하는 Size 만큼 읽어들인다. stdout 포인터가 출력되면 stdout offset을 빼줌으로써 libc_base를 계산할 수 있다. 또한 libc_base에 environ offset을 더해서 environ 주소를 구할 수 있다. environ 주소에 sh.. 2021. 11. 3. 이전 1 다음