본문 바로가기

4-7. 2023-2 심화 스터디/웹 취약점 분석

(5)
[2023.11.11] 윈도우 가상환경에 DVWA 환경 구축 1. DVWA DVWA: 웹 해킹을 연구할 수 있도록 취약하게 설정되어 있는 오픈 소스 웹 어플리케이션 서비스 환경 초급(low), 중급(medium), 고급(high), Impossible 총 4개의 레벨로 분류되어 있는데, 레벨이 높아질수록 secure 코딩이 강하게 적용되어 있다. 또한 DVWA는 약 60가지 실습을 진행할 수 있다. 웹 해킹: 웹 사이트의 취약점을 공격하는 기술적 위협으로, 웹 페이지를 통하여 권한이 없는 시스템에 접근하거나 데이터 유출 및 파괴와 같은 행위 *타인의 시스템을 대상으로 한 해킹은 불법이므로 반드시 자신이 관리하는 시스템 환경에서 실습을 진행하여야 한다. 2. DVWA 환경 구축하기 1)VirtualBox 설치하기 리눅스 환경에서 실습을 진행하기 위해 가상머신을 설치..
[2023.10.14] 드림핵 웹해킹 서버/클라이언트(스테이지 4개) 2 Business Logic Vulnerability Business logic(비즈니스 로직): 규칙에 따라 데이터를 생성, 표시, 저장, 변경하는 로직, 알고리즘 등을 말한다. Business Logic Vulnerability(비즈니스 로직 취약점): 정상적인 비즈니스 로직을 악용하는 것을 의미한다. 인젝션, 파일 관련 취약점들은 사용자의 악의적인 데이터가 서버의 시스템 상에서 악영향을 미치는 공격을 수행하지만, 비즈니스 로직 취약점은 서비스의 기능에서 적용되어야 할 로직이 없거나 잘못 설계된 경우 발생하게 된다. 예) 후기 작성 시 적립금 지급 이벤트 후기 작성 후 100 포인트를 지급받고, 후기를 삭제한 후 다시 후기를 작성하여 100 포인트를 계속 지급받을 수 있는 취약점 발생 -> 후기 삭제기..
[2023.10.07] 드림핵 웹해킹 서버/클라이언트(스테이지 4개) 1 Sever Side Template Injection (SSTI) 웹 어플리케이션에서 동적인 내용을 HTML 로 출력할 때 미리 정의한 Template 에 동적인 값을 넣어 출력하는 Template Engine 을 사용하기도 한다. 예를 들어 내 정보를 출력해주는 페이지가 있다면 아래 코드처럼 Template 을 만들어 놓고 변수를 넣어 동적으로 HTML 을 만들 수 있다. Language Template Engine Python Jinja2, Mako, Tornad ... PHP Smarty, Twig, .... JavaScript Pug, Marko, EJS ... 사용자의 입력 데이터가 Template 에 직접 사용될 경우 template Emgine 이 해석하여 실행하는 문법을 사용할 수 있다 -..
[2023.09.30]드림핵 웹해킹 로드맵 수강 - 스테이지 3개 Command Injection Injection: 악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터 베이스 쿼리 등으로 실행되게 하는 기법 Command Injection: 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점이며 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생 Meta Character: 특수한 의미를 가진 문자 Command Injection은 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생한다. 웹 개발 과정에서 시스템 함수를 사용하면 이용자의 입력을 소프트웨어의 인자로 전달할 수 있다. 그러나 이러한 시스템 함수를 사용할 때 이용자의 입력을 제대로 검사하지 않고 실행하게 되면 임의 명령어가 동작할 수 있다...
[2023.09.23]드림핵 웹해킹 로드맵 수강 - 스테이지 5개 Web 웹: HTTP를 이용한 정보 공유 서비스 웹 서버: 정보를 제공하는 주체 웹 클라이언트: 정보를 받는 이용자 프론트엔드: 이용자 요청을 받는 부분, 이용자에게 직접 보여진다 -> 웹 리소스로 구성 백엔드: 요청 처리하는 부분 예) http://dreamhack.io/index.html-> dreamhack.io에 존재하는 /index.html 경로의 리소스를 가져오라는 의미이다. 웹 리소스는 고유의 url을 가지며 html, css, javascript 등이 대표적 Javascript로 작성된 웹 리소스는 서버에서 실행되고, 그 결과가 클라이언트 웹 리소스에 반영된다. -> X 브라우저는 이용자의 요청을 해석하여 웹 서버에 HTML형식으로 전달한다. -> X HTTP/HTTPS -인코딩을 이용하여..