Description

포맷 스트링 버그
올바른 포맷 스트링을 사용하지 않아 발생할 수 있는 취약점인 포맷 스트링 버그에 대해 알아봅니다.

Double Free & Use-After-Free
올바르지 않은 힙 메모리 관리로 인해 발생할 수 있는 취약점을 알아봅니다.

초기화되지 않은 메모리
변수를 사용할 때 값을 제대로 초기화하지 않아 발생할 수 있는 취약점에 대해 알아봅니다.

Integer Issues
C언어에서 정수 처리 문제로 인해 발생할 수 있는 취약점에 대해 알아봅니다.

Objectives
C에서 발생하는 메모리 커럽션 취약점들과 코드에서 발생하는 취약점을 이해할 수 있다.
Questions related to this course.
32 questions
로컬에서는 되는데 리모트에서는 안되는 이유가 뭐가있을까요?
디렉토리 탐색느낌으로다가 해볼려는데.. 후
#외않되
#왜why
width*height 실제 저장되는 값
width가 65536이고 height가 65537이라고 가정하겠습니다. 이 경우 width * height의 값은 65536 * 65537 = pow(2, 32) + 65536이므로 실제로 저장되는 값은 65536 * 65537이 아닌 65536이 됩니다. 이 문장이 이해가 잘 안갑니다. width, height가 둘다 unsigned int 이므로 w * h 연산의 결과가 pow(2,32)를 넘을 수 있다는 부분은 이해가 가는데 실제 저장되는 값은 왜 65536이 되는 건가요?
#시스템해킹
Quiz page 퀴즈 풀이 질문
int형 length에 0x7FFFFFFF을 넣으면 line 13에서 read(fd, buf, 0x7FFFFFFF)가 호출되잖아요? 이걸 힙 오버플로우라고 하는 이유가 무엇인가요?
#시스템해킹
uaf1.c 질문있습니다!
uaf1.c에서 free(a) 함수가 실행되면 메모리 공간이 소멸되는 걸로 배웠는데 free()함수 이후에도 왜 a의 포인터 주소는 계속 남게되는 건가요...? 초보라 잘 이해가 안 가서 질문드렸습니다. 그리고 혹시 '(char*)p' 이렇게 쓰는 문장은 어떻게 해석을 해야되나요 char*p와는 다른건가요??
#시스템해킹
format string bug 실습 질문
format string buf 에서 %x 를 왜 10 개를 써야하는지 이유를 자세히 알수있을까요..? %x는 esp+4 주소부터 하나씩 스택에서 꺼내오는 역할을 한다고 알고있는데 맞을까요?? printf(buf) 가 실행됐을때의 스택상태가 높은 주소부터 차례대로 flag(4byte) buf(32byte) 31 buf 0 buf 인지도 궁금합니다..
#시스템해킹
uninit1.c코드 취약점
해당 코드에서 취약점이 2가지라고 나와있는데 한가지 더 있는것이 아닌가 여쭙습니다. name_len이 null인지 아닌지 검증하는 코드가 없기 때문에 name_len이 음수인 경우에 32bit 시스템이나 64bit시스템이여도 메모리가 적다면 malloc에 대한 return값이 NULL이 될 수 있습니다. 그러면 read에서 null값을 참조하는 null dereference가 발생할 수 있지 않나요??
#시스템해킹
read함수에 관해서
혼자서 연습할라고 해도 read함수가 뭔지도 어떻게 작동하는지도 몰라서 사용을 못하겠습니다.ㅜㅜ
#시스템해킹
취약점
Line 8이 취약한 이유가 궁금합니다...ㅜㅜ
#시스템해킹
묵시적 형 변환
묵시적 형 변환에 대해 이해하기 쉬운 예시를 들어서 설명해 주실 수 있나요?? 전체적으로 이해가 안되네요..
#시스템해킹
첫번째 실습 정답이 제 로컬에서는 나오지 않습니다.
첫번째 실습 fsb-easy.c 에서 원리는 어느정도 이해는 가는데 g++ 로 컴파일 하는 제 로컬에서는 똑같은 코드와 똑같은 입력을 주어도 답이 나오지 않는데 그 이유가 무엇인가요? 컴파일러 차이라고 봐야하나요?
#시스템해킹
포맷 스트링 버그 실습 정답 질문 있습니다
1. printf(buf)에서 버퍼만 출력하는거면 총 32바이트만 출력되는게 아닌가요? printf_stackframe과 변수 flag가 왜 출력되는지 모르겠습니다. 2. 출력부분의 공백은 왜 있는 거죠? 3. 25782025로 출력되는 것이아닌 거꾸로 25207825이런식으로 출력되는 이유도 궁금합니다.
#시스템해킹
미리 할당해도 그런가요?
UAF 포인터들을 여러개 미리 할당하고 다 strcpy 를 하고 난 후에 한꺼번에 해제해도 이런 결과가 나오나요??
#시스템해킹
포맷 스트링 실습 다른 답
이런 답은 불가능 한가요? %x",flag);// 이렇게 넣어서 printf("%x",flag);//"); 이런식으로 flag 출력은 안되나요??
#시스템해킹
인자로 전달된 값은 int형이고 read 함수의 세 번째 인자는 size_t인데 어떻게 묵시적 형 변환이 일어나나요?
3번째 문단에서 이렇게 될 때 32비트 아키텍처라고 가정했을 시 어떻게 read(0, buf, pow(2,32)-1)이 호출되는지 궁금합니다
#시스템해킹
포맷스트링 첫 문제
%x를 열번 입력하면 왜 flag 값이 나오는 건가요?
#시스템해킹
오타인가요?
읽는데 크게 문제가 되지는 않지만 line 12라고 되어있는데 line18이 맞는거죠?
#시스템해킹
%d 에 항상 100이 나오는 이유?
%x %d 했을 때 %x 에는 랜덤한 값이 나오는데 %d 에는 항상 100이 나오는 이유가 뭔가요??
#시스템해킹
if문 관련 질문드립니다.
Line 15의 `if(!(buf = (char *)malloc(MAX_SIZE)))`에서, if의 조건문 안에서 대입연산을 할 수 있나요? 혹은 '='이 비교연산자 '=='의 오타인가요?
#시스템해킹
포맷스트링 실습 질문드립니다.
다른 분의 payload인 `0Ðýÿ%x%x%x%234x%n`에서, (1) 왜 `0Ðýÿ%237x%n`으로 하면 안 되고 저렇게 `%x` 3번 한 뒤에 `%234x`를 해야 하는지, (2) `%n`은 이전에 출력된 바이트 수를 저장한다고 하는데, 그러면 `0Ðýÿ(4)+%x%x%x%234x`(237)=241 바이트 아닌가요? 어떻게 255바이트가 되는지 궁금합니다.
#시스템해킹
포맷스트링 실습에서
AAAA0Ðýÿ%x%x%x%x%229c%n 0Ðýÿ 이 값은 어떻게 구하는건가요? 229뒤에 문자를 안쓰고 그냥 숫자만 쓰면 왜 틀린건가요?
#시스템해킹
오타 있습니다.
"따라서 line 12에서 이미 free된 메모리 a에 대해 다시 free를 호출하는 일이..." line 12를 line 21로 수정해야 합니다.
#시스템해킹
포맷스트링 코드질문이요
코드에서 %255가아니라 %229c를 쓰는 이유가 정확히 뭔가요 ...? 왕초보입니다.
#시스템해킹
포맷스트링 질문이용
AAAA0Ðýÿ%x%x%x%x%???x%n 의 경우에서 AAAA(4) + 0Ðýÿ(4) + x*5(5) + ???(3) 이기 때문에 255 - 16 = 239라서 ???에 239가 들어가야하는거 아닌가요 ㅠㅠ 다른 답변에서 맞추신분 답변 보면 229를 넣으셨던데... 어떻게 계산해야 229가 나오는질 모르겠습니다!
#시스템해킹
$-flag 사용
%n 사용할 때 $-flag 사용 못하나요?
#시스템해킹
auth 주소
정수형 변수 auth의 주소를 찾으면 hhhh****%8x%8x%8x%8x%215c%n ****자리에 auth 주소 넣어주고 이렇게 해주면 나올거같은데 auth 주소를 어떻게 찾는건가요? 모르겠어요..
#시스템해킹
포멧스트링버그 실습문제 %n에 관한 질문입니다.
%n을 이용하면 답에 도달할 수 있을것 같았는데 그냥 AAAA%n을 그냥 써 봤는데 segmentaion error이 나옵니다. 어떤 이유로 오류가 나는 것인가요??
#시스템해킹
포맷스트링 버그 실습 문제
1. 먼저 AAAA %x %x %x %x %x %x %x 를 통해서 5번째에 buff 인자가 존재함을 알아낸다. 2. auth 주소를 알아낸다. (이때, 아래 표를 보고 했습니다. 0xfffdd030 3. 그러면 auth의 주소 +필요한문자열 길이+%n auth주소 4바이트와 필요한문자열 길이를 합치면 0xff 255가 되어야 함 \0x30\0xd0\0xfd\0xff%251x%n 4. 그러면 auth 값이 바뀌어야 되는 거 아닌가요??? 무엇이 잘못된건지 알고 싶습니다. 인터넷 찾아가면서 학습하다가 막혀서 질문드려요
#시스템해킹
포맷스트링 버그 실습문제 ...
포멧스트링 버그 실습문제 고민해봐도 잘 안되는데 해결방안이나 힌트좀 부탁드립니다 ㅜ
#시스템해킹
포멧스트링 버그있는거 같습니다.
0Ðýÿ%x%x%x%65259c%n 를 이용해서 0xff 를 띄웠는데도 출력이 안되네요
#시스템해킹
포멧스트링 버그 실습 힌트좀 주세용...
포멧스트링버그 실습 뒤에 해석이나 가이드가 없어서 어떻게 할지 모르겠어요;;
#시스템해킹
파일이름을 잘못 적으신거같아여
~~line1에선 주석으로 uaf1.c으로 해놨는데, gcc로 컴파일할땐 mem.c로 파일이름이 바뀌네요~~
#시스템해킹
뒤에서 구체적인 내용 배우나요~?
초기화되지 않은 변수에 대한 위험의 구체적인 기술&내용도 뒤에서 배우나요~? :D
#시스템해킹
Rating
10.0★ (1)
0
Memory Corruption - C (II)
10.0★ (1)
Free
Detail
2 hours read
Easy
C언어, 기초 컴퓨터 구조