본문 바로가기

전체 글56

2. Spring IoC Container 1. IoC 컨테이너와 빈 - IoC(Inversion of Control) : DI(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하지 ㅋ않고 주입받아 사용하는 방법을 말함 - Spring IoC 컨테이너 : Beanfactory, ApplicationContext (Beanfactory 인터페이스를 Implements 함) : 어플리케이션 컴포넌트의 중앙 저장소이면서 빈 설정 소스로 부터 빈 정의를 읽고 빈을 구성하여 제공 빈의 역할 Spring IoC 컨테이너가 관리하는 객체 장점 의존성 관리 의존하는 관계의 객체간의 인스턴스 생성을 컨트롤함으로 의존성을 효율적으로 관리 테스트 용이 Mock과 같은 가짜 객체를 만들어 Return 값 조작 가.. 2020. 4. 30.
1. Spring IoC (Inversion of Control) 1. IoC (Inversion of Control) : 제어의 역전 - IoC는 코드의 의존성을 외부에서 관리하여 복잡성과 오류를 줄이며 테스트를 용이하게 함 - IoC를 설명하기 위해 아래의 예제 코드를 사용(Book, BookService, BookRepository, BookStatus) // Book.class package org.springframework.samples.petclinic.book; import java.util.Date; public class Book { private Date created; private BookStatus bookStatus; public Date getCreated() { return created; } public void setCreated(Da.. 2020. 4. 29.
1. Java yaboong.github.io/java/2018/05/26/java-memory-management/ 자바 메모리 관리 - 스택 & 힙 개요 Java 에서 메모리 관리는 어떻게 이루어지는지 알아보기 위함. Stack 과 Heap 영역 각 역할에 대해 알아본다. 간단한 코드예제와 함께 실제 코드에서 어떻게 Stack 과 Heap 영역이 사용되는지 살펴 yaboong.github.io jeong-pro.tistory.com/148 JVM 구조와 자바 런타임 메모리 구조 (자바 애플리케이션이 실행될 때 JVM에서 일어나는 일, 과정�� JVM(Java Virtual Machine) : 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체다. CPU나 운영체제(플랫폼)의 종류와 무관하게 실행이 가능하다.. 2020. 4. 13.
1. OWASP ZAP (ZAP PROXY) LOGIN https://www.zaproxy.org/ The ZAP Homepage Welcome to ZAP! www.zaproxy.org 1. Login 설정 (Target 디렉토리에 Flag as Context 설정) 2. Target 디렉토리에 Flag as Context 적용되면 빨간색 표기를 볼 수 있음 3. 로그인 페이지에서 우클릭 후 From-based Auth Login Request 선택 4. Prameter 지정 (Username, Password) + CSRF 설정 토큰 존재시(User_token) Anti CSRF 설정 후 Parameter 정의 5. Context -> Users -> Add -> Login 계정 설정 -> Modify -> Enable 6. 자물쇠 아이콘 선택 (Logi.. 2020. 2. 14.
웹해킹 28번 (webhacking.kr old 28) 1. 취약점 환경 : Apache, htaccess 2. Write Up 해당 문제는 현재 정상 동작하지 않는 것으로 판단됨 - 문제를 해결하기 위해 flag.php 파일을 실행(Excute)가 아닌 읽어오기(Read) 해야함 - 읽기 혹은 쓰기 권한을 변경하려면 해당 디렉토리에 .htaccess 파일을 업로드한 뒤 flag.php를 읽으면 Sovle - .htaceess php_flag_engine off 2020. 2. 13.
웹해킹 27번 (webhacking.kr old 27) 1. 취약점 환경 : PHP 2. Write Up 2020. 2. 13.
9. 다운로드 공격 1. apache 설정 - Options Indexes FollowSymLinks MultiViews 2020. 2. 13.
8. 업로드 공격 우회 1. .htaccess 파일 업로드 (아파치 디렉토리 권한 설정 파일 -> 디렉토리 내 존재 시 적용) - png 파일 스크립트 허용 처리 AddHandler php7-script .php .png AddType text/html .php .png - php 파일 읽기 php_flag_engine off 2. 확장자 대소문자 변경 php -> PhP 3. 이중 확장자 - webshell.php.suspected -> 실행시 webshell.php로 실행됨 - 검증 시 우측부터 실행 시 좌측부터 수행하기 때문 - 블랙리스트 기반 필터링 시 사용, 화이트리스트 기반 필터링 시 무용 4. test.php%00.jpg (취약한 버전에서 동작) 5. png, jpg 파일 내 코드 삽입 -> 해당 디렉토리 실행 권.. 2020. 2. 13.
7. Filtering 우회 2 1) MySQL syntax - MySQL은 상당히 말랑말랑한 문법체계를 가지고 있다. 무슨말인고 하니 SeLeCT와 같이 Keyword는 대소문자를 구분하지않고 select * from users와 같은 query도 공백을 필터링하는경우 %0a같은 delimiter를 쓸수 있고 또한 select(*)from(users); 와같이 공백이 필요한 부분에 ()를 감싸는것도 적법한 문장이다. 이러한 MySQL의 특성을 이용해 여러가지 필터링을 우회 할 수 있습니다. 2) Keyword Filter - 인젝션을 가능케 하는 여러가지 키워드 (union, select, limit, having, like) 등등의 필터링은 인젝션을 얼핏 봐서는 불가능하게 만든다. 이런경우에 mysql내 다양한 내장함수들을 사용함으.. 2020. 2. 13.