CTF write_up/Hack CTF

[Pwn] g++ pwn

ws1004 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에 주소를 넣으면 될 것 같습니다.

 

0x08048F0D 입니다.

 

exploit code를 작성해 보겠습니다.

 

 

Flag : HackCTF{It's_e4si3r_th4n_y0u_th1nk!}