반응형

write up 15

[Harekaze CTF 2018] Flea attack writeup v1

아쉽게 대회 때 풀지 못한 flea attack이다. 당시에는 사실 풀 방법이 생각나지 않았는데, double free에 대해서 잘 몰랐었다; 아무튼 지금은 잘 알게 되었으니, 열심히 이용해서 익스를 짜야겠다. 현재까지 flea attack을 풀 수 있는 세 가지정도의 방법을 알아냈다. 알아낸 방법 모두 write up를 작성할 계획이다.1. double free 를 이용해서 fake chunk 를 comment 에 만들어주어, add_name으로 할당하면서 printf(Name : %s\n)로 flag까지 출력.2. heap에 flag가 저장되어 있음. printf(Name : %s\n)을 이용해서 flag를 출력.3. 역시 마찬가지로 double free 를 이용해서 할당하는데, fake chunk를..

Write-up 2018.02.26

[CODEGATE 2018] Super marimo write-up

Codegate 2018 Super marimo 라는 문제임니다. 우선, 문제를 적당히 파악해 봅시다. 포인터를 이용해 참조하는 부분은, 좀 더 편히 보기 위해 적당한 구조체를 만들어 연결해줍시다.대충 위와 같이, 전보다는 보기 편해졌습니다. 이제 적당히 분석을 시작합니닿. 정말로 적당히 분석해보면, 저기 28번째 줄에서 취약점을 발견하실 수 있습니다. 이해가 쏙쏙 되도록 적당한 예를 하나 들어봅시닿 위의 그림은 이름은 각 각 "AAAAA...", "BBBBBB..."이고, profile은 둘 모두 "0000000.." 인 marimo를 "show me the marimo"라는 치트를 통해 만들었을 때의 힙 영역을 나타낸 것임니다. 위와 같은 상황에서 만약, 첫 번째 marimo의 profile을 만약 ..

Write-up 2018.02.20

[Harekaze CTF 2018] Lost_data writeup

파일을 다운로드 받으면, 압축을 해제할수록 많은 데이터가 보입니다. 여러 메타데이터 파일들이 많아 좀 지저분하고 복잡해 보이지만, 결국 중요한 것들은 여기 보이는 data 파일들과 xxxxx 폴더 안의 파일들인 것 같으니 침착해집시다. [침착] 우선 xxxxx 안의 정보들은 우리가 모르는 xxxxx와 관련되었다고하니 일단 넘어가도록 하고, data 안의 1, 2, 3 파일들을 살펴봅니다. 가장 먼저 실행해본 것은 binwalk를 이용하여 특정 시그니처를 찾아본 것이지만, 나오는 것은 없었슴니다. 흙. 시그니처가 변질되었을 가능성이 있으니, 일단 hex 값을 보기로 합니다.바이너리에서 IHDR, IDAT, IEND 가 보이는 것으로 보아 PNG 파일의 포맷을 따르고 있는 것 같습니다. PNG 파일은 IHD..

Write-up 2018.02.12

[Harekaze CTF 2018] Harekaze Farm writeup

간단한 pwn 문제입니다. 실행시키면 다음과 같이 동물 이름을 입력받습니다.사용자가 입력한 값이 동물이름이면, 해당 동물에 맞는 울음소리를 출력해줍니다. 동물이름이 아니면 아무일도 일어나지 않습니다.. 디스어셈블링해보면 알겠지만, 동물 이름도 cow, sheep, goat, hen 네가지만 해당됩니다. 사용자의 입력은 [rbp-0x110] 에 저장되고, 그 값을 cow, sheep, goat, hen 비교했을 때, 네가지 중 한가지와 같다면 select_animals 라는 심볼을 가진 bss 영역에 저장됩니다. 주소는 0x6020a0 입니다. 한 번 테스트를 해보겠습니다. 첫 번째로 입력한 AAAAA는 동물 이름이 아니기 때문에 저장되지 않고, 두 번째, 세 번째로 입력한 cow와 hen은 bss 영역에..

Write-up 2018.02.12

[CODEGATE 2018] BaskinRobins31 write-up

문제는 BaskinRobs31 게임입니다.게임의 규칙은 다들 아시다시피, 31이라는 카운트에서 서로 1~3 까지의 수를 말하고 그에 해당하는 값만큼 값을 깎는 것을 반복하는 겁니다. 자신의 차례에 이미 카운트가 0이 되어있다면 지는 게임입니다. 하지만 모든 게임에는 잔머리가 있듯이, 필!승!전1략1이 있는데요. 제가 한 번 해보겠습니다. 이 게임은 선빵을 먼저 때릴 수 있으면 이기는 게임입니다. 3만 계속 외치다보면 어느순간 상대방의 차례에는 4가 남아, 상대방은 어떤 수를 내도 다음 차례에 질 수 밖에 없기 때문이져. 근데 이놈이 사기를 칩니다; ㅎ..ㅎㅎ프로그램 따위에게 농락을 당해버렸지만, 그 복수는 쉘을 따버리는 것으로 갚겠습니다. 친절하시게도 제일 먼저, ROP가 힌트라고 알려줍니다. 문제를 분..

Write-up 2018.02.06
반응형