write-ups/CTF

DIMICTF do_you_know_rop write up

2018. 2. 19. 15:38

 최근에 CTF 파일들을 깔끔히 정리하는 과정에서 디미CTF 문제들을 발견하게 되어, 풀어보았다. 디미CTF 문제 중에 do_you_know_rop 라고 rop 문제가 있는데 대회 당시에는 포너블에 대해서 아무것도 몰랐기 때문에 못 풀었었다. 오늘에서야 다시 풀어본다. 


Analyse

 일단 바이너리를 헥스레이 해보면 다음과 같이 뜬다. 

 


 buf의 크기는 0x28(40) 바이트인 반면, read()로 받는 값을 크기는 64 바이트이다. 그래서 우리는 24바이트만 가지고 ROP 공격을 통해 쉘을 획득해야 한다. ROP chaining을 24바이트로 줄인다는 것은 말도 안되는 소리다. 이 것을 우회하기 위해서 1분의 시간을 썼다. 


 ROP 공격에서 핵심이라고 말할 수 있는 것은 바로 "가젯"이다. 가젯을 통해 chaining을 이어나가는데, 이 경우엔 가젯대신 main 함수를 넣어 read() 함수를 반복할 수 있다. 



Exploit 







'write-ups > CTF' 카테고리의 다른 글

HITB-XCTF GSEC CTF 2018 Quals upload (web) Write up  (0) 2018.04.14
2018 코드게이트 본선 후기 - 2018 codegate quals  (0) 2018.04.04
코드게이트 2018 본선 진출  (0) 2018.02.15
bobctf cmd write up  (0) 2018.02.12
bobctf bof write up  (0) 2018.02.12