- [ 웹애플리케이션 해킹/해킹 실습하기 ](A1) Broken Access Control - Missing Function Level Access Control2023-09-29 10:19:561번 문제 소개 HTML, CSS 또는 javascript를 사용하여 사용자가 일반적으로 액세스하지 않는 링크를 숨길 수 있습니다. 문제를 풀기 위해서는 숨겨진 항목을 찾아 활성화 시키면 됩니다. [그림1] 문제 화면 브라우저 개발자 도구를 활용하여 소스코드를 살펴보면 숨겨진 요소를 찾을 수 있습니다. [그림2] 숨겨진 메뉴 숨겨진 매뉴를 활성화 하면 문제에서 요구하는 값을 찾을 수 있고 이를 입력하면 문제가 풀리게됩니다. 2번 문제 소개 이전 문제에서 설명한 것처럼 때때로 애플리케이션은 액세스를 제어하기 위해 클라이언트 측 컨트롤에 의존합니다. 이를 우회하는 문제입니다. 지난 문제에서 수집한 정보(숨겨진 메뉴 항목)에 있는 URL을 사용하여 사용자 목록을 가져올 수 있는지 확인합니다. 문제 설명 그대로..
- [ 웹애플리케이션 해킹/해킹 실습하기 ](A1) Broken Access Control - Insecure Direct Object References2023-09-29 10:17:211번 문제 소개 많은 액세스 제어 문제는 인증되었지만 권한이 없는 사용자의 공격에 취약합니다. Insecure Direct Object References 문제를 풀기 위해서는 일반 사용자 인증이 필요합니다. 이 경우 계정의 아이디와 비밀번호는 'tom'과 'cat'입니다. [그림1] 로그인 화면 2번 문제 소개 공격 측면에서 브라우저에서 보이는 데이터와 Raw 응답과 차이가 존재합니다. 즉 Raw 응답에는 브라우저 화면/페이지에 표시되지 않는 데이터가 있는 경우가 많습니다. [그림1] View Profile 실행화면 [그림2] 숨겨진 응답값 확인 [그림3] 문제풀이 결과 3번 문제 소개 우리가 작업 중인 애플리케이션은 프로필에 관한 한 RESTful 패턴을 따르고 있는 것 같습니다. 많은 앱에는 권한이..
- [ 웹애플리케이션 해킹/해킹 실습하기 ](A1) Broken Access Control - Hijack a session2023-09-29 10:00:17자체적으로 세션 ID를 개발하는 애플리케이션 개발자는 보안에 필요한 복잡성과 무작위성을 통합하는 것을 종종 잊어버립니다. 사용자별 세션 ID가 복잡하고 무작위적이지 않은 경우 애플리케이션은 세션 기반 무차별 암호 대입 공격에 매우 취약합니다. [그림1] Hijack a session 문제 화면 문제 내용은 개발자가 세션 ID로 사용하기 위해 자체적으로 개발한 ‘hijack_cookie' 값을 예측하여 로그인을 우회하는 것이 문제 핵심 내용입니다. [그림2] 로그인 요청 화면 세션 ID를 추론하기 위하여 여러 번 요청을 수행하면 고정 값과 가변적인 값이 존재하며 파란색 값은 순차적으로 1씩 증가하다가 2가 증가되는 것을 확인할 수 있다. HTTP/1.1 200 OK Connection: close Set-..
- [ 웹애플리케이션 해킹/해킹 실습하기 ]WebGoat 소개2023-09-29 09:54:01소개 WebGoat는 웹 어플리케이션 보안을 학습하는 데 사용되는 오픈 소스 웹 어플리케이션입니다. OWASP (Open Web Application Security Project)의 프로젝트 중 하나로, 웹 애플리케이션 보안 교육을 위한 도구로서 개발되었습니다. 실제 웹 어플리케이션에서 발생할 수 있는 다양한 보안 취약점과 해결 방법을 학습할 수 있습니다. 예를 들어 SQL Injection, Cross-Site Scripting (XSS), CSRF(Cross-Site Request Forgery)와 같은 보안 취약점을 경험해 볼 수 있으며 자체적인 웹 서버에서 동작하며, 자바 기반의 웹 어플리케이션으로 구현되어 있습니다. 학습자는 각 취약점에 대한 과제를 수행하고, 해당 취약점을 이용하여 어플리케이..
- [ 웹애플리케이션 해킹/해킹 실습하기 ]모의해킹 학습 플랫폼 종류2023-09-29 09:51:25모의해킹 학습 플랫폼 종류 해킹 학습 플랫폼은 학습자들이 보안 전문가가 되기 위해 필요한 기술과 지식을 습득할 수 있도록 돕는 취약한 예제 사이트로 다양한 해킹 교육 학습 플랫폼이 존재하지만, 주로 다음과 같은 특징을 가집니다. 취약점 시나리오: 학습자들은 다양한 취약점 시나리오를 실습해볼 수 있습니다. 이 시나리오는 실제 해킹과 유사한 상황을 제공하며, 학습자들은 이를 활용하여 실제 해킹 시나리오에서 발생할 수 있는 문제를 해결하는 방법을 배울 수 있습니다. 다양한 분야: 웹 애플리케이션, 네트워크, 모바일 애플리케이션, 클라우드 등 다양한 분야의 취약점을 다루고 있습니다. 학습자들은 이러한 다양한 분야에서 해킹을 경험하며, 보안 전문가로서의 능력을 향상시킬 수 있습니다. 보안 도구: 해킹 시나리오에서..
- [ 웹애플리케이션 해킹 ]웹브라우저 동작 방식2023-08-31 22:54:45웹브라우저 소개 및 주요 기능 웹 브라우저(Web Browser)는 사용자가 선택한 웹 리소스를 서버에서 요청하고 화면에 표시하는 역할을 합니다. 이 리소스는 HTML 문서, PDF, 이미지 등 다양한 유형일 수 있으며, 사용자는 URI(Uniform Resource Identifier)를 통해 리소스의 위치를 지정합니다. 브라우저는 HTML 파일을 표시하기 위해 HTML 및 CSS 사양을 따르며, 이러한 표준은 웹의 표준 조직인 W3C(World Wide Web Consortium)에서 관리합니다. 오늘날 주요 웹 브라우저는 다음과 같습니다. Google Chrome: 구글에서 개발한 웹 브라우저로, 매우 인기 있는 브라우저 중 하나입니다. 빠른 속도와 간결한 디자인을 제공하며, 크롬 웹 스토어를 통해..
- [ 웹애플리케이션 해킹 ]교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)2023-08-31 22:52:07교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)소개 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 웹 애플리케이션에서 다른 출처(Origin)의 자원에 접근할 수 있는 권한을 부여하기 위해 추가적인 HTTP 헤더를 사용하는 메커니즘입니다. "출처"란 프로토콜, 호스트, 포트 번호의 조합으로 구성되며, 웹 브라우저에서는 이 출처가 다를 경우 보안상의 이유로 기본적으로 리소스 접근을 차단합니다. 웹 애플리케이션은 자신과 다른 출처 간의 HTTP 요청을 실행할 때 CORS를 이용하여 접근 권한을 제어합니다. CORS는 웹 애플리케이션이 다른 출처의 리소스에 제한적으로 접근할 수 있는 권한을 부여하도록 하는 메커니즘을 제공합니..
- [ 웹애플리케이션 해킹 ]동일 출처 정책(Same-Origin Policy)2023-08-31 22:51:28동일 출처 정책(Same-Origin Policy) 소개 동일 출처 정책(Same-Origin Policy)은 서로 다른 출처에서 가져온 문서나 스크립트가 서로 상호 작용하는 것을 제한하는 중요한 보안 메커니즘입니다. 이는 잠재적인 악성 문서의 영향을 제어하여 공격 가능성을 줄이는 역할을 합니다. 예를 들어, 인터넷의 악의적인 웹사이트가 브라우저에서 실행되는 JavaScript를 통해 다른 타사 웹메일 서비스나 내부 회사 네트워크와 같은 다른 출처의 데이터에 접근하고 해당 데이터를 공격자에게 전송하는 것을 방지하여 보호합니다. 동일 출처 정책은 웹 보안을 강화하는 데 중요한 역할을 하지만, 때로는 웹 애플리케이션 개발에서 자원 공유와 관련된 어려움을 일으킬 수 있습니다. 이를 해결하기 위해 CORS와 같..
- [ 웹애플리케이션 해킹 ]인코딩(Encoding)2023-08-31 22:47:09인코딩(Encoding) 소개 웹에서 사용하는 인코딩(Encoding)은 텍스트 데이터를 컴퓨터가 이해하고 처리할 수 있는 형식으로 변환하는 과정을 의미합니다. 웹에서는 다양한 언어와 문자 체계가 사용되기 때문에, 이러한 다양성을 컴퓨터가 올바르게 해석하고 표시하기 위해 문자를 숫자로 변환하는 방식이 필요합니다. 가장 일반적으로 사용되는 문자 인코딩 방식 중 하나는 UTF-8(유니코드 변환 형식 8-bit)입니다. 이 방식은 전 세계의 거의 모든 문자와 기호를 지원하며, 다양한 언어를 효율적으로 처리할 수 있도록 설계되었습니다. 그 외에도 UTF-16, UTF-32 등의 다양한 인코딩 방식이 존재합니다. 웹에서는 HTML, CSS, JavaScript 등의 코드로 작성된 문서를 브라우저에서 해석하여 표시..
- [ 웹애플리케이션 해킹/OWASP Top 10:2021 ]A10:2021-Server-Side Request Forgery2023-08-31 22:08:02소개 본 취약점은 악의적인 사용자가 웹 어플리케이션 서버에서 특정 서버 또는 서비스에 요청을 보낼 수 있게 합니다. 이러한 요청은 서버 내부에서 실행되는 다른 서비스나 데이터베이스에 접근하는 데 사용될 수 있으며, 이를 통해 공격자는 서버를 제어하거나 민감한 정보를 유출시킬 수 있습니다. 취약점의 원인은 입력값 검증 또는 인증 부재로 일반적으로, 악의적인 사용자는 요청에서 사용할 URL을 조작하여 서버에 대한 접근 권한을 부여하는 방식으로 취약점을 이용합니다. 예를 들어, 사용자의 프로필 사진을 가져오는 기능을 가진 웹 어플리케이션이 있다고 가정해보겠습니다. 이 기능은 사용자가 업로드한 이미지를 가져오기 위해 사용자가 입력한 URL을 사용합니다. 그러나 이 입력값을 검증하지 않는다면, 악의적인 사용자는 ..