반응형

Write-up 119

[SECURITYFEST 2018] zion writeup

00xml 파일을 던져줍니다. 그냥 열었을 때는 뭔가 파일이 손상이 되어서 복구를 하는데 여기에 뭔가 있는 것 같습니다. 일단 이 내용 자체에는 별게 없습니다. YouKnow의 바이너리를 한 번 살펴보겠습니다. (....)자세히 보면 바이너리의 뒷부분이 왠지 모르게 낯이 익다는 것을 알 수 있습니다. 대충 이 바이너리를 거꾸로 뒤집으면 비슷한 00xml 파일이 나올 것 같다는 예감이 드네요. 뒤집어 봅시다.1234import sys for line in open(sys.argv[1], 'r').readlines()[::-1]: print line[::-1].replace('\n', '')cs 나옵니당.

Write-up 2018.06.03

[SECURITYFEST 2018] Mr.reagan

문제를 볼 수가 없다... 대회 끝났지 얼마 되지도 않은 거 같은데 벌써 서버가 닫혔나보다.. 대충 문제 설명을 하자면 이미지 파일하나 던져주고 이 이미지 파일이 사용되었던 흔적을 찾으라는 거였다.파일 시스템과 관련된 문제다. NTFS 파일 시스템을 사용하는 이미지 파일인거 같으니 FTK imager로 분석해보자. 해당 이미지 파일이 사용되었는지를 물어보니, 해당 시스템이 사용하고 있는 파일 시스템에 대한 메타 데이터들을 살펴보도록 하려 했는데,orphan 디렉토리에 어떤 파일들이 있는 것이 보인다. ftk imager에서 보여주는 orphan 디렉토리는 어떤 폴더가 삭제되었었을 때 표시되는 디렉토리이다. 좀 더 자세히 설명하면, 상위 디렉토리는 삭제된 뒤 덮여쓰여져 복구할 수 없지만 하위 파일들이 잘 ..

Write-up 2018.06.03

[SECURITYFEST 2018] everywhere writeup

그냥 사진파일 하나 던져줍니다..요건 잘 안보여서 색상을 함 반전시켜서 봐봅시당.. 자세히 보면 보이긴 보이네요. [후기]설마 저 글자들 중에 써있지ㄴㄴ 않겟지하며 rgb 색상별로 추출해서 본다던지 하는 행동들을 많이 했는데... 그리고 혹시 rgb로 코드를 나타낼 수 있는 piet programming이 아닐까해서 땅도 많이 팟는데... 스테가노그래피가 아닐까하고 거의 다 찾아본거 같은데.... 허탈잼그래도 찾아내서 다행인가.. 허허

Write-up 2018.06.03

[N1CTF 2018] vote write up

문제 분석1. Cancel 시 free 함수가 두 분기로 나뉘어 사용되는데, 한 조건에서는 free 후 포인터까지 0으로 초기화 시켜 주지만, 다른 한 조건에서는 free 후 포인터를 초기화 하지 않아, dangling pointer가 생긴다.2. Double free를 감지한다.3. Vote 기능으로 heap chunk의 fd에 위치하는 값을 1씩 올릴 수 있다.4. Vote 기능을 사용할 때마다 thread가 생성되는데, thread 생성 수의 제한이 있으므로 Vote를 사용할 수 있는 횟수의 제한이 있다. 시나리오Memory leakfree 된 chunk를 사용할 수 있으므로, free 된 chunk의 fd, bk를 참고하여 memory leak을 수행한다.unsorted bin이 main aren..

Write-up 2018.03.14

[Harekaze CTF 2018] Flea attack writeup v2

두 번째 방법heap에 flag가 저장되어 있음. printf(Name : %s\n)을 이용해서 flag를 출력. 문제 분석heap 영역에 flag를 저장하고 있는 chunk가 존재한다. 시나리오 맨 처음 heap 영역의 구조는 다음과 같다. 왜 인지는 잘 모르겠지만, FLAG가 heap에 저장되어 있다. 할당된 영역이므로 free가 가능하고 free 시에는 데이터가 초기화되지 않으므로, 위의 두 영역들을 free하고 다시 재할당 받으면 printf(Name : %s\n)을 통해서 FLAG를 읽을 수 있다. [ heap 영역]

Write-up 2018.02.27

[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
반응형