하루에 한문제씩 write up을 정리해서 올리려고 한다. 물론 배울만한 가치가 있는 문제들만 ㅎㅎ.
이번 문제는 csu 가젯을 처음 써보는 문제이기도 해서 올려본다. hackctf에서는 50등까지만 달성하고 이제 다른 사이트를 찾아 떠나야겠다..
아주 단순하다. ROP하라는 문제다.
그리고 gift라는 함수가 하나 있다. 여기서 있는 가젯을 빼다 쓰라는 듯?
csu 가젯을 사용하면, 인자를 3개씩 밖에 줄 수 없으나 gift 함수 마지막 줄의 mov rcx, [rdi]를 이용하면 rdi에 미리 pop을 시켜서 rcx에 값을 줄 수 있으니 이를 이용하면 된다.
시나리오는pop rdi stdout -> mov rcx,[rdi] -> fwrite를 이용한 leak -> 다시 main함수로 ret -> fgets로 system 호출 순서대로 갔다.
csu 가젯에 대해 알고만 있다면 매우 평이한 난이도의 문제다.
'전공쪽 > HackCTF' 카테고리의 다른 글
[HackCTF] wishlist write up (0) | 2020.09.21 |
---|