본문 바로가기

FSB3

[HackCTF] (Pwnable) babyfsb 풀이 printf(buf) 부분에서 fsb 가 발생한다. buf 값의 입력가능 범위는 SFP 전까지이다. 리턴주소 ( __libc_start_main + 2XX ) 을 leak 하면서, 카나리 부분을 덮은 뒤, ___stack_chk_fail@got 을 main 함수로 덮는다. 2라운드 에서는, leak 한 주소를 바탕으로 ___stack_chk_fail@got 을 원샷 함수로 덮거나, printf@got 을 system 으로 덮은 다음, 카나리 부분을 덮은 뒤, buf 에 "/bin/sh" 를 입력해서 printf(buf) -> system("/bin/sh") 실행 일단 rsp + 6번째가 buf 의 값을 나타낸다. 프로그램을 실행하고, __stack_chk_fail@got 을 보면, 아직 호출된 적이 없기.. 2021. 5. 14.
[Pwnable] 기초 포너블 공격기법 총정리 (Heap 익스는 따로 포스팅 하겠습니다. ( UAF, DFB, house of 시리즈 등등)) 시스템해킹 (포너블) 을 하기 위한 기본적인 공격 방법들에 대해 설명하고 실제로 어떻게 사용해 문제를 푸는지, 그리고 중간중간 팁들도 대충 자세하게 알려드리겠습니다. 이 글은 C 언어 와 python 을 알고있고, 기초적인 리버싱 을 알고있어 어셈을 볼 수 있으며 리눅스를 사용할 수 있다는 전제 하에 진행됩니다. 내용 공격기법별로 자세한 설명 BufferOverFlow ReturnOriantedProgramming ReturnToLibrary ReturnToCsu STACK-PIVOTING Integer Issues FormatStringBug OutOfBound 간단한 메모리구조 및 함수 프롤로그, 에필로그.. 2020. 11. 12.
[HackCTF] (Pwnable) You are silver Write-up 내가 입력한 문자열을 출력하고, you are silver 를 출력하고, 세그먼트폴트가 나고 종료된다. undefined8 main(void) { char local_38 [40]; int local_10; uint local_c; setvbuf(stdout,(char *)0x0,2,0); local_c = 0x32; puts("Please enter your name"); fgets(local_38,0x2e,stdin); printf(local_38); local_10 = get_tier((ulong)local_c); printf((char *)(long)local_10); return 0; } main 함수이다. 0x2e 만큼 입력받기때문에 overwrite 는 발생하지 않을것이다. void get_.. 2020. 8. 26.