일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- origin
- 맛집
- 심즈3
- C++
- 안드로이드
- 소주
- 오리진
- NFC
- 인터넷 이해와 활용
- 둔산동
- C
- 스카이림
- ubuntu for phone
- 솔루션
- 예제
- 관평동
- 정보보안개론과 실습
- 어플리케이션 숨기기
- 윈도우
- Error
- C언어
- 태그를 입력해 주세요.
- Android
- 한빛미디어
- 소켓통신
- 에러
- mysql
- C4996
- 연습문제
- 시스템 사양
- Today
- Total
스프링노트
한빛미디어 - 정보 보안 개론과 실습 제 8장 연습문제 본문
1. 다음 중 각각의 포맷 스트링에 대한 설명으로 틀린 것은?
① %d: 정수형 10진수 상수(integer)
② %s: 문자 값(char) (정답)
③ %f: 실수형 상수(float)
④ %hn: %n의 반인 2바이트 단위
2. 다음은 test2.c와 이 파일을 컴파일하여 실행한 결과이다. 실행 결과에서 8048440은 무엇을 의미하는가?
메모리에 존재하는 값
3. 다음과 같이 취약 프로그램을 포맷 스트링으로 공격했을 때 0xbffffd98 주소에 저장되는 값은?
bc fa ab bf or 0xBFABFABC
4. 다음 중 포맷 스트링에 취약한 함수가 아닌 것은?
① printf()
② fprintf()
③ scanf() (정답)
④ sprintf()
5. 포맷 스트링을 설명하시오.
C프로그래밍 언어에서 printf() 함수를 사용할 때 버퍼의 저장된 데이터를 출력하는데 사용하는 ‘%d‘와 같은 문자열을 포맷 스트링이라고 한다.
6. 포맷 스트링 사용 함수의 올바른 사용 예와 잘못된 사용 예를 설명하고, 잘못된 사용 예에서 일어날 수 있는 문제점을 설명하시오.
올바른 사용 예 (printf("%s\n", buffer);)
잘못된 사용 예 (printf(buffer);)
잘못된 사용 예로 사용하면 메모리 주소값이 출력됨
7. 포맷 스트링 공격을 이용해 값을 변조하는 공격의 원리를 설명하시오.
버퍼 오보플로우와 같이 메모리에 셸을 띄워 놓고, ret 값을 변조하여 관리자 권한을 획득한다.
8. 포맷 스트링 공격을 이용해 셸을 실행하는 원리를 설명하시오.
ret 주소를 찾으면 직접 대입하면 시스템이 큰 수를 인식할 수 없어서 %n 방식이 아닌 %hn을 사용하여 나누고 사용하면 됨
'SOLUTION' 카테고리의 다른 글
한빛미디어 - 정보 보안 개론과 실습 제 10장 연습문제 (0) | 2013.04.19 |
---|---|
한빛미디어 - 정보 보안 개론과 실습 제 9장 연습문제 (0) | 2013.04.19 |
한빛미디어 - 정보 보안 개론과 실습 제 7장 연습문제 (0) | 2013.04.19 |
한빛미디어 - 정보 보안 개론과 실습 제 6장 연습문제 (0) | 2013.04.19 |
한빛미디어 - 정보 보안 개론과 실습 제 5장 연습문제 (0) | 2013.04.19 |