폼 데이터HTML 요소인 form 태그에 실려 전송되는 데이터form 태그는 웹 브라우저에서 서버로 데이터를 전송할 때 사용한다! 어디로, 어떻게 보낼지를 적어서 보낸다.DTO (Data Transfer Object)💡form 태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받는데, 이 객체를 DTO라고 한다!DTO로 저장받은 객체는 서버의 DB에 저장된다!form 데이터 DTO로 받아보기앞에서 배운 MVC 패턴을 이용해 form을 받을 수 있는 뷰 템플릿을 완성한다! (생략)form 태그 사용하기어디로, 어떻게 보낼지!action : 어디로 보낼지, url 연결 주소방법 : post 방법여기서 방법을 get 방법이 아니라 post 방법으로 사용했음으로 Controller 내에서 Mapping..
뷰 템플릿뷰 템플릿이란? 웹 페이지를 하나의 틀로 만들고 여기에 변수를 삽입해 서로 다른 페이지로 보여주는 것ex) 로그인 페이지 - 로그인 한 유저에 따라 유저의 이름이 다르게 뜸1장에서 추가한 도구 중에 Mustache(머스테치)라는 이상한 이름의 도구가 이 뷰 템플릿을 만드는 도구MVC 패턴❓뷰에는 컨트롤러와 모델이라는 두 동료가 있다!컨트롤러 Controller클라이언트의 요청에 따라 서버에서 이를 처리하는 역할모델 Model데이터를 관리하는 역할💡요약하자면, 모델에서 데이터를 받아 뷰에서 완성된 페이지를 컨트롤러가 클라이언트에게 전달따라서 Model-View-Controller 패턴, MVC 패턴뷰 템플릿 페이지 만들기뷰 템플릿 파일✅뷰를 만드는 도구인 mustache의 위치는 src>main..

프레임워크? 라이브러리?비슷한 개념이지만, 프레임워크 쪽이 좀 더 큰 개념.현대 개발은 남들이 만들어져 있는걸 이미 가져다가 씀, 즉 새로 생겨나는 프레임워크/라이브러리를 가져다 씀프레임워크가 좀 더 큰 개념자바 스프링은 프레임워크로서 여러가지 개발에 대한 가이드라인+툴+서비스를 제공스프링 부트 프로젝트 만들기Spring Initializr스프링 부트 프로젝트를 세팅해주는 웹 서비스필요한 도구(Dependencies 추가) 다운 받은 후에 zip파일 압축 푼 후 거기에다가 개발 시작.nodejs 이용해서 ts로 백엔드 개발 잠깐 공부했을 때에도 라이브러리 다 다운받았어야하는데 그거 생각난다. npm i 치면 한 번에 다운 받아졌었지..

What I did💡 flask app 띄우기💡 git command 실습What I learn💡 E-COPS github에서 자신의 레포지토리로 fork💡 fork로 생성한 본인 계정의 저장소에서 로컬로 clone 세션 올라와있는 페이지에서 fork 해준 뒤, 해당 저장소를내 로컬이랑 연결 (폴더 새로 만들기 아까워서 저번에 실습한거 remote 지워주고 새로 해줬다)하고 clone까지 마쳐주면 폴더에 저렇게 clone된다 💡 VScode에서 app.py의 코드를 수정 코드 수정해주고! 💡 수정한 코드를 commit 명령어를 이용해 수정사항 반영💡 push 명령어를 통해 commit한 내용을 github에 반영 나는 콘솔보다는 vsc 안에 있는 이 기능을 사용하기에...vsc git 관리..

https://dreamhack.io/wargame/challenges/3 basic_exploitation_001Description 이 문제는 서버에서 작동하고 있는 서비스(basic_exploitation_001)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 "flag" 파일을 읽으세요. "flag" 파일의 내용dreamhack.iobasic_exploitation_001먼저 다운받은 파일에서 c 코드를 열어보자gets()함수를 이용하여 버퍼 오버플로우로 read_flag 함수를 실행하면 되겠구나라는 것을 감잡을 수 있다 gdb로 실행해준 뒤, info functions 하면 read_flag 함수의 위치를 알 수 있다 함수의 주소 - 0x080485b9 코드 작성해주..

리버싱리버스 엔지니어링의 준말완성된 소프트웨어나 시스템을 분석하여 동작이나 구조를 파악하는 것을 의미 어셈블리어CPU가 이해할 수 있는 기계어(Machine Code)에 가장 가까운 저수준 언어(Low-level language) 많은 프로그램이 전처리 - 컴파일 - 어셈블리어 - 기계어 - 링킹 후 exe 파일 순으로 만들어진다. gcc를 이용한 표준적인 단계 ELF & PE ELF리눅스, 유닉스에서 사용하는 실행 파일 형식보통 .so, .out, .elf로 끝난다. PE윈도우에서 사용하는 실행 파일 형식보통 .exe, .dll, .sys로 끝난다. .exe vs .dll exe는 하나의 독립적인 프로그램으로서 독립적으로 실행되고, Main을 포함하여 실행 가능하다.dll은 코드나 기능을 공유하는 라..

Ghidra란?미국 국가안보국에서 개발한 리버싱 툴디스어셈블러와 디컴파일에 있어 강력하다. - 디스어셈블러 : 실행 파일을 분석하여 어셈블리 코드로 변환해줌- 디스컴파일러 : 어셈블리 코드를 사람이 읽기 쉬운 C언어 스타일 코드로 변환해줌 실습 문제https://dreamhack.io/wargame/challenges/667 Simple Crack MeDescription Exercise: Simple Crack Me에서 실습하는 문제입니다. 이 문제는 사용자에게 숫자를 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너dreamhack.io 문제를 읽어보니, 그냥 비밀번호가 정답인지 아닌지 출력해주는 프로그램을 리버싱 툴로 분석하는 것 같..
What I did💡 어셈블리어 기초, IDA 실습, Ghidra 실습, heat Engine 실습 What I learn 💡 https://pokpung-ganji.tistory.com/entry/3%EC%A3%BC%EC%B0%A8-%EB%A6%AC%EB%B2%84%EC%8B%B1-%EA%B8%B0%EC%B4%88-%EC%9D%B4%EB%A1%A0 [3주차 - 리버싱 기초 이론]리버싱리버스 엔지니어링의 준말완성된 소프트웨어나 시스템을 분석하여 동작이나 구조를 파악하는 것을 의미 어셈블리어CPU가 이해할 수 있는 기계어(Machine Code)에 가장 가까운 저수준 언어(Lopokpung-ganji.tistory.com💡 https://pokpung-ganji.tistory.com/entry/3%..

[1단계]프로세스 열기!File - Open Process - 아래 창에서 Tutorial 버튼 클릭 - Open [2단계]튜토리얼 창의 Health 값 찾아서 수정하기처음에는 100으로 시작하니까 100을 scan해보자 다음에 줄어든 숫자(내 시도의 경우에는 96이었다)를 스캔하나로 줄어든 것을 보니 메모리 위치를 찾은 것 같다!value를 더블클릭 한 후 1000으로 바꾸어주면 성공! [3단계]2단계는 초기 값을 알았을 때 값을 수정하는 방법이었다.이번에는 초기 값을 모를 때 메모리 위치를 어떻게 찾을 수 있는지에 대해 알아보자!이번에는 Scan Type을 Unknown initial value로 체크해주고 다시 시작 Hit me 버튼 누르다 보면 잘 모르겠지만 초록색이 계속 감소하는게 보인다.Dec..
What I did💡 포렌식 개념 실습 - 여러 종류의 포렌식이란 뭔지... WireShark 실습, FTK Imager 실습, Volatility 실습 What I learn💡 https://pokpung-ganji.tistory.com/entry/2%EC%A3%BC%EC%B0%A8-%EB%94%94%EC%A7%80%ED%84%B8%ED%8F%AC%EB%A0%8C%EC%8B%9D-%EA%B8%B0%EC%B4%88-%EC%9D%B4%EB%A1%A0-%EB%94%94%EC%A7%80%ED%84%B8-%ED%8F%AC%EB%A0%8C%EC%8B%9D-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%A9%94%EB%AA%A8%EB%A6%AC [2주차 - 디지털포렌식 기초 이론] 디..