WMI 서비스
·
프로젝트/인프라 취약점 진단 고도화
1. Windows Management Instrumentation(WMI) 구분설명WMI란?- Windows Management Instrumentation의 약자.- Windows 운영 체제에서 관리 및 모니터링 데이터를 제공하는 프레임워크.- 시스템 구성, 상태, 성능 및 보안 관련 정보를 쿼리하고 관리할 수 있도록 지원.- PowerShell, VBScript, Python 등에서 사용 가능.주요 기능- 시스템 정보 조회: CPU, 메모리, 디스크, 네트워크 상태 등.- 이벤트 모니터링: 특정 조건에서 발생하는 이벤트 탐지.- 프로세스 제어: 프로세스 시작, 종료, 상태 확인.- 보안 관리: 사용자 계정 정보, 시스템 권한 설정 확인.- 네트워크 설정: IP 주소, 네트워크 인터페이스 상태 조회..
12. Delete
·
프로젝트/Spring Boot 웹 애플리케이션 구축
● 게시글 생성 삭제 시 자동으로 ID 값을 변경 설정 ● 삭제 버튼 클릭 시 /website_data/게시글로 이동하는 코드를 작성 ● @GetMapping을 이용해 URL에 전달받은 id 값을 삭제할 대상의 id 값으로 전달● id가 포함된 값이 null 값이 아닐 경우 삭제를 진행 ● URL에 게시물 id인 4를 입력한 후 삭제 버튼을 클릭 ● 작성 테스트4가 삭제 된 것을 확인
11. Update
·
프로젝트/Spring Boot 웹 애플리케이션 구축
● webController 파일에서 id 값을 기준으로 수정을 진행할 데이터를 화면에 출력하는 코드를 작성● @PathVariable을 이용해 URL에 입력된 id 값을 저장한 후 해당 값을 기준으로 데이터를 불러옴● websiteEdit이라는 뷰 페이지로 전송 ● website 파일을 복사해 websiteEdit 파일을 생성● 저장된 데이터베이스에서 전달된 entity 값을 이용하기 위해 {{#websiteEdit}}을 사용● action 값으로 website_deit을 지정 ● /website_edit으로 전달받은 데이터를 기존의 target 변수에 기존 데이터를 저장● 변수 값이 null이 아닌 경우 입력받은 데이터를 id 값이 동일한 컬럼들에 저장하는 코드를 작성 ● 상세 게시물에서 수정 버튼을..
10. Read
·
프로젝트/Spring Boot 웹 애플리케이션 구축
● h2-console을 이용해 데이터베이스에 저장된 데이터를 확인할 결과 ID를 기준● 4개의 데이터가 입력되어있는 것을 확인 가능 ● websiteController에서 id를 기준으로 entity 데이터를 화면에 출력하는 코드를 작성● @PathVariable을 이용해 URL에 입력되는 id 값을 변수에 저장● repository의 findById를 이용해 id를 기준으로 데이터를 entity의 형태로 가져옴● Model을 이용해 entity에 저장된 데이터를 model에 등록● 등록된 데이터를 출력하기 위해 반환값을 단일 데이터를 출력할 뷰 페이지로 설정 ● d 값을 기준으로 entity 데이터를 불러와 출력하는 mustache 파일을 생성● {{#websiteEntity}}를 이용해 model에..
9. 개요
·
프로젝트/Spring Boot 웹 애플리케이션 구축
웹 취약점 진단 시 사용되는 기본 개념을 학습하기 위한 프로젝트이다. 웹의 기본적인 동작을 학습하기 위해 CRUD 기능(REST API)을 포함한 게시판을 구현했다.REST API는 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식이다. HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. 서버에서 보내는 응답이 특정 기기에 종속되지 않도록 모든 기기에서 통용되 수 있는 데이터를 반환한다.서버는 클라이언트의 요청에 대한 응답으로 화면(View)이 아닌 데이터(Data)를 전송한다. 이때 사용하는 응답 데이터는 JSON 이다. -> 과거에는 XML을 많이 사용했다.● 피싱 사이트 제작 중 활용한 dto → entity → repository.save 기능을 통해 입력받은 데이터를 ..
8. CRUD 기능 구현(+REST API) ※ 시연영상
·
프로젝트/Spring Boot 웹 애플리케이션 구축
Spring Boot를 이용한 CRUD 기능 구현   REST API를 이용한 댓글 기능 구현
7. 피싱(Phishing) 사이트 기본 동작 확인
·
프로젝트/Spring Boot 웹 애플리케이션 구축
● 가독성 증진을 위해 메뉴 목록 등과 같은 템플릿 코드가 수정 ● 아이디와 패스워드 삽입 후 로그인 버튼을 클릭 ● 메뉴 > Phishing_Data 버튼을 클릭 ● 데이터베이스에 저장된 입력 값이 정상적으로 출력 되는 것을 확인 ● 메뉴 > Coperation Phshing Test Site 또는 Home 버튼을 클릭 ● 기본 페이지로 리다이렉션 되는 것을 확인
6. DB에 저장된 데이터 브라우저에 출력하기
·
프로젝트/Spring Boot 웹 애플리케이션 구축
● 저장된 데이터를 화면에 출력하기 위한 mustache 파일을 생성 ● header.mustache 파일에서 /phishing_data 페이지로 이동하는 구문을 추가 ● 데이터베이스에 저장된 데이터를 List 형식으로 가져옴● phishingEntityList에 저장● 이후 저장된 데이터를 전달한 모델에 데이터를 등록한 후 뷰 페이지로 전송 ● 전달된 입력값이 dto 객체의 파라미터에 전달된 후 Entity로 변환된 것을 확인● 임의의 데이터를 입력 ● 이후 전달된 데이터를 확인하기 위해 Phishing_Data 버튼을 클릭 ● 입력된 데이터가 정상적으로 브라우저에 출력되는 것을 확인
5. Repository를 이용한 Entity 저장
·
프로젝트/Spring Boot 웹 애플리케이션 구축
● Entity를 Repository를 이용해 데이터베이스에 저장하기 위함● PhishingRepository 파일을 생성한 후 JpaRepository를 extends ※ JpaRepository ● Spring Data JPA에서 제공하는 JPA 구현을 위한 인터페이스로 간단하게 상속● 사전에 정의된 여러 메서드로 간단히 DB에 Create/Read/Update/Delete 쿼리를 수행 ● phishingRepository의 save를 이용해 Entity로 변환된 데이터를 DB에 저장 ※ @Autowired ● 스프링에서 의존성을 자동으로 주입할 때 사용하는 어노테이션●  스프링 컨테이너는 @Autowired 가 붙은 필드, 생성자, 세터 메서드 등에 자동으로 관련 의존성(빈)을 주입 ● 브라우저에 ..
4. DTO 작성하기
·
프로젝트/Spring Boot 웹 애플리케이션 구축
● 태그로 전달되는 파라미터를 MVC 환경에서 저장하기 위함● DTO라는 객체에 데이터를 저장해야 한다. 이를 위해 DTO 객체를 생성 ● dto 생성 시 입력받은 데이터를 저장할 파라미터와 자동으로 데이터를 저장하는 생성자 어노테이션과 정상적인 저장을 확인할 스트링 어노테이션을 지정 ● post 메소드로 /Stored 경로로 데이터가 전달될 경우 PhishingForm form을 통해 dto 객체로 입력값이 전달되며, 생성자를 이용해 데이터가 파라미터에 저장● 이후 @Slf4j 어노테이션을 이용한 log.info()를 이용해 데이터가 정상적으로 입력될 경우 콘솔에 출력되는 구문을 작성● 즉, 입력값은 form이라는 이름을 가진 객체의 파라미터에 저장 ● phishing.mustache 파일에 태그를..