g++ pwn
-
[Pwn] g++ pwnCTF write_up/Hack CTF 2019. 9. 24. 00:29
파일을 실행해 보겠습니다. checksec 명령어로 보호기법 및 파일의 비트를 확인하겠습니다. 32bit 이면서 딱히 보호기법을 인지 할 필요는 없는것 같습니다. IDA 32bit으로 열어보겠습니다. vuln함수의 디컴파일 코드인데, 특별히 보이는 문자열및 함수를 체크해 봤습니다. s변수의 크기는 아래와 같이 0x3C입니다. 0x3C == 60 변수의 크기는 60인데 입력은 32 만 받기 때문에 일반적인 방법으로는 RET 를 덮지 못할 것 같습니다. replace 변수가 있는데 "I" 를 "you"로 변환 시킵니다. 그러면 I를 21개 넣고 A 한개를 넣으면 s[60]+SFP[4] 인 64를 가뿐히 덮을 수 있습니다. 그리고 함수를 보시면 get_flag 라는 함수가 있어서 ret에 주소를 넣으면 될 것..