목록2020/06/18 (2)
Self-Improvement
[pwnable.kr] FD 풀이
소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include #include #include char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc
리버싱 기초/pwnable.kr
2020. 6. 18. 15:49
[CODEGATE] betting (64bit) 풀이 및 Pwntools
FILE 적용된 보호기법 IDA input_name의 크기는 (0x20-0x8)로 0x18크기이며 스택의 바로 아래에는 canary가 존재하고 있다. Main함수에서 name을 입력 받을때 read()함수로 0x28크기만큼 받고 있음으로 input_name 변수의 크기보다 0x10바이트 만큼 더 입력 할 수 있음으로 canary leak을 할 수 있다. 그 다음 아래에서 bof에 취약한 scanf() 함수로 문자열을 입력 받고 있음으로 BOF를 수행할 수 있다. 친절하게도 바이너리 파일안에 helper()함수로 system("/bin/sh")이 존재하고 있다. 결론적으론 1. read() 함수에서 canary을 leak 한다. 2. scanf() 함수에서 BOF로 ret 영역에 helper() 함수를 덮..
리버싱 기초/CODEGATE
2020. 6. 18. 11:02