일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- L18
- L17
- basic_exploitation_000
- sint
- L15
- basic_exploitation_001
- Pwnable
- rev-basic-5
- rev-basic-4
- coin1
- 드림핵
- sd카드 리더기
- CodeEngn
- rev-basic-6
- 포너블
- off_by_one_001
- Dreamhack
- out_of_bound
- off_by_one_000
- rev-basic-3
- pwnable.kr
- RCE
- rev-basic-0
- rev-basic-2
- 코드엔진 베이직 13
- rev-basic-7
- L16
- rev-basic-1
- 코드엔진 베이직
- Basic
- Today
- Total
목록Pwnable/dreamhack (9)
서브웨이
문제를 보면 간단하게 포맷스트링버그를 사용하는 문제인 것 같습니다. 일단 소스코드를 봅시다. #include #include #include #include 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 get_shell() { system("/bin/sh"); } int main(int argc, char *argv[]) { char buf[0x80]; initialize(); read(0, buf, 0x80); ..
바로 다음 문제를 풀어봅시다. 아까와 같은 형태의 문제네요. 일단 소스코드를 열어봅시다. #include #include #include #include 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;..
오랜만에 글을 쓰네요. 그동안 프로젝트와 진로에 대한 고민을 하느라 업로드를 쉬었습니다. 이제 다시 차근차근 올려보겠습니다. 첫 문제답게 간단해보입니다. 참고에 Return Address Overwrite가 써있는걸로 봐서 그냥 리턴 주소만 덮어씌우면 될 것 같습니다. 그럼 문제 파일을 봅시다. 파일은 이렇게 두개로 구성되어 있습니다. 먼저 C 소스코드를 봅시다. #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, a..