분류 전체보기 309

[Securinets CTF 2021 : pwn] kill shot 풀이 (seccomp, Full RELRO)(수정)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro 처음에 와 내가 절대 못풀겠다;;;;;라고 생각했었는데, 막상 풀고보니... 이 정도는 풀어야 할 것 같다............... ㅠ Summery Using fsb, leak libc/stack address __malloc_hook을 gets 함수로 덮어쓰기 malloc(stack주소) -> gets(stack주소) : BOF trigger ROP openat, read, write Analysis - 보호기법 check 보호기법은 전부 다 걸려 있다. Full RELRO에 주목해보면, 특정 함수의 got를 덮는 것은 되지 않는다. 이 때는 malloc_hook, free_hook, _rtld_global._dl_rtld..

CTF/Write UPs 2021.04.03

[picoCTF 2021 : pwn] 내가 푼 문제들 풀이

picoCTF의 pwn 중에서 푼 문제들만 간단하게 롸업 적어보려고 한다. 위의 문제 정도를 풀었는데 16문제 중 8문제.. 딱 절반만 풀었다. ㅎ Binary Gauntlet 0 fsb 트리거 풀고나서 아이다로 코드 살펴보니, 세폴 뜨면 flag 던져주는 함수가 있었다. Stonks 솔브 수는 굉장히 많았는데 그 많은 솔브 수에 비해 푸는데 정말 오래 걸렸다;;;; fsb 트리거 가능 배열 api_buf에 들어가 있는 것은 문자 하나하나가 들어가 있는 것 주소가 아님, flag 하나하나의 값 10진수나 16진수로 printable한 숫자 범위 정도는 딱 봤을 때 눈치를 까야함 너무 작은 수나 너무 큰 수가 포함 안된 경우라고 이해해도 됨 32~126 0x20~0x7e 여기서 저 빨간 네모 부분을 가져와..

CTF/Write UPs 2021.03.31

[HackCTF : Pwnable] Random key 풀이 (rand)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro 롸업보고 풀었는데, 안봤으면 못 풀었을 것 같다. 주어진 파일은 문제 바이너리 파일! Analysis random값과 내가 입력한 input값이 같으면 flag를 출력해 준다. 빨간 네모 친 부분을 잘 모르겠다면 아래 링크 참조! jiravvit.tistory.com/entry/NOTE-coding-%EB%82%9C%EC%88%98%EC%83%9D%EC%84%B1randsrandtime-C%EC%96%B8%EC%96%B4?category=925961 [NOTE : coding] 난수생성(rand(),srand(),time()) (C언어) 환경 : ubuntu 18.04 hackCTF random_key 문제 풀면서 정리해봤다. ..

WAR GAME/HackCTF 2021.03.25

[NOTE : coding] 난수생성(rand(),srand(),time()) (C언어)

환경 : ubuntu 18.04 hackCTF random_key 문제 풀면서 정리해봤다. 예전에 학교에서 배운 적 있었는데 이 랜덤 개념이 생각보다 자주 쓰인다고 해서 정리를 해보려고 한다. (근데 NOTE 카테고리 취지가 조금 짧게 짧게 적는 ... 그런 노트 느낌인데 coding 카테고리는 뭔가 예외인 느낌..) 1. rand() 함수 #include #include #include int main(void) { printf("rand : %d\n", rand()); printf("rand : %d\n", rand()); printf("rand : %d\n", rand()); printf("rand : %d\n", rand()); printf("rand : %d\n", rand()); printf(..

Note/coding 2021.03.25

[HackCTF : Pwnable] 1966 풀이 (cpp, BOF)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro std::cin은 bof가 일어난다는 것을 첨 알았다. 주어진 파일은 문제 바이너리 파일 Analysis 별다른 기능을 하지 않는다. 저기 std:cin으로 name을 입력받는다. 저기서 bof가 일어나길 희망하고 테스트해봤더니 bof가 터진다. 앗싸! shell 주는 함수도 있으니 return address를 덮으면 되겠다. How to exploit return address를 spawn_shell 함수로 덮는다. Let's exploit from pwn import * #p = process('./1996') p = remote('ctf.j0n9hyun.xyz', 3013) e = ELF('./1996') shell = 0..

WAR GAME/HackCTF 2021.03.24

[HackCTF : Pwnable] poet 풀이 (64bit, BOF)

문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro 오래걸릴 뻔... 주어진 파일은 문제 바이너리 파일 Analysis 일단 실행하면 아래와 같다. 뭔가 1000000점이면 flag를 줄 것같은 느낌 IDA로 열어보자. 참고로 저기 보이는 score 변수는 전역변수다. score 변수가 1000000이면 while문을 탈출하여 reward() 함수를 실행하게 되는데 reward() 함수는 flag를 출력해준다. 처음에 strcpy함수에서 bof를 일으켜서 뭐 어찌어찌 할 생각을 하였다. CTF 글자 열심히 보냈는데 세폴 떴음ㅋ How to exploit score,poem, author 변수는 다 전역변수이다. 같은 bss영역에 위치한다. poem과 author를 입력받을 때 둘..

WAR GAME/HackCTF 2021.03.24