Web hacking/개념 정리 & 심화28 [Dreamhack] W - STAGE 10 Epilogue : blind-command 1. 소스코드 내 GET 방식으론 Command Injection이 되지 않는 것을 확인. Burp Suite로 메서드 변경을 OPTION로 하면 허용 메서드가 OPTION HEAD GET인 것을 확인할 수 있다. 이 중 HEAD는 요청을 보낼 수 있지만 응답값이 날라오지 않기 떄문에 응답 값을 받을 곳을 따로 만들어주어야 한다. 2. 드림핵 툴즈(https://tools.dreamhack.games/main)의 기능 중 하나인 Request Bin에서는 테스트를 할 수 있는 링크를 생성해주고, 받은 요청에 대한 응답 값을 조회할 수 있다. 링크를 생성한 후 해당 링크를 이용한다. 3. cmd파라미터에 아래와 같은 값을 입력해 명령어를 수행하고 결과값을 위에 생성한 주소로 보내게 한다. HEAD /?cm.. 2023. 5. 29. [Dreamhack] W - STAGE 10 Epilogue: carve party 1.1 count를 100으로 올려 100번 클릭하는 경우 if (counter 2023. 5. 4. [Dreamhack] W - STAGE 9 Server Side Request Forgery (SSRF) 1. ServerSide: SSRF 웹 개발 언어는 HTTP 요청을 전송하는 라이브러리를 제공한다. PHP는 php-curl, NodeJS는 http, 파이썬은 urllib, request를 예시로 들 수 있다. 이러한 라이브러리는 HTTP 요청을 보낼 클라이언트뿐만 아니라 서버와 서버간의 통신을 위해 사용되기도 한다. 일반적으로 다른 웹 애플리케이션에 존재하는 리소스를 사용하기 위한 목적으로 통신한다. 예를 들어, 마이크로 서비스 간 통신, 외부 API 호출, 외부 웹 리소스 다운로드 등이 있다. • 마이크로서비스: 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식 기존의 웹 서비스는 단일 서비스로 구현했.. 2023. 5. 4. [Dreamhack] W - STAGE 8 File Vulnerability 1. Server Side: File Vulnerability 파일 업로드 취약점은 웹 서비스의 파일 시스템에 업로드 하는 과정에서 발생하는 보안 취약점이다. 파일 시스템 상 임의의 경로에 원하는 파일을 업로드 하거나 악성 확장자를 갖는 파일을 업로드 할 수 있을 때 발생한다. 이를 통해 원격 코드 실행 취약점까지 연계가 가능하다. 파일 다운로드 취약점은 웹 서비스의 파일을 다운로드 하는 과정에서 발생한다. 파일 시스템에 존재하는 설정 파일, 패스워드 파일, 파일 데이터 베이스 백업 본 등을 다운로드 하여 민감한 정보를 탈취할 수 있고 2차 공격을 수행할 수 있다. 1.1 File Upload Vulnerability 파일 업로드 취약점은 웹 서비스를 통해 이용자의 파일을 서버의 파일 시스템에 업로드 하.. 2023. 5. 4. [Dreamhack] W - STAGE 7 Command Injection 1. Background: Relational DBMS 다양한 웹 제작용 언어는 시스템에 내장되어있는 프로그램들을 호출할 수 있는 함수를 지원한다. 각 언어별 함수로는 PHP의 system, Node JS의 child_process, 파이썬의 os.system이 있다. 이런 함수는 전달된 인자를 셀 프로그램에 전달해 명령어를 실행한다. 시스템 함수를 사용하면 이미 설치된 소프트웨어를 쉽게 이용할 수 있다는 장점이 있지만 치명적인 취약점으로 이어질 가능성도 높다. 1-1 Command Injection Command Injection은 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생한다. 앞서 말한 시스템 함수를 통해 이용자가 임의의 인자를 전달할 수 있다. 파이썬으로 개발된 웹 .. 2023. 5. 4. [Dreamhack] W - STAGE 6 SQL Injection 1. Background: Relational DBMS 1-1 DBMS 웹 서비스는 데이터베이스에 컴퓨터의 정보를 기록하고 데이터베이스를 관리하는 어플리케이션인 Database Management System(DBMS)를 사용한다. DBMS는 데이터베이스에 새로운 정보를 기록하거나, 기록한 내용을 수정, 삭제하는 역할을 합니다. 다수의 사람이 동시에 접근할 수 있고 웹 서비스의 검색 기능 같은 복잡한 기능을 수행합니다. 데이터베이스는 크게 관계형과 비 관계형으로 나눌 수 있는데 관계형은 행과 열의 집합인 테이블 형식으로 데이터를 저장하고 비 관계형은 테이블 형식이 아닌 키-값(Key-Value) 형태로 값을 저장합니다. 종류 대표적인 DBMS Relational (관계형) MySQL, MariaDB, P.. 2023. 5. 4. [Dreamhack] W - STAGE 5 Cross Site Request Forgery(CSRF) 1. Clint Side: CSRF 1-1 CSRF CSRF는 서버에서 이용자를 식별하기 위해 쿠키를 사용하고 있어야 공격이 가능하다. 임의 이용자의 쿠키를 탈취해 해당 사용자의 권한으로 웹 서비스의 기능을 사용하는 공격을 클라이언트 측 위조 공격이라고 한다. 예를 들어 이용자의 계정으로 임의 금액을 송금해 금전적인 이득을 취득하거나 비밀번호를 변경해 계정을 탈취하고, 관리자 계정을 공격해 공지사항 작성 등으로 혼란을 야기할 수 있다. 1-2 동작 CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야합니다. 이를 위해 공격자는 이용자에게 메일을 보내거나 게시판의 글을 작성해 이용자가 이를 조회하도록 유도합니다. CSRF에서 실행되는 악성 스크립트는 HTML 또는 Javasc.. 2023. 5. 4. [Dreamhack] W - STAGE 4 Cross-Site-Scripting(XSS) 1. Clint Side: XSS 클라이언트 사이드 취약점은 웹 페이지의 이용자를 대상으로 공격할 수 있는 취약점이다. 이용자를 이용한 세션 및 쿠키를 탈취하고 임의 기능을 수행할 수 있다. 1-1 XSS XSS는 클라이언트 사이드 취약점 중 하나로 공격자가 웹 사이트에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행한다. XSS의 종류와 악성 스크립트가 삽입되는 위치는 다음과 같다. Stored XSS XSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSS Reflected XSS XSS에 사용되는 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSS DOM-based XSS XSS에 사용되는 악성 스크립트가 URL Fragment에 삽입되는 X.. 2023. 5. 4. [Dreamhack] W - STAGE 3 Cookie & Session 1. 쿠키 HTTP 프로토콜은 Connectionless와 Srateless의 특징을 가지고 있어 클라이언트를 기억하지 못한다. 이러한 특성을 갖는 HTTP에서 상태를 유지하기 위해서 쿠키가 탄생했다. 쿠키는 Key와 Value 값으로 이루어진 일종의 단위로 서버가 클라이언트에 쿠키를 발급하면 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 함께 전송해 서버가 클라이언트를 구분할 수 있게 한다. 💡 Connectionless : 하나의 요청에 하나의 응답을 한 후 연결을 종료하는 것 Stateless : 통신이 끝난 후 상태 정보를 저장하지 않는 것 쿠기는 일반적으로 상태 정보와 정보 기록을 표현하는데 사용되는데 보편적으로 상태 정보에서 클라이언트를 구분하기 위한 사용을 한다. 정보 기록의 경우 리소스 낭.. 2023. 5. 4. 이전 1 2 3 4 다음