티스토리 뷰

Pwnable/write up

watermelon[Codegate2016]

Dr_K 2018. 2. 20. 19:46

코드게이트2016 문제 watermelon입니다.

메인함수에 들어가니 여러 함수로 이동하는게 보입니다. 각각의 함수로 들어가 분석해봅시다.

add 함수의 모습입니다.

잘 보면 4byte의 count, 20byte의 music, 20byte의 artist로 이루어진 구조체를 사용한다는 걸 알 수 있습니다.

modify 함수를 보게되면 마지막 read 부분에서 버퍼오버플로우가 난다는 것을 알 수 있습니다.

실제 구조체가 들어가는 스택의 크기가 커서 한번에 채울 수 없으니, 먼저 Add playlist에서 구조체를 채워줍니다.

100개의 구조체를 모두 채우면 그 다음에 카나리 구역이 있으니 오버플로우를 이용해 카나리를 릭 해준후,

rop로 쉘을 따주면 됩니다.


clear 


익스코드는 아래 첨부파일에 있습니다.

.

watermelon.py



'Pwnable > write up' 카테고리의 다른 글

sandbag[RootCTF2017]  (0) 2018.02.21
babypwn[Codegate2017]  (0) 2018.02.21
nuclear[Codegate2014]  (1) 2018.02.13
angry_doraemon[Codegate2014]  (1) 2018.02.08
ropasaurusrex [plaid CTF]  (0) 2018.02.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함