SWUFORCE/모의해킹팀 9

드림핵 라이트업 web-ssrf

SSRF 취약점을 이용하는 문제이다. 문제 파일에서 파이썬 코드를 열어보았다. /img_viewer는 img_viewer.html을 렌더링하는 GET과 이용자가 입력한 url에 HTTP 요청을 보내고, 응답을 img_viewer.html의 인자로 하여 렌더링하는POST 요청을 처리한다. img_viewer는 서버 주소에 “127.0.0.1”, “localhost”이 포함된 URL로의 접근을 막는다. 이를 우회하면 SSRF를 통해 내부 HTTP 서버에 접근할 수 있다. 블랙리스트 필터링은 URL에 포함되면 안되는 문자열로 블랙리스트를 만들고, 이를 이용하여 이용자의 접근을 제어한다. 화이트리스트 필터링은 접근을 허용할 URL로 화이트리스트를 만든다. 이용자가 화이트리스트 외의 URL에 접근하려하면 이를 차..

모의해킹 과제 6주차

ServerSide: SSRF 마이크로서비스 : 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식. 관리 및 코드의 복잡도를 낮추기 위해 사용한다. Server-side Request Forgery(SSRF) : 웹 서비스의 요청을 변조하는 취약점으로, 브라우저가 변조된 요청을 보내는 CSRF와는 다르게 웹 서비스의 권한으로 변조된 요청을 보낼 수 있다. 백오피스 서비스 : 관리자 페이지라고도 불리며, 이용자의 행위가 의심스러울 때 해당 계정을 정지시키거나 삭제하는 등 관리자만이 수행할 수 있는 모든 기능을 구현한 서비스. 이러한 서비스는 관리자만 이용할 수 있어야 하기 때문에 외부에서 접근할 수 없는 내부..

모의해킹 5주차 과제

ServerSide: Command Injection 인젝션(Injection) : 악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법 Command Injection : 이 중, 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점으로 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생. 취약점이 발생하는 원인은 단순하지만, 매우 치명적인 공격으로 이어질 수 있음. 개발자는 이용자의 입력을 반드시 검사해야 하며, 되도록 system 함수의 사용을 자제해야 함. 메타 문자(Meta Character) : 특수한 의미를 가진 문자. 예를 들어, 셸 프로그램에서 ;를 사용하면 여러 개의 명령어를 순서대로 실행시킬 수 있음. Se..

모의해킹 과제 4주차

Background: Non-Relational DBMS 비관계형 데이터베이스 : SQL을 사용해 데이터를 조회/추가/삭제하는 관계형 데이터베이스(RDBMS)와 달리 SQL을 사용하지 않으며, 이에 따라 RDBMS와는 달리 복잡하지 않은 데이터를 다루는 것이 큰 특징이자 RDBMS와의 차이점MongoDB : JSON 형태인 도큐먼트를 저장 - 스키마를 따로 정의하지 않아 각 컬렉션(Collection)에 대한 정의가 필요하지 않는다 - JSON 형식으로 쿼리를 작성할 수 있다 - _id 필드가 Primary Key 역할을 한다. MongoDB 연산자 Redis : 키-값(Key-Value)의 쌍을 가진 데이터를 저장. 다른 데이터베이스와 다르게 메모리 기반의 DBMS이다. 메모리를 사용해 데이터를 저장하..

3주차 웹해킹 과제

ClientSide: CSRF Cross Site Request Forgery (CSRF) CSRF : 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점. 공격자는 임의 이용자의 권한으로 서비스 기능을 사용해 이득을 취할 수 있다. Cross Site Request Forgery 동작 CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야 한다. 이는 공격자가 이용자에게 메일을 보내거나 게시판에 글을 작성해 이용자가 이를 조회하도록 유도하는 방법이 있다. XSS와 CSRF의 차이 공통점 : 둘 다 클라이언트를 대상으로 하는 공격이며, 이용자가 악성 스크립트가 포함된 페이지에 접속하도록 유도해야 한다. 차이점 : XSS는 인증 정보인 세션 및 쿠키 탈취를..

2주차 과제 - 시스템 해킹

Background: Computer Architecture 컴퓨터 구조 : 컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 이들을 구성하는 방법. 컴퓨터의 기능 구조에 대한 설계, 명령어 집합구조, 마이크로 아키텍처, 그리고 기타 하드웨어 및 컴퓨팅 방법에 대한 설계 등을 포함한다. 명령어 집합구조 : CPU의 명령어에 대한 설계. CPU가 처리해야하는 명령어를 설계하는 분야이다. 마이크로 아키텍처(Micro Architecture) : CPU의 하드웨어적 설계. 정의된 명령어 집합을 효율적으로 처리할 수 있도록, CPU의 회로를 설계하는 분야이다. 폰 노이만 구조 : 연산과 제어를 위해 중앙처리장치(Central Processing Unit, CPU)를, 저장을 위해 ..

모의해킹 2주차 과제 - 웹 해킹

Tools: Browser DevTools Tools: Browser DevTools Tools: Browser DevTools 개발자 도구 개발자 도구 구성------------ 요소 도구 : 특정 요소의 개괄적인 정보를 파악하고, 이와 관련된 코드를 쉽게 찾을 수 있다. 디바이스 툴바 : 현재 브라우저의 화면 비율 및 User-Agent를 원하는 값으로 변경할 수 있다. Elements : 현재 페이지를 구성하는 HTML의 코드를 읽을 수 있다. 콘솔(Console) : 프론트엔드의 자바스크립트 코드에서 발생한 각종 메세지를 출력하고, 이용자가 입력한 자바스크립트 코드를 실행도 해주는 도구이다. 브라우저에서 자바스크립트를 실행하고 결과를 확인할 수 있다. Sources : 현재 페이지를 구성하는 웹 ..

모의해킹 2주차 과제 - 인프런 강의 [웹 해킹과 모의해킹 현업에 대한 이야기]

웹 해킹이란 무엇인가? 웹 해킹 : 웹에 대한 공격. 웹 서비스 상에서 발생될 수 있는 보안 허점을 이용해서 악의정인 행위를 하는 것이다. 방화벽 : IP, 포트, 프로토콜을 기반으로 패킷 필터링을 한다. 웹 해킹에서 가장 중요한 것은 정보 수집! 웹 해킹 공격 종류와 영향력 웹 해킹 공격의 종류 SQL 인젝션 : 파라미터에 SQL 구문을 삽입해서 어플리케이션에서 DB로 지리를 하게 되는데 이때 정상적인 개발자가 의도한 정상적인 SQL 구문을 지리하는 것이 아니라 SQL 구문이 삽입됨으로써 공격자가 의도한 비정상적인 SQL 구문을 지리한다. 커맨드 인젝션 : 시스템 명령 구문이 인젝션되는 취약점 XPath 인젝션 : 엑스패스 - 각 요소들의 값이나 속성의 값을 탐색할 수 있는 경로를 표현한 것. 공격자가..

2주차 과제

해킹대회(CTF) 출전을 위한 시스템해킹(Pwnable) 입문 시스템해킹 이해하기 해킹 : 권한이 없는 행위를 하는 것. 개발자가 의도하지 않은 프로그램의 동작을 유발하는 것. 시스템 장악 = 쉘(실행하고 싶은 프로그램을 실행시켜주는 프로그램)을 실행했다. 시스템 : pc 그 자체로 os를 기반으로 하드웨어를 통제할 수 있는 소프트웨어적 환경 시스템 해킹의 목표는 이 쉘을 실행하는 것이다 포너블의 문제상황 이해하기 프로그램은 반드시 인터넷과 연결되어있음 -> 공격자가 “남의 컴퓨터”에 다가갈 수 있다. 인터넷 어딘가에 위치한 외부 즉 remote환경에서 내부 환경으로 침투하여 들어가는 것이 ctf pwnable에서 출제되는 문제상황이다 컴퓨터 구조 이해하기 컴퓨터는 크게 계산하는 부분과 저장하는 부분으로..