Dreamhack - basic_exploitation_001
소스코드
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
31
32
33
34
35
36
|
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
void alarm_handler() {
puts("TIME OUT");
exit(-1);
}
void initialize() {
setvbuf(stdin, NULL, _IONBF, 0);
setvbuf(stdout, NULL, _IONBF, 0);
signal(SIGALRM, alarm_handler);
alarm(30);
}
void read_flag() {
system("cat /flag");
}
int main(int argc, char *argv[]) {
char buf[0x80];
initialize();
gets(buf);
return 0;
}
|
cs |
풀이
gets는 길이 제한이 없어서 bof가 터진다.
32비트짜리다.
0x80채우고 4바이트 sfp 채우고, ret를 read_flag로 덮으면 된다.
read_flag의 주소를 얻었다.
pwnable.kr - bof
https://msh1307.tistory.com/77
'Layer7 동아리 과제' 카테고리의 다른 글
포너블 3차시 과제 (0) | 2022.09.25 |
---|---|
포너블 2차시 과제 (0) | 2022.09.21 |
포너블 1차시 실습 라업 (0) | 2022.09.14 |
리버싱 11차시 과제 (0) | 2022.08.30 |
리버싱 10차시 과제 (0) | 2022.08.23 |