ii4gsp
Exploit Exercises [Protostar - Stack2] 본문
시스템 해킹/Exploit Exercises - Protostar
Exploit Exercises [Protostar - Stack2]
ii4gsp 2020. 1. 16. 20:40#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
volatile int modified;
char buffer[64];
char *variable;
variable = getenv("GREENIE");
if(variable == NULL) {
errx(1, "please set the GREENIE environment variable\n");
}
modified = 0;
strcpy(buffer, variable);
if(modified == 0x0d0a0d0a) {
printf("you have correctly modified the variable\n");
} else {
printf("Try again, you got 0x%08x\n", modified);
}
}
variable 변수에 GREENIE 환경변수를 저장한다.
variable이 NULL 값이라면 "please set the GREENIE environment variable"이라는 문자를 출력한다.
환경변수에 A 68개를 저장하고 실행하니 modified의 값이 0x0d0a0d0a가 아니면 출력되는
"Try again, you got 0x41414141"이라는 문자가 출력된다.
A 68개를 환경변수에 넣어 실행하니 buffer 64byte가 오버플로우가 일어나 modified변수에 "AAAA"값이 들어갔다.
환경변수에 리틀 엔디언 방식으로 0x0d0a0d0a를 넣어주면 "you have correctly modified the variable"문자가 출력될것 이다.
buffer 64byte를 채워주고 오버플로우 값으로 \x0a\x0d\x0a\x0d를 전달해주니 modified변수가 0x0d0a0d0a일때 출력되는 "you have correctly modified the variable"문자가 출력된다.
'시스템 해킹 > Exploit Exercises - Protostar' 카테고리의 다른 글
Exploit Exercises [Protostar - Stack5] (0) | 2020.01.16 |
---|---|
Exploit Exercises [Protostar - Stack4] (0) | 2020.01.16 |
Exploit Exercises [Protostar - Stack3] (2) | 2020.01.16 |
Exploit Exercises [Protostar - Stack1] (0) | 2020.01.16 |
Exploit Exercises [Protostar - Stack0] (0) | 2020.01.16 |
Comments