이번 Lesson은 접근제어 취약점입니다.

말 그대로 권한이 없는 혹은 부족한 상태에서 특정 객체나 자원에 접근할 수 있는 취약점입니다.



➀ 접근제어 매트릭스의 사용 (Using an Access Control Matrix)

무작위 대입법으로 Account권한을 가진 계정을 검색하는 간단한 문제입니다.

1. 계정에 따른 리소스 접근권한을 확인하는 화면입니다.

사용자 이름과 리소스를 조합하여 확인할 수 있습니다.


2. 4명의 사용자, 6개의 리소스를 조합하여 총 24가지의 무작위 대입법을 통해 Account Manager의 권한을 가진 Larry계정을 찾아내었습니다.




➁ 접근통제기반 경로우회 (Bypass a Path Based Access Control Scheme)

접근통제기반 방식에서 상대경로로 권한이 없는 파일을 직접 참조하는 문제입니다.

우리가 참조할 목표파일은 tomcat/conf/tom-conf/tomcat-users.xml입니다.


경로에 대해 잠깐 짚고 넘어가겠습니다.

경로의 종류에는 크게 절대경로와 상대경로가 있습니다.

절대경로는 말 그대로 어디에서나 통용되는 고유경로(FullPath)를 의미합니다.

최상위(root)디렉토리는 /

이고, 일반적으로 절대경로는

루트부터 모든 경로를 써주는 것이 일반적입니다.


상대경로는 현재파일이나 폴더의 위치에서 ../ ./ / 등으로 정의되는 가변적인 경로입니다.

현재 디렉토리는 ./ 혹은 생략

부모 디렉토리는 ../

입니다.


예를들어 현재 파일의 위치가 C:\a\b\d\e.jsp라고 가정한다면,

e.jsp에서 C드라이브에 존재하는 x.jpg파일에 접근하기 위해선

../../../x.jpg

혹은

c:\x.jpg

를 입력하면 됩니다.


상대경로를 통한 권한이 없는 객체직접참조 문제입니다.

1. 상단부에는 현재 페이지가 존재하는 시스템 전체경로,

중단부에는 선택할 수 있는 파일의 리스트와 조회버튼,

하단부에는 선택한 파일의 시스템 경로가 출력됩니다.

중단부의 View File을 선택하면 선택한 파일이 화면에 출력됩니다.

AccessControlMatrix.html이라는 파일을 선택하여 내용을 조회해보겠습니다.


2. 서버로의 요청메세지를 프록시 툴로 캡쳐한 결과 HTTP패킷의 BODY부에 File="AccessControlMatrix.html"형태로 조회할 파일명이 파라미터로 넘어가는 것을 볼 수 있습니다.

이제 상대경로를 통해 이 파라미터 부분을 조작할 것입니다.

프록시 툴인 BurpSuite의 Intruder나 Repeater기능을 사용해도 좋습니다.

우선 목표파일의 위치는 tomcat/conf/tom-conf/tomcat-users.xml입니다.


현재 페이지의 경로는

c:/Users/Administrator/Desktop/WebGoat/WebGoat-5.4/tomcat/webapps/WebGoat/lesson_plans/English

입니다.

빨간색으로 표시된 부분의 tomcat폴더의 하위에 목표파일이 존재하므로 총 4번 상위폴더로 이동한 뒤 conf폴더 진입, tom-conf폴더에 진입하면 목표파일이 있을 것입니다.


따라서, 파라미터에 File=../../../../conf/tomcat-users.xml

를 입력한다면 tomcat-users.xml이 출력되어 해당 Lesson이 종료되게 됩니다.



다른 카테고리의 글 목록

Web Security/War_Game 카테고리의 포스트를 톺아봅니다