반응형
문제 코드는 아래와 같다.
// Name: rao.c
// Compile: gcc -o rao rao.c -fno-stack-protector -no-pie
#include <stdio.h>
#include <unistd.h>
void init() {
setvbuf(stdin, 0, 2, 0);
setvbuf(stdout, 0, 2, 0);
}
void get_shell() {
char *cmd = "/bin/sh";
char *args[] = {cmd, NULL};
execve(cmd, args, NULL);
}
int main() {
char buf[0x28];
init();
printf("Input: ");
scanf("%s", buf);
return 0;
}
메인 함수에서 리턴 주소를 get_shell 주소로 변환해주면 간단하게 익스플로잇 할 수 있는 듯 하다.
칼리로 확인했을 때, sub rsp 0x30으로 0x30만큼 공간을 만든다. 그리고 0x38만큼 떨어진 위치에 리턴 주소가 있는 듯 하니 이 부분을 get_shell 주소로 바꿔주면 된다.
e.symbols 부분에서 오류가 난다. (대괄호로 써야한다.)
드림핵에서 알려주는 예제 코드를 보니 0x30, 0x8로 나누어서 값을 넣는 것을 확인했고, 코드를 조금 수정했다.(sendlineafter 함수가 안 된다...)
반응형
'문제풀이 > 시스템해킹' 카테고리의 다른 글
[dreamhack] out_of_bound (0) | 2024.07.25 |
---|---|
[dreamhack] sane-env write-up (0) | 2024.06.05 |
[dreamhack] ssp_001 문제풀이 (2) | 2024.05.27 |
[dreamhack] Return to Shellcode 문제풀이 (0) | 2024.05.20 |
[dreamhack] Cherry 문제풀이 (0) | 2024.05.01 |