2023(12)
-
[CTF write up] Ricerca CTF 2023 - Challenges : I want to study crypto~
Pwnable 빼고 쉬운 문제 몇개를 풀어보았다. 처음으로 풀어보는 Crypto인 Rotated Secret analysis는 꽤 재밌었고, Web에서는 딱히 적당히 재밌는 문제가 없었다. 리버싱은 warm-up 문제를 빼고는 최소 7솔브부터 시작이라 딱히 건드릴 수 있는게 없었다. welcome RicSec{do_U_know_wh4t_Ricerca_means_btw?} crackme 그냥 디컴파일하면 나온다. RicSec{U_R_h1y0k0_cr4ck3r!} Reveolving Latters 반대로 하면 나온다. LOWER_ALPHABET = "abcdefghijklmnopqrstuvwxyz" def decrypt(secret, key): assert len(secret) > l*3) - ((n >> ..
2023.04.26 -
[CTF write up] LINE CTF 2023 - Hackatris : ncusre.h Tetris pwn
Dice CTF 2023의 zelda와 마찬가지로 ncurse.h 라이브러리로 제작된 테트리스 게임이다. zelda 처럼 ncusre.h FSOP Exploit이 필요한 문제는 아니었고, 단순 버퍼오버플로우 취약점이었지만 ncurse.h 라이브러리로 짜여진 프로그램들 특유의 괴상한 인풋 / 아웃풋 때문에 고생했다. Like zelda in Dice CTF 2023, it is a Tetris game made with the ncurse.h library. It was not a problem that required ncusre.h FSOP Exploit like zelda, it was a simple buffer overflow vulnerability, but I suffered from stra..
2023.03.26 -
[CTF write up] b01lers CTF 2023 - Transcendental : It is a misc not pwn :(
__int64 __fastcall main(int a1, char **a2, char **a3) { char op; // al char i; // dl int idx; // eax double reg[11]; // [rsp+0h] [rbp-78h] BYREF unsigned __int64 v8; // [rsp+58h] [rbp-20h] v8 = __readfsqword(0x28u); puts( "==============================================================\n" "== B01lers Calculator - Transcendental Figures edition 2023 ==\n" "=========================================..
2023.03.20 -
[CTF write up] ACSC CTF 2023 - re : tcache poisoning in Ubuntu 22.04
realloc만 쓸 수 있으며, 만들 수 있는 청크 크기에 제한이 걸려있다. realloc은 아래와 같은 동작을 하기 때문에 사실상 malloc, free 둘다 사용할 수 있다. realloc(0,size) -> malloc(size) realloc(ptr,0) -> free(ptr) 취약점은 realloc(ptr,0)로 free를 하였을때 size > mlist.size 조건문을 통과하지 않아서 mlist 변수에 포인터가 그대로 남는다는 것이다. 이때 해당 dangling 포인터에 대해 realloc(ptr,size) 함수를 실행하면 realloc의 반환값으로 ptr에 들어간 dangling 포인터가 그대로 반환된다. 하지만 실제로 해당 청크는 할당되지 않았기 때문에 그대로 bin list에 들어가 있..
2023.02.26 -
[CTF write up] Dice CTF 2023 - Zelda : FSOP in ncurse.so lib
Dice CTF에서 출제된 1솔브 문제다. 푸는 방법은 완벽하게 구상했지만 remote로 페이로드가 보내지지 않아서 결국 시간내로 풀지는 못했다. 첫번째 취약점은 비동기적으로 동작하는 wgetch를 여러번 반복하는 형식으로 인풋을 받는다는 것이다. 버퍼에 여러 값을 한번에 보낼 수 없는 키보드 조작으로는 문제없이 프로그램이 동작하지만, pwntools나
2023.02.08 -
[CTF write up] Tet CTF 2023 - mailService : Logical bug & Mem corruption PWN
mailclient와 mailserver라는 바이너리가 있으며 서로 통신하며, 파일을 생성하고 읽는다. 가장 눈에 띄는 취약점은 다음과 같이 콘텐츠 사이즈를 int 형으로 검사한다는 것이다. 음수 값을 넣으면 2048이 넘는 사이즈 값을 입력할 수 있게 된다. 해당 사이즈 값 4자리는 파일내에 같이 저장되며, 메일을 읽을때 해당 사이즈 값을 바탕으로 파일에서 값을 읽는다. 다음은 파일을 읽는 부분이다. 파일에 저장된 4자리 사이즈 값을 읽고 그만큼 read / write를 한다. content_buffer는 2048 사이즈의 지역변수이기 때문에 위 취약점을 이용하여 사이즈 값을 음수로 넣으면 스택 오버플로우가 발생한다. 하지만 메모리 보호 기법이 전부 걸려있기 때문에 카나리 검증으로 익스플로잇을 할 수 ..
2023.01.03