Lab: JWT authentication bypass via unverified signature Writeup
·
Writeup
JWT는 헤더, 페이로드, 시그니처 이렇게 3가지로 이루어져 있다.이번 랩은 세션을  JWT 기반으로 관리하고, JWT의 시그니처를 검증하지 않는 취약한 서버다세션 토큰을 수정해서 admin 패널을 탈취한 후 carlos 계정을 삭제하는 시나리오다  랩 설명에서 주어진 계정정보 wiener:peter로 로그인을 한다어드민이 아니라 일반 유저 권한이기 때문에 Burpsuite에 들어가서 로그인 파켓을 찾아보자repeater에서 변조하면 될 듯 시작하기 전에 JWT 토큰을 변경하기 위해서는 burpsuite의 확장자인 JWT Editor을 설치하자Extensions 탭에 들어가서 BAPP Store에서 찾을 수 있음  로그인에 해당하는 GET 메서드, /my-account?id=wiener 파켓을 살펴보면쿠..
웹해킹 취약점 실습 환경 Wizmall 도커Docker에서 구축하기
·
웹해킹
최근에 계속 보안 패치가 되는 웹 사이트는 방어대응이 많이 되어있어 공격하기가 쉽지 않음. 그래서 10년 전에 사용됐던 쇼핑몰 CMS를 예시로 취약점 분석을 해보겠음. PHP 언어로 작성되어 있는데 PHP 만의 특이한 취약점이 있어서 실제 블랙박스 모의해킹에도 도움이 된다고 한다. 10년 전에 사용된 웹사이트라서 지금 관점에서 보면 엄청 취약점이 많고 소스코드와 리소스가 다 노출되어 있어서 실습하기 매우 좋은 환경이다   확인되는 취약점이 100개도 넘고 File Download Vulnerability, SQLi, XSS, Open Redirection 등의 흔한 취약점도 많을 뿐만 아니라 PHP에서 발생하는 Type Confusion 취약점도 존재한다  도커 설치 자체는 어려운 점이 없으므로 설명 생..
웹 취약점 체이닝의 개념과 실제 버그 사례
·
웹해킹
XSS 취약점을 발견했다고 치면 단순히 스크립트 실행을 넘어서, 이 취약점으로 어떤 피해를 입힐 수 있는지를 보여주는 것이 좋다. (ex XSS공격의 영향으로 개발용 세션 정보가 실제 운영환경에서도 노출되는 경우)세션 탈취가 어렵다면 open redirect, zero-day 취약점 등으로 시스템에 직접 접근하는 방법도 쓸 수 있겠다 XSS의 주된 목적은 사용자의 세션 탈취이고, HTTP Only 등의 옵션으로 방지 조치 가능 하나의 취약점이 아니라 여러 취약점을 연계해서 파급력을 키우는 것→ 취약점 체이닝  2016년 Uber 우버에서 발견된 실제 취약점 셀프 XSS 공격은 일반적으로 공격자가 사용자를 속여 악성 코드를 브라우저의 DevTools 콘솔에 복사하여 붙여 넣도록 유도하는 것. 피해자 스스로..
[웹해킹] Authentication, Authorization, Input Validation 보안 매커니즘
·
웹해킹
인증 Authentication사용자가 본인이 주장하는 사람이 맞는지 확인하는 신원 증명과정사용자 이름과 패스워드의 조합이나 생체정보 등으로 신원확인 방식이 사용해서 권한을 가진 사용자만 시스템에 접근하도록 함.    세션관리에서 중요한 개념이 쿠키와 세션이 있는데 웹사이트에서 신원확인, 사용자 행동 추적에 사용(쿠키: 웹서버와 브라우저를 통해 사용자의 컴퓨터에 저장되는 텍스트파일로 사용자 식별 기능세션: 서버 측에 저장되는 사용자 정보로 브라우저에 저장되어 서버가 사용자의 세션 데이터 조회)사용자의 중요 정보는 서버에, 세션 아이디만 클라이언트 측에 저장된다면 면에서 쿠키보다 안전하고 우수  인가 Authorization 해당 사용자가 어떤 리소스나 서비스에 접근 권한이 있는지 확인, 작업 범위를 확인..
[웹해킹] HTTP 응답코드 종류, 프록시의 기능, Burpsuite의 주요 기능 소개
·
웹해킹
HTTP 응답코드 HTTP 응답코드를 통해 클라이언트의 요청이 서버에서 처리된 결과, 그리고 통신 상태를 이해할 수 있다200~OK, 클라이언트 요청이 성공적으로 처리됨300~클라이언트 요청 처리를 위해 더 많은 동작이 필요하다는 리다이렉션 상태, 예를 들어 302 Found는 리소스가 다른 위치에 있어 리디렉트 함400~클라이언트 요청에 문제가 있음(요청 형식, 인증 실패, 권한 부족) 400 Bad Request, 401 Unauthorize 인증 없음, 403 Forbidden 접근 권한 없음, 404 Not Found 요청한 리소스 없음500~서버에서 요청 처리하는데 문제 발생. 505 internal server error, 503 service unavailable 인증이 필요하지 않은 요청에..
[웹해킹] 클라이언트와 서버 통신 구조와 GET POST 메소드
·
웹해킹
사용자가 브라우저를 통해 요청을 보내면 서버로 전송된다. 이때 서버의 종류는 온프레미스/IDC센터/클라우드 등 다양 서버의 구성요소 클라이언트로부터 가장 먼저 요청을 받는 웹 서버가 있다. NGINX의 역할은 들어온 요청을 적절한 위치로 라우팅 하는 것.예를 들어 css, 이미지 파일같은 정적 콘텐츠를 요청하면 NGINX는 이를 찾아 바로 반환함.하지만 동적 컨텐츠를 요구할 때는 요청을 서버로 전달하는데 이때 Tomcat, django, Node.js 같은 프레임워크들이 사용들어온 요청을 처리하기 위해 필요한 데이터를 DB에서 찾거나 저장하는 등 접근을 한다. 처리가 완료되면 처리결과를 NGINX에 전달하고 NGINX는 클라이언트에게 결과 반환함. GET 요청클라이언트가 리소스를 요청할때 사용되는 h..