본문으로 바로가기

[D+12] HEAP BOF

category 해킹&보안/시스템해킹&보안 2017. 4. 13. 23:38
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

9. HEAP BOF


1) HEAP BOF


▣ Heap이란?

- 동적 메모리 할당 영역

- 사용자가 쓰기 시작해야 공간이 확보됨.

- 데이터 사이즈 알 수 없을 시 사용

- malloc(), free() 등과 상호작용

- STACK은 컴파일 시 할당, HEAP은 런타임 할당.


▣ Heap Overflow

- STACK과 같이 인접한 변수를 덮어쓸 수 있음에 기초.

- STACK과는 다른 구조이며, 직접적으로 RET 변조 불가(RET가 없음..)

- STACK Overflow에 비해 취약점 발견 저조(= 정적분석이 어려움)

STACK Overflow보다 비율이 낮음. --> 큰 쓸모가 없어서..ㅜㅜ


▣ Heap Overflow Attack을 통해 손상받는 데이터

- 인접 변수

- 함수 포인터


▣ Heap Overflow 실습 (레드햇)

- dumpcode.h 파일은 해당 변수의 메모리 공간을 볼 수 있는 함수를 담고있음.

- 프로그램 실행 후에 입력을 받는 프로그램이면...

☞ perl -e 'print "A"x20' | ./프로그램명

☞ 또는 (perl -e 'print "A"x20';cat) | ./프로그램명


(1) 예제1

☞ 힙 오버플로우를 통해 success! 가 뜨게하라.

☞ success는 동적할당 된 B 변수가 i2sec 문자열과 동일하면 뜸.

☞ A, B 변수 모두 크기는 100.


(2) 예제 2

☞ 두 개의 동적할당 된 변수는 크기가 40씩.

☞ B 변수가 /bin/sh 문자열과 동일하게 만들어 root권한의 쉘이 뜨면 성공!







i2sec 대구지점 23기 수료생.

'해킹&보안 > 시스템해킹&보안' 카테고리의 다른 글

[D+11] 보호 기법 우회 (2)  (0) 2017.04.13
[D+10] 보호 기법 우회 (1)  (4) 2017.04.12
[D+9] 메모리 보호 기법  (0) 2017.04.12
[D+8] 쉘 코드 제작 (심화)  (0) 2017.04.12
[D+7] 쉘 코드 제작  (0) 2017.04.11