취약점 개요
: 사용자 로그인 시 항상 일정하게 고정된 세션 ID 값을 사용하는 취약점으로 로그인 시 세션마다 새로운 세션ID가 발행되지 않는다면 세션 ID를 도용한 비인가자의 접근 및 권한 우회가 가능하므로 세션 ID의 타임아웃 기능을 설정하고 세션 ID의 고정 사용을 방지하도록 설정함.
판단기준
: 양호 - 로그인별 세션 ID가 발행되는 경우
: 취약 - 로그인 세션 ID가 고정 사용되는 경우
보안설정방법
: 인증 기능에서 사용자가 인증을 받은 후에 새로운 세션 ID를 할당 받도록 발행함
모의해킹 시나리오 (부정확함, 수정 필요)
1. 해커는 웹(Target)서버에 접근하여 정상 세션을 발급받는다.
2. 해커는 희생자(admin)에게 해커가 받은 정상 세션을 강제로 Set-Cookie하고 웹으로 리다이렉트 하는 스크립트를 메일로 전송한다.
3. 희생자(admin)는 해커가 보낸 메일을 확인하고 스크립트를 실행한다.
4. 희생자(admin)는 웹(target)에 접근할때 해커와 같은 세션으로 접근하게 된다.
5. 희생자(admin)는 정상적으로 관리자 페이지에 로그인한다.
6. 관리자 페이지에 로그인(인증절차)을 하여도 세션이 로그인 전후로 변하지 않는다.
7. 해커와 희생자는 동일한 세션을 사용하기 때문에 해커는 새로고침(F5)을 할때 관리자 권한을 가져온다.
조치 방안
- 로그인 전후로 세션을 재 발급한다.
[PHP]
<?php
session_start();
$old_sessionid = session_id();
session_regenerate_id();
$new_sessionid = session_id();
echo "Old Session : $old_sessionid <br/>";
echo "New Session : $new_sessionid <br/>";
print_r($_SESSION);
?>
- IP를 체크하여 멀티세션을 막는다.
참고 URL
- http://reiphiel.tistory.com/entry/session-fixation-vulnerability
Popular Posts
-
/* PHP Version URL CMD WebShell */ /* 사용법 : hxxp://URL/cmd.php?cmd=명령어 */ <? echo " <FORM ACTIO...
-
1. XSS 취약점 이란 대부분의 웹 해킹 기법은 웹 서버 설정 혹은 프로그램의 취약점을 공격하지만, XSS는 사용자를 공격하는 기법이다. 예를 들어 악성 코드가 포함된 글을 읽는 순간 악성 프로그램이 설치되거나 쿠키 혹은 세션 정보가 공격자에게 ...
Recent Posts
Powered by Blogger.