WEB Basic Tools

유서정·2024년 4월 22일

모의해킹

목록 보기
1/6

WEB Basic

웹서비스 구조

웹 클라이언트와 웹 서버로 구성

  • 웹 클라이언트
    html, javascript, css 로 구성
  • 웹 서버
    데이터베이스 php, java, spring boot 등

HTTP Method / HTTP Status Code

https://velog.io/@seojungyoo/HTTP-Protocol

Tools

⚡Burp Suite

모의해킹 등에 사용되는 보안 어플리케이션
Proxy기능으로, HTTP Traffic을 중간에 가로채 요청 확인 및 변조 가능

주요기능

  • Dashboard : 현재 활동을 모니터링하여 보여주는 기능
  • Target : 접근 URL에 대한 상세정보 조회 및 Scope 설정
    Target Scope : define exactly what hosts and URLs consitute the target for your currnet work. This configure affects the behavior of tools throughout the suite
  • Proxy : 요청, 응답 패킷 정보
  • Intruder : 요청 패킷에서 특정 값에 대한 자동화 공격 수행
  • Repeater : 요청 값 재전송 (이전에 보냈던 패킷을 다시 보낼 수 있음?)
  • Decoder : 암호화 및 복호화

⚡Chrome DevTool

웹 페이지에 대한 개발, 테스트,디버깅 등을 수행하는데 사용되는 개발자 도구
Front-End에서 작업을 수행하며, Client 코드 분석에 최적화

주요기능

  • Elements : 현재 위치에서 있는 Front-End 코드 출력
  • Console : 코드 정보 및 에러 메시지 등 표시
  • Sources : 접근한 도메인의 Front-End 소스코드 정보
  • Network : 요청/응답 패킷에 대한 정보
  • Application
    접근한 도메인의 저장소 정보(Cookie 값 등)

⚡Cyber Chef

데이터분석 및 변환 오픈소스 (디코더, 인코더)

https://gchq.github.io/CyberChef/

⚡Web Hook

웹 개발 시, 사용자 정의 HTTP CallBack

https://www.webhook.site/




Cookie/Session⭐

웹사이트 접속 시, 웹 브라우저에 저장되는 데이터

#상세설명

▪ 쿠키 값은 클라이언트 웹 브라우저에 저장되어 사용되고 서버에 데이터 요청 시, 쿠키 값을 포함하여 서버에 전송
▪ 사용자 웹 브라우저에 저장하기 때문에, 임의 사용자가 쿠키 값을 조작해서 서버에 데이터 요청을 전송할 수 있음

쿠키 변조 실습

Session

클라이언트가 웹 서버에 접속(연결)해있는 상태

서버에 사용자 인증 정보를 저장하고, 세션 ID를 생성(난수값)하여 각 클라이언트에 전달
=> 클라이언트는 서버에 요청을 전송할 때 마다 할당 받은 세션 ID로 인증

쿠키변조에 의해, 클라이언트가 인증 정보를 변경할 수 없도록 세션을 사용

#상세설명

▪ 세션은 서버에 저장되어 사용되고 데이터에 접근할 수 있는 랜덤한 값(세션ID)을 생성후 클라이언트에 전송
▪ 클라이언트는 웹 서비스를 사용할 때, 서버로부터 전달받은 세션값을 이용해서 이용자인증 및 서비스에 접근할 수 있는 권한을 받음

https://velog.io/@seojungyoo/HTTP-Protocol#cookie--session-

Session Hijacking

공격자가 이용자의 세션 ID를 획득해, 해당 이용자처럼 행동할 수 있다.

웹 서비스에 로그인한 이용자의 세션 ID를 탈취
※ 웹 서비스의 기능 : 이용자의 개인정보, 서비스 이용내역 등 모든행위 수행 가능
▪ 웹 서비스에서 세션 탈취웹 취약점 유형과 연계하여 발생시킬 수 있음

[동작과정]

‣ Client 최초 로그인 과정을 통해, 서버에서 이용자 계정에 대한 세션ID를 할당받아 인증에 사용
‣ 이용자는 할당 받은 세션 정보를 사용 해서, 웹 서비스 기능을 사용
공격자는 웹 서비스의 취약점을 이용하여, 이용자의 세션을 탈취해 이용자 계정을 획득 및 서비스 기능 사용

[Session Hijacking 실습]

초기 세션 ID값이 12300이므로 이용자의 세션 범위 12300~12400 예상

IDOR⭐

IDOR (Insecure Direct Object References) 취약점
== 단순 파라미터 변조 취약점
== 안전하지 않은 직접 객체 참조

응용 프로그램이 사용자 제공 입력을 기반으로 서버 내부에 구현된 객체에 대한 직접 액세스를 제공할 때 발생

🚫 직접적인 객체 참조를 조작
⇒ 민감 데이터에 액세스 가능, ex.시스템의 리소스(예: 데이터베이스 레코드 또는 파일)
⇒ 저장된 정보를 수정, 삭제 등 행위도 수행 가능

모두 불충분한 접근 제어 및 검증 과정의 문제점으로 인해 발생

발생 원인

객체에 대한 불충분한 접근 제어 및 사용자에게 제공받은 입력 값에 대한 검증이 미흡

  • 직접 객체 참조 & 부적절한 접근제어

    이용자 입력을 통해 참조된 객체에 대한 접근 제어 설정이 미흡한 경우, 권한없는 사용자가 중요한 객체에 접근할 수 있음
    ❗ 권한 검증 로직 누락 및 미구현으로 인해 발생

    예시

    ⑴ 웹 서비스에서 이용자가 자신의 정보를 조회하는 페이지 접근
    ⑵ 이용자는 특정 파라미터 값으로, 이용자 정보를 조회
    ⑶ 서버는 전송 받은 파라미터값을 기반으로 접근 및 이용자 정보 제공

  • 예측가능한 객체ID

    객체를 참조하는 ID값이 예측할 수 있거나, 순차적으로 발급되는 경우 추측하여 접근할 수 있다.
    ❗특정한 값을 공격자가 추측할 수 있어 취약점이 발생
    ❗서버에 전달하는 값에 대해서 이용자 검증 누락으로 인해 발생

    예시

    ⑴ 은행 서비스를 제공하는 웹 서비스에서, 공격자가 자신의 거래내역을 조회
    ⑵ 거래내역 조회시, 시퀀스 넘버를 변조해 다른 번호로 거래내역 조회 시도
    ⑶ 서버는 전송 받은 시퀀스 넘버 값에 대해 이용자 검증없이 처리하여, 서버에서 거래내역 제공

IDOR 취약점 실습

#1

Intruder 이용 방법

잡은 패킷을 Intruder로 보냄

변조하고 싶은 Payloads 값을 잡음

대입할 값 지정

Length를 보고 특이점이 있는 request에 대한 response 조회

#2

#3

게시글 수정 기능을 이용하여 FLAG 획득

profile
information security

0개의 댓글