티스토리 뷰
코드게이트2016 문제 watermelon입니다.
메인함수에 들어가니 여러 함수로 이동하는게 보입니다. 각각의 함수로 들어가 분석해봅시다.
add 함수의 모습입니다.
잘 보면 4byte의 count, 20byte의 music, 20byte의 artist로 이루어진 구조체를 사용한다는 걸 알 수 있습니다.
modify 함수를 보게되면 마지막 read 부분에서 버퍼오버플로우가 난다는 것을 알 수 있습니다.
실제 구조체가 들어가는 스택의 크기가 커서 한번에 채울 수 없으니, 먼저 Add playlist에서 구조체를 채워줍니다.
100개의 구조체를 모두 채우면 그 다음에 카나리 구역이 있으니 오버플로우를 이용해 카나리를 릭 해준후,
rop로 쉘을 따주면 됩니다.
clear
익스코드는 아래 첨부파일에 있습니다.
.
'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
TAG
- C
- WebHacking
- window
- php
- 소스
- visual
- sdlcheck
- apache
- 코드
- sdl체크
- 언어
- APM
- 연동
- 윈도우
- 윈도우10
- studio
- apache24
- 설치
- 프로그래밍
- apm연동
- prob1
- 10
- window10
- sql inejction
- load of sql injection
- windows10
- 코딩
- load
- MySQL
- 2015
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함
watermelon.py