반응형 드림핵5 [Dreamhack] baby-bof 워게임 풀이 드림핵에서 제공하는 서버를 생성해 접속하면 다음과 같은 화면이 나타나고, 문제 파일을 보면 deploy 폴더에 baby-bof.c 파일이 있는 것을 확인할 수 있다. 화면에 win function이라는 말이 나오기 때문에 name으로 win을 넣어보았다. baby-bof.c 파일을 살펴보면 win 함수의 주소로 이동 시 flag가 출력됨을 알 수 있었다. 문제가 buffer overflow에 관한 문제이므로, name에 win을 입력 후, hex value로는 win function의 주소를 넣었다. 또한, name 입력 시 출력되는 addr이 총 16개이므로 이를 overflow 하기 위해 integer count로는 20을 넣었다. 그 결과, 모든 addr의 value가 win function의 주.. 2025. 9. 29. [Dreamhack] simple-operation 워게임 풀이 이 문제는 리버싱 문제로, 직접 바이너리를 분석해야 할 것으로 보인다. 먼저, 드림핵 자체 서버를 부팅하여 리눅스로 접속해 Input으로 1234를 넣어보았더니 다음과 같이 출력된다. 우리는 바이너리 분석을 통해 올바른 Input을 찾아야 한다. Ghidra로 다운로드한 문제 파일 중 chall을 분석해 보았다. 알아내야 할 것은 Input? 질문에 맞는 올바른 값이므로 Input이라는 단어를 찾아야 한다. 따라서 Search - For Strings 기능을 이용해 문자열을 검색하면 다음과 같이 출력되며, "Input? "이라는 문자열을 찾을 수 있었다. 위 Input을 더블클릭하면 메인 화면에 다음과 같이 나타난다. 이 때, Input? 에 해당하는 main 부분을 더블클릭해 나오는 화면에서 MOV를.. 2025. 9. 25. [Dreamhack] devtools-sources 워게임 풀이 및 개념 먼저, 문제 파일을 다운로드하여 확인하면 다음과 같은 파일들을 확인할 수 있다. 이 중 index 파일을 클릭하면 아래와 같은 웹 페이지가 나타난다. 아래 페이지에서 개발자 도구 탭(F12)을 열어 Sources 탭으로 가면 해당 페이지의 프런트엔드 소스 코드를 확인할 수 있다. 개발자 탭의 Sources 탭에서 Ctrl+Shift+F를 눌러 검색 기능을 실행한 후, 플래그 형식의 DH를 검색하니 바로 플래그 값을 찾을 수 있었고 해당 값은 webpack://의 styles 폴더의 main.scss 파일에 위치해 있었다. 이 문제는 단순히 개발자 도구를 사용해보기 위한 기본적인 문제인 것으로 파악된다. [개발자 도구]웹 브라우저에 내장된 도구 모음으로, 웹 애플리케이션을 만들고 디버깅하는 데 유용하며,.. 2025. 9. 17. Docker(도커) Docker: '컨테이너'를 만들고, 실행하고, 배포할 수 있는 가상화 플랫폼. 컨테이너: 가상 환경이 구축되어 있는 하나의 박스로, 가상 머신으로 한 OS 위에 다른 OS 환경 구축하는 것과 유사.BUT, 새로운 운영체제 구축할 필요 없이, 하나의 분리된 프로세스처럼 작동해 더 가벼움=> 특정 환경 구성 위해 만들어진 가상의 공간 Docker Image: 도커 컨테이너의 전 단계. 컨테이너를 생성하고 실행하기 위한 모든 것을 포함.ex) 컨테이너 생성에 필요한 파일, 환경 변수, 명령어, 파일 시스템 등자신만의 이미지 생성 or 타인의 것 사용 가능 이미지를 생성하려면 Dockerfile 작성 및 단계적으로 이미지 빌드해야 함.도커 이미지에는 Tag(=별명) 붙일 수 있음 for 이미지 버전 지정 **.. 2024. 11. 10. 정규 표현식 보안에서 공격 벡터는 흔히 이용자가 값을 자유롭게 입력할 수 있는 지점에서 발생-> 취약점 발생을 줄이려면 이용자의 입력 값을 절대 신뢰해서는 안 되며, 항상 검증하여(Never Trust, Always Verify) 서버에서 올바른 데이터만 다루도록 강제해야 한다. 이때, 정규 표현식은 입력 값 검증에 활용되며, 잘못된 정규 표현식으로 잘못 검증 시 올바르지 않은 데이터가 서버에 넘어와 취약점으로 이어짐. 정규 표현식 = 특정한 패턴으로 문자열을 표현하는 식 -> 일반적으로 공격 벡터는 흔히 이용자가 값을 자유롭게 입력할 수 있는 지점에서 발생 -> 취약점 발생을 줄이려면 이용자의 입력 값을 절대 신뢰해서는 안 되며, 항상 검증하여(Never Trust, Always Verify) 서버에서 올바른 데이.. 2024. 11. 10. 이전 1 다음 반응형