전체 글

전체 글

    memory leak 관점에서의 format string bug의 유용성.

    서론 개인적으로 지금까지 format string bug는 단순히 offset 확인을 위한 %p(또는 %x), 입력 길이를 위한 %c, 길이만큼 쓰기를 위한 %n 정도만 사용하고 있었는데, linked_list 라는 문제를 풀면서 조금 더 발전할 수 있는 계기가 되었다. 원리 어차피 원리는 format string bug이다. 다만, memory leak 관점에서 활용성을 극대화할 수 있어서 조금 정리해둔다. 일단 간단히 코딩. main(){ char buf[100]; while (1){ gets(buf); printf(buf); printf("\n"); } } 컴파일 시 에러가 많이 나는데 무시해도 상관없음 ㅋ 일단, 아래와 같이 %p로 출력해봤다. ┌──(kali㉿kali)-[~/Downloads] ..

    find candy

    보호되어 있는 글입니다.

    dockerfile for pwnable [2022-11-23]

    1. 서론 docker를 쓸 생각이 없었는데, 시간이 가면 갈수록 CTF 문제 출제 경향이 docker를 사용하지 않으면 풀기 어려운 (풀 순 있지만) 상황으로 만들어진다. 특히 tcache poisoning 쪽이나 full relro - hook의 문제는 거의 필수적인 듯... 어쩔 수 없이 docker를 사용하게 되었고, 지금은 visual studio code와 연계하여 잘 사용하고 있다. 2. dockerfile 인터넷의 몇가지 파일을 조합하였고, build 중 발생하는 문제들이 있어 이를 수정하여 build에 성공한 파일이다. - 공통 22-11-23 : mirror server 변경 code 추가. (그닥... 썩... 빠르지는...?) / patchelf 추가 22-11-24 : gdb di..

    11월 중순이 조금 지나서 쓰는 일기.

    자체평가 : ★★★☆☆ 공부는 열심히 하고 있지만, 목표가 명확하지 않아 별로 한게 없는 듯한 느낌. 솔직히 초기에 적은 글 정리가 다소 귀찮아서 내버려두기로 했다 -_- 중간중간 잘못된 부분만 확인해서 정리하기로 함. root me는 어느정도 풀리다가 또 막혔다... 그래서 잠시 dreamhack으로 넘어갔는데 로되리안에 또 막혔다... 그래도 dreamhack 문제가 재미있다보니 계속 시도하게 되는 듯. 자꾸 막혀서 리버싱 공부를 먼저 할까 싶은 생각도 들었지만, 남은 한달 반, 조금만 더 노력하자. vscode + docker 환경에 조금 친해지고 싶었는데 어느정도 성공했다. 회사에서는 잘 되더니 집에서 vscode - docker 간 연결이 어느순간 잘 안되기에 지금 이 글은 windows 재 설..

    for "one" - rao

    보호되어 있는 글입니다.

    linked_list

    보호되어 있는 글입니다.

    sea of stack

    보호되어 있는 글입니다.

    [App-system] ELF x86 - Stack buffer overflow - ret2dl_resolve

    1. intro 2. code 및 분석 2.1. code code가 제공되지 않고 remote server로 접속해서 푸는 문제이다. 2.2. 분석 다른 문제가 안풀려서 푸는 문제... ㅠㅠ 우선 checksec부터 해봤다. app-systeme-ch77@challenge03:~$ checksec ch77 [*] '/challenge/app-systeme/ch77/ch77' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) 32 bit 파일이다. 소스코드가 제공되지 않기에 바로 gdb로 열어보았더니 app-systeme-ch77@challenge03:~$ gef ch77..

    for "One"

    보호되어 있는 글입니다.

    return to dl resolve

    - 서론 오랜만에 이론 글을 쓴다. root me 문제를 풀다가 NX, Relro, ASLR로 인해 rop이 가능할 것으로 판단하였고, 이에 memory leak이 필요한데 출력관련 함수가 하나도 없었다. 아무리 ASLR이라도 1/4096 확률로 성공 가능할 것으로 판단했던 brute force 또한 먹히지 않았다. 결국 무슨 수를 써서라도 memory leak을 하거나 다른 방법을 택해야했다. 이는 그 중 한가지 방법이며, got에 실제 주소가 쓰여지는 방식 자체를 공략하는 것이다. - 원리 관련 문제와 풀이는 아래와 같고, 이 글도 아래 문제를 기준으로 한다. 2022.11.09 - [Wargame/Root me] - [App-system] ELF x86 - Stack buffer overflow -..