일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- libpcap
- >
- #Best of the Best #OS #MINT64 #Sqix
- KASAN
- command
- ftz
- 인터럽트
- libtins
- 오버워치
- vim
- 오버워치 세이버메트릭스
- Overwatch League SaberMetrics
- Find
- #IntelManual
- #Qt Creator
- linux
- FTZ 레벨2
- Network
- C++11
- #MINT64 #Sqix
- #IntelManual #segment Descriptor #세그먼트 디스크립터 #MINT64 #Sqix
- vi
- BEST of the BEST
- vi 외부 명령어
- Sqix
- #
- Today
- Total
목록전체 글 (76)
Sqix
Stack Pivoting은 여러 Gadget을 이용해서 쓰기 가능한 공간에 Fake Stack을 구성해 놓고 Chaining하는 기법입니다. 오버플로우 기법을 사용해야 하는데 덮어쓸 수 있는 입력공간이 너무 부족한 경우 이러한 기법을 사용합니다. 단, 이 때 반드시 Gadget이 있어야 합니다. 1. Fake Stack으로 사용할 공간 찾기 가장 먼저 fake stack으로 사용할 공간을 찾아내야 합니다. 당연히 스택처럼 사용할 것이기 때문에, RW권한이 있어야 합니다. peda에 있는 vmmap과, 이전 각 메모리 영역을 볼 수 있는 objdump -h를 이용해서 쓸 공간을 찾을 수 있습니다. 보통 bss영역과 bss영역 이후의 빈 공간을 많이 이용합니다. 다만, 해당 영역(여기로 치면 0x804a0..
simple rop 문제입니다. 문제를 풀 때 다른 문제처럼 system 함수를 이용해서 풀려고 해 봤으나, 되지 않아서 왜 그런지 고민해본 결과 statically linked 되어있기 때문에 system 함수를 libc에서 끌어와서 푸는 형식이 아니라, shellcode를 bss에 올린 후 bss에 실행 권한을 주어 쉘코드가 실행하도록 하여야 합니다. 이것만 빼면 무난하게 풀 수 있습니다. 일단 어셈으로 코드를 유추해 보면 main() { char buf[20]; puts("ROP is easy is'nt it ?"); printf("Your input :"); fflush(stdout); read(0, buf, 100); return ; } 정도인 것 같습니다. 취약점은 read에서 버퍼가 20바이..
ROP 기법에 대해 공부한 것을 간략하게 정리해 보았습니다. Return Oriented Programming은 GOT Overwrite 기법과 Return to Libc 기법을 응용한 공격기법입니다. 주로 NX bit와 같은 보호기법이 있는 실행 파일에서 gadgets를 이용해서 코드를 실행할 수 있게 해 줍니다. 1. 사전 지식 1. Gadgets와 Payload 구성 기본적으로 Return to Libc 기법을 사용할 때, 스택은 다음과 같은 구조를 가집니다. ... - [libc 시스템 함수 주소] - [시스템 함수 호출 이후 돌아갈 주소] - [system() 파라미터] 여기서 gadgets를 이용해서 여러 개의 함수를 실행할 수 있도록 스택을 바꿀 수 있습니다. gadgets란, rop 혹은 ..