포멧 스트링 버그 읽기

2024. 5. 19. 18:18·시스템 해킹

먼저 이론과 구조를 알아보자

 

 

#include <stdio.h>

int main()
{
char buf[64];
gets(buf);
printf(buf);
/*# 이뒤에 %d를 넣으면 변수가 전달되지않았는데도 변수를 실행하게된다. */
return 0;
}

 

vi format_gets.c

임의로 파일을 하나만들어서

 

gcc -o format_gets format_gets.c

컴파일을하여 이론과 구조를 살펴보자

 

위와같이 코딩을하게된 뒤 %d %d %d를 넣었을떄

%d %d %d가 출력되는 것이 아니라 변수가 전달되지않았어도 변수를 실행하게된다.

 

아무것도 전달하지않았는데 가져온 것을 알 수 있다.

 

 

#include <stdio.h>

int main()
{
printf("%d %d %d %d", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
return 0;
}

 

vi format_printf.c

gcc -o format_printf  format_printf.c

이번에는 이렇게 코딩을하여 내부 구조를 확인해보자.

 

gdb로  분석해보자

gdb ./format_printf

disas main

 

 

register에 넣다가 안되니까 push를 하기시작한다.

5개이후로 6개의레지스터에 넣고나서 그뒤에 넣기시작한다.

6개이상으로 넘어가게되면 메모리의 영역을 참조하기 메모리를 유출수킬수있는 취약점이다.

 

 

생각외로 치명적인 취약점이다.

 

#include <stdio.h>

int main()
{
char buf[64];
gets(buf);
printf(buf);
/*# 이뒤에 %d를 넣으면 변수가 전달되지않았는데도 변수를 실행하게된다. */
return 0;
}

즉 이전에 여기서 출력했을떄 %d가아닌 숫자가 나온것은

레지스터에서 가져온것이다.

 

계속 들어가는 현상이 발생한다. 

 

하트블리드 사건에 이슈가 된사항이다.

 

%x 를통해서 얻을 수있는건

여기에 서버의 아이디 패스워드를 출력되게하면 취명적이게되는것이다. 스택에있는데이터를 들고올수있따

 

저작자표시 비영리 변경금지 (새창열림)

'시스템 해킹' 카테고리의 다른 글

HackerSchool FTZ trainning 전체  (0) 2024.05.23
포멧스트링 버그 - 데이터쓰기  (0) 2024.05.19
Protostar - stack 7 ROP  (0) 2024.05.19
Protostar - stack 7 jmpcall을 사용한 우회 방법 (exploit 코드만 작성 )  (0) 2024.05.19
Protostack - stack 5 를 stack6 방법으로 해결하기  (0) 2024.05.19
'시스템 해킹' 카테고리의 다른 글
  • HackerSchool FTZ trainning 전체
  • 포멧스트링 버그 - 데이터쓰기
  • Protostar - stack 7 ROP
  • Protostar - stack 7 jmpcall을 사용한 우회 방법 (exploit 코드만 작성 )
taktaks
taktaks
보안 연습 일기장입니다. 모든 연습은 불법적인 용도로 사용하지 말아주시길 부탁드립니다. 용무는 wndudxkr2005@gmail.com 메일 부탁드립니다.
  • taktaks
    taktaks
    taktaks
  • 전체
    오늘
    어제
    • 보안 일지 (280)
      • 네트워크 구축 (12)
      • 리눅스 보안구축 (10)
      • 파이썬 기본 (11)
      • Web hacking (39)
      • 통합 인프라 보안 (41)
      • 공격기법 및 탐지 (33)
      • 악성코드 및 포렌식 (93)
      • 리버싱 (5)
      • 시스템 해킹 (20)
      • C 언어 (12)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      프롯
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    taktaks
    포멧 스트링 버그 읽기
    상단으로

    티스토리툴바