- (A1) Broken Access Control - Hijack a session2023년 09월 29일 10시 00분 17초에 업로드 된 글입니다.작성자: IIIIIIIIIIIIIIIIIIIIl
자체적으로 세션 ID를 개발하는 애플리케이션 개발자는 보안에 필요한 복잡성과 무작위성을 통합하는 것을 종종 잊어버립니다. 사용자별 세션 ID가 복잡하고 무작위적이지 않은 경우 애플리케이션은 세션 기반 무차별 암호 대입 공격에 매우 취약합니다.
[그림1] Hijack a session 문제 화면
문제 내용은 개발자가 세션 ID로 사용하기 위해 자체적으로 개발한 ‘hijack_cookie' 값을 예측하여 로그인을 우회하는 것이 문제 핵심 내용입니다.
[그림2] 로그인 요청 화면
세션 ID를 추론하기 위하여 여러 번 요청을 수행하면 고정 값과 가변적인 값이 존재하며 파란색 값은 순차적으로 1씩 증가하다가 2가 증가되는 것을 확인할 수 있다.
HTTP/1.1 200 OK Connection: close Set-Cookie: hijack_cookie=3909267058997138295-1684047060279;
HTTP/1.1 200 OK Connection: close Set-Cookie: hijack_cookie=3909267058997138296-1684047099435;
HTTP/1.1 200 OK Connection: close Set-Cookie: hijack_cookie=3909267058997138298-1684047107428;
[그림3] 응답 결과
빨간색 값은 Unix에서 사용되는 Timestamp 값으로 추론하고 Epoch & Unix Timestamp 사이트에서 확인한 결과 추론한 것이 사실인 것을 확인할 수 있다.
[그림4]Unix Timestamp 확인
순차적으로 증가하는 값 이외에 2로 증가한 이전 값이 누군가 사용한 세션인것을 추론할 수 있다.
예를들어, 1,2,3,5로 증가하면 ‘4’가 누군가 세션으로 사용된것으로 추론할 수 있고 뒤에 있는 Timestamp를 무차별 대입하여 로그인 타이밍 시점을 확인하여 검증할 수 있다.
최종적으로 요청 값과 응답 값을 분석하여 중간에 사라진 ‘534’값이 사용된 세션ID로 추론하고 나머지 Timestamp에 무차별 대입 공격을 수행하면 문제를 풀 수 있게된다.
1번째 : 3909267058997138533-1684050632267
2번째 : 3909267058997138535-1684050636203
공격값 : 3909267058997138534-1684050632267
[그림5] 무차별 대입 설정
[그림6] 문제풀이 결과 요청/응답 값
'웹애플리케이션 해킹 > 해킹 실습하기' 카테고리의 다른 글
(A2) Cryptographic Failures- Crypto Basics (0) 2023.09.29 (A1) Broken Access Control - Missing Function Level Access Control (0) 2023.09.29 (A1) Broken Access Control - Insecure Direct Object References (0) 2023.09.29 WebGoat 소개 (0) 2023.09.29 모의해킹 학습 플랫폼 종류 (0) 2023.09.29 다음글이 없습니다.이전글이 없습니다.댓글