write up
-
[Pwn] Basic_BOF #2CTF write_up/Hack CTF 2019. 3. 25. 21:07
파일을 기드라로 열어보면 다음과 같습니다 일단, 입력값이 들어가는 local_94의 주소를 보면 0xffffff74는 -140입니다. 그렇다면 ebp-140 이라는 뜻입니다. 입력하기전에 공간이 더 생기는데 local_14 변수에 sup함수를 넣습니다. 그러면 -140의 공간뿐만아니라 local_14와 sup의 공간까지 추가됩니다. local_14는 다음과 같은 주소를 가지고 있습니다. -0xC 즉, -12라는 주소 = EBP-C 그렇다면 채워야 하는 공간은 local_94 - sup = 140 -12 = 128 128이라는 공간이 생기게 됩니다. 우리가 얻어야 하는 것은 flag이므로 shell 코드가 적힌 함수의 첫 주소인 빈공간 128개는 A로 넣어주고 0804849b를 RET에 입력해 주면 됩니다..
-
[Pwn] Basic_BOF #1CTF write_up/Hack CTF 2019. 3. 25. 21:05
해당 파일을 새로나온 기드라 툴로 열어보았습니다. 일단 입력을 받는 변수인 local_14를 보면 -0x34 즉 10진수로 52 자리에 위치하고 있습니다. 그리고 확인하는 구간인 local_14의 위치를 확인해 보면 -0xc 즉, 10진수로 12 자리에 있습니다. 그렇다면 local_3C - local_14 = 52 - 12 = 40 즉, 40개의 아무 문자를 입력한뒤에 분기 조건인 -0x21524111( = 0xdeadbeef)를 입력해주면 될것 같습니다. Flag : HackCTF{f1r57_574ck_buff3r_0v3rfl0w_5ucc355} ============================================ pwntools를 이용해서 문제를 풀어보았습니다.