Dreamhack Wargame(68)
-
welcome 풀이
흠...? 코드를 보니 그냥 서버만 접속하면 FLAG를 딸 수 있을 것 같습니다. natcat으로 주어진 접속 정보에 접속해보겠습니다. ???? natcat 사용법만 알면 점수 꽁으로 먹는 문제네요? 이번 글은 풀이라고 해도 될지 의심이 가는 수준이네요..ㅋㅋ
2021.07.22 -
basic_exploitation_000 풀이
#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); } int main(int argc, char *argv[]) { char buf[0x80]; initialize(); printf("buf = (%p)\n", buf); scanf("%141s", buf); return 0; } basic_exploitation_000.c 파일의 소스코드입니다. main문부터 차근차근..
2021.07.11 -
basic_exploitation_001 풀이
#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; } 이 코드는 basic_exploitation_001.c 파일에 들어있는 소스코드입니다..
2021.07.10 -
broken-png 풀이
이미지를 보자마자 저렇게 보이는 FLAG 글자 외에도 다른 글자들이 아래쪽에 숨어있을 거라 생각했습니다. HxD를 사용하여 PNG 파일의 세로 크기를 늘려보는 식으로 풀어보겠습니다. PNG 파일의 헤더 구조 그림에서 이미지 세로 크기 부분은 0x10에 04~07까지라고 나와있습니다. 그러므로 위 HxD 화면에 띄운 PNG 이미지의 세로 크기는 00 00 01 00이 될 것입니다. 00 00 01 00을 00 00 10 00으로 바꿔서 PNG로 저장하고 파일을 실행해보겠습니다. 그러면 이렇게 숨어있던 FLAG가 나오게 됩니다. (사실 파일 크기는 00 00 03 00 정도로 해도 충분했을 것 같은데 생각 없이 하다 보니 10으로 해버렸습니다) Dreamhack에 있는 문제들 중 유일한 misc 문제라 한 ..
2021.06.03 -
pathtraversal 풀이
코드를 보면 Flag is here!!이라는 주석이 붙어있는 부분이 있습니다. 파일의 이름이 flag.txt 라는 정보를 얻었습니다. 또한, 문제에서는 "api/flag에 있는 플래그를 획득하세요!"라고 했으니 URL에서 맨 뒷부분을 ../flag로 바꿔줘야 플래그를 찾을 수 있을 겁니다. 우선 guest, admin, ../flag로 입력을 했을 때 각각 어떤 결과가 나오는지 보겠습니다. 이 웹사이트의 동작 구조는 위처럼 3개로 나뉜다 볼 수 있을 것 같습니다. 그리고 ../flag가 아니라 다른 입력값을 입력 해도 똑같이 undefined로 출력이 나왔습니다. 아무래도 admin이랑 guest 외에는 전부 undefined로 출력하라고 코딩이 되어있는 것 같습니다. 딱 여기까지 알아내고 5분 정도 별..
2021.05.29 -
file-download-1 풀이
항상 하던대로 웹사이트 접속 + 문제 파일 다운로드 웹페이지 메인화면에는 파일이 아무것도 없는게 정상입니다. 문제를 풀고 나서 이 게시글을 작성하는거라 제가 만들었었던 게시글이 메인 화면에 보이는거죠. 우선 코드를 먼저 보겠습니다. 코드에는 index, upload_memo, read_memo 이렇게 세 가지 함수가 들어있습니다. index는 보니 별다른 내용이 없는 것 같습니다. 중요하게 봐야할 부분은 upload_memo와 read_memo입니다. upload_memo에서 if filename.find('..') != -1: 이라는 부분이 있습니다. 파일 이름, 그러니까 우리가 업로드 할 게시글의 제목에 ..이 포함 되어 있는지 확인하는 if문입니다. 여기서 궁금증이 하나 들 것입니다. "다른 것도 ..
2021.05.09