HO_9
HO9
HO_9
전체 방문자
오늘
어제
  • 분류 전체보기 (104)
    • Write Up (3)
    • WarGame (21)
      • The Lord of Bufferoverflow(.. (7)
      • The Lord of Sql Injection(L.. (1)
      • Pwnable.kr (1)
      • Pwnable.tw (0)
      • XSS GAME (6)
      • Pwnable.xyz (5)
    • SYSTEM HACKING (49)
      • 기법 (24)
      • 문제 풀이 (24)
    • CODING (2)
      • PYTHON (2)
    • WEB HACKING (1)
    • Plan (0)
    • PROJECT (0)
    • iOS (6)
    • ALGORITHM (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

  • .

인기 글

태그

  • JNDI
  • log4j
  • 아파치
  • 취약점

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HO_9

HO9

[How2Heap] House of Force
SYSTEM HACKING/기법

[How2Heap] House of Force

2018. 3. 8. 23:42
728x90

How 2 Heap시리즈의 House of Force기법에 대해서 설명을 해보겠다.

House of Force는 탑청크의 사이즈를 조작을 해서 원하는 곳에 데이터를 쓰는 기법이다.


https://www.lazenca.net/display/TEC/The+House+of+Force블로그를 참조를 해서 읽으면 이해가 잘 될것이다.


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
  
int main(int argc, char *argv[])
{
    int size;
    char *buf1, *buf2, *buf3;
  
    buf1 = malloc(256);
    printf("buf1 : ");
    scanf("%s",buf1);
 
    printf("Size : ");
    scanf("%d",&size);
    buf2 = malloc(size);
 
    printf("buf3 : ");
    buf3 = malloc(256);
    scanf("%s",buf3);
 
    free(buf3);
    free(buf2);
    free(buf1);
  
    return 0;
}

이와 같은 코드가 있다고 치자.


첫번째 malloc을 하고난 후 scanf를 하는 부분을 보면 오버플로우가 가능하다.
그럼 Top Chunk의 사이즈를 변경 할 수 있다.(????)
처음에는 어떻게 Top Chunk의 사이즈를 변경 할 수 있는지 몰랐는데 ..
알고보니까 Top Chunk가 마지막에 할당받은 청크의 뒤에 붙어있다고한다...


어쨌든 ! 탑청크의 사이즈를 64비트 기준으로 가장 큰 값인 0xffffffffffffffff로 덮어준다.

그러면 malloc을 원하는 값만큼 해줄 수 있는 것이다.

그러면 원하는 스택 or 함수에 있는 값을 덮을 수 있는 것이다.

여기서 malloc을 할 때 원하는 주소로 갈려면 이 방법을 이용해서 사이즈를 구하면 된다.


아래 그림을 보자.


Malloc Data부분에 값을 적어서 다음 청크인 Top Chunk의 사이즈를 조작해 주자.

사이즈를 조작하면 원하는 원래크기였던 0x20efl보다 더욱 큰 크키를 할당 받을 수 있다.

Wanna Addr은 

64비트:0x10000000000000000-"원하는 주소"-"0x10(header size)"-"Top Chunk Address"

32비트:0x100000000-"원하는 주소"-"0x8(header size)"-"Top Chunk Address"

이런 방법으로 구해주면 된다.

그러면 원하는 주소에 원하는 값을 적을 수 있을 것이다.

'SYSTEM HACKING > 기법' 카테고리의 다른 글

Windows Universal Shellcode - 이론  (1) 2021.04.02
Return to Csu  (0) 2020.04.26
[How2Heap] House of Spirit  (0) 2018.02.01
[How2Heap] Fastbin dup into Stack  (0) 2018.01.28
Special Chapter-Double Stage Format String Bug  (0) 2018.01.01
    'SYSTEM HACKING/기법' 카테고리의 다른 글
    • Windows Universal Shellcode - 이론
    • Return to Csu
    • [How2Heap] House of Spirit
    • [How2Heap] Fastbin dup into Stack
    HO_9
    HO_9

    티스토리툴바