일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rev-basic-4
- sint
- rev-basic-0
- L15
- off_by_one_001
- coin1
- pwnable.kr
- 코드엔진 베이직 13
- rev-basic-6
- rev-basic-5
- 드림핵
- off_by_one_000
- out_of_bound
- Pwnable
- basic_exploitation_001
- rev-basic-2
- rev-basic-7
- L18
- RCE
- CodeEngn
- rev-basic-3
- sd카드 리더기
- 포너블
- L16
- Basic
- 코드엔진 베이직
- Dreamhack
- basic_exploitation_000
- rev-basic-1
- L17
- Today
- Total
목록전체 글 (52)
서브웨이
예... 뭐... 이걸 풀어야하나 싶지만 그래도 있는 문제니까 풀어봅시다... 그냥 nc 명령어로 접속을 해봅시다. 예... 바로 나옵니다. 그냥 어떻게 진행이 될거다 정도를 알려주는 문제 같습니다.
일단 RELRO가 적용되어있고 NX bit이 사용된것으로 보아 got를 임의의 주소로 덮어쓴다거나 쉘코드를 사용하는것은 어려워보입니다. 참고를 보면 결국엔 리턴 주소를 덮어쓰는 방향으로 풀어야할 것 같네요. 소스코드를 봅시다. #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(i..
문제를 보면 간단하게 포맷스트링버그를 사용하는 문제인 것 같습니다. 일단 소스코드를 봅시다. #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..
강의 필기를 위해 원노트를 사용하던 도중, 원노트의 CPU 사용량이 25%를 상회하는 비정상적인 상황을 발견했습니다. 여기저기 찾아본 결과 노트북에 달린 sd카드 리더기에서 문제가 발생할 수도 있다고 해서 일단 비활성화 시켜봤습니다. 비활성화 방법은 다음과 같습니다. 내PC에서 우클릭 -> 속성 -> 장치관리자로 들어가 보시면 다양한 장치들이 나옵니다. 여기서 아래와 같이 Card Reader 혹은 비슷한 장치를 선택하여 우클릭하고 디바이스 사용안함을 체크하시면 됩니다. 이제 CPU 사용량을 확인해보시면 0~5%만을 사용하는 것을 확인할 수 있습니다. 만약 이 방법이 효과가 없다면 다른 방법을 찾아보시기 바랍니다.