본문 바로가기
Hacking/bWAPP

Broken Authentication – Session & Cookie

by 알거음슴 2021. 6. 21.

Broken Authentication – Session Mgmt

Session

Web Site 에서 service를 제공할 때 사용자 정보를 저장하는 방법, ClientServer와 연결되어있고 브라우저를 닫아 Server와의 연결을 종료하기 전 까지를 Session이라 한다.

 

1. Session Mgmt – Administrative Portals (low)

This page is locked. HINT정보를 확인 시 URL을 확인하라는 내용을 볼 수 있다.

http://192.168.10.137/bWAPP/smgmt_admin_portal.php?admin=0

admin=0 이기 때문에 page locked 되어있는걸 확인할 수 있다 값을 변경해보자.

 

 

http://192.168.10.137/bWAPP/smgmt_admin_portal.php?admin=1

성공적으로 admin으로 로그인 됨을 확인할 수 있다.

 

 

2. Session Mgmt – Administrative Portals (medium)

This page is locked. HINT정보를 확인 시 Cookie를 확인하라는 내용을 볼 수 있다. Burp suite를 통하여 Cookie 값을 확인해보자.

Cookie: security_level=1; PHPSESSID=7f297fb1bb17152a8866d933a0566924; top_security=no; admin=0

Cookie 값의 끝의 admin=0 으로 지정되어있음이 확인된다. Forward 기능을 활용하여 값을 admin=1 로 변경하여 변조를 시도한다.

성공적으로 admin으로 로그인 됨을 확인할 수 있다.

 

 

3. Session Mgmt – Administrative Portals (high)

기존 bee 사용자로 로그인시 바로 unlocked 된다, 중단 매뉴중 Create user를 통해 사용자 생성 및 로그인과정을 진행 후 high level로 재 접속을 시도한다.

This page is locked. HINT정보를 확인 시 contact your dba 라는 메시지를 확인할 수 있다.

dba database의 관리자로 일반 사용자는 database의 값을 변경할 수 없고 관리자만 변경할 수 있기에 보안적 요소가 높음. 즉 관리자로 로그인시에만 해당 페이지에 접근이 가능하다.

 

 

Broken Authentication – Cookie

Cookie

Web Site 접근 시 방문기록을 남겨 사용자의 정보를 Clinet측에 남겨서 필요할 때 마다 재사용할 수 있는 기능. 사용자의 정보가 고스란히 남아있기 때문에 사생활 침해 및 보안취약적인 요소가 있다.

 

1. Session Mgmt – Cookies (low)

관리자의 Cookie값을 획득한 경우 Cookie값만으로 관리자 계정으로 접속하는 여부를 테스트 해볼 수 있는 페이지이다.

 

Bee-box 접속하여 기존 Injection page를 통하여 우선 관리자의 Cookie값을 확인해본다.

PHPSESSID=acf492edb024331f36fc6026fac991b8; security_level=0

Injection 통해서 간단히 Cookie값을 얻는다. Cookie값을 기반으로 변조를 통해 관리자의 계정으로 접속해본다.

 

Kail linux 접속 및 Bee 계정이 아닌 임의의 계정으로 로그인 및 Session Mgmt. - Cookies (Secure) 에 접속한다.

일반 사용자로 접속 이후 Cookies 버튼을 누를 경우 일반 사용자의 Cookie 정보가 출력됨을 확인할 수 있다 burp suite를 통해 패킷을 잡고 Cookie 변조를 진행한다.

 

Cookie: security_level=0; PHPSESSID=70e001663b5ebb143ce922466352d451; top_security=no

기존 사용자의 Cookie 값을 사전에 얻은 관리자의 Cookie 값으로 변조 후 결과를 확인해본다.

 

Cookie: security_level=0; PHPSESSID=acf492edb024331f36fc6026fac991b8;

 

초기 일반 사용자로 접속한 Cookie값이 아닌 관리자의 계정으로 로그인 된 걸 확인할 수 있다.