본문 바로가기

웹해킹

웹해킹 #11 접근 통제 취약점 공격

접근 통제가 제대로 이루어지지 않아 공격자가 다른 사용자나 관리자 권한이 필요한 리소스에 접근할 수 있는 되는 것

 

- 취약한 접근 통제 리스크 사례

URL이나 파라미터를 조작하여 다른 사용자의 리소스에 접근하거나 허용되지 않은 기능을 실행할 수 있는 경우
② 적절한 인증 및 인가 과정을 거치지 않고 관리자 페이지에 접근할 수 있는 경우
③ 디렉터리 트래버설 취약점과 같이 웹 디렉터리 경로를 벗어난 호스트 내부 경로의 리소스에 접근할 수 있는 경우

1. 안전하지 않은 직접 객체 참고 (IDOR 공격)

- 공격자가 요청 메시지의 URL이나 파라미터를 변경하여 정상적으로 허용되지 않은 기능을 실행하거나 다른 사용자의 리소스에 접근할 수 있는 공격
-
서버 쪽에서 입력값 검증을 소홀히 할 경우 IDOR에 취약해지는 경우 많음

IDOR 공격

- 요청 메시지를 통해 물품의 가격이 전달될 때, 검증이 서버 쪽에서 수행되지 않으면 공격자는 자신이 원하는 가격으로 변경하여 구매 가능해짐

 

실습 : 버프 스위트의 인터셉트 기능을 이용하여 POST 요청의 바디 부분에 전달되는 파라미터를 조작하여 물건의 가격 변경

IDOR 실습 페이지

- 요청 메시지를 확인하기 위해 Proxy-Intercept 기능을 활성화한 후 Confirm 버튼을 눌러 요청 인터셉트

- 요청 메시지의 바디에서 ticket_quantity(구매하고자 하는 티켓의 양), ticket_price(티켓 가격), action 파라미터가 전달되고 있음
-
웹 페이지에서 사용자가 티켓 가격을 변경할 수는 없지만, ticket_price 파라미터를 통해 티켓 가격 정보가 전달됨
->
요청 메시지의 파라미터 조작 후 Forward로 요청을 전송!

IDOR 공격으로 티켓 공짜 주문 가능

-> 조작 성공

2. 관리자 페이지 인증 우회

- 관리자 페이지가 admin, admin.php, admin.jsp, manager, system 등과 같은 URL로 되어 있어 쉽게 추측할 수 있는 경우, 관리자 페이지의 URL을 직접 요청하여 리스크가 발생할 수 있음
-
사용자가 이러한 관리자 페이지에 접근했을 때 해당 사용자가 관리자 권한이 있는지 확인 안할 시 웹사이트에 심각한 영향 끼침

 

실습 : http://192.168.56.102/bWAPP/admin 를 입력하여 관리자 포털 메뉴로 접속

 

bWAPP의 관리자 포털 페이지


-
관리자 접속 페이지에 접근하여 관리 기능과 중요한 정보들이 노출될 위험성이 있음

+ /dvwa/setup.php URL에 접속하면 로그인을 하지 않아도 데이터베이스를 초기화할 수 있어 중요한 데이터가 손실되거나 불필요한 시스템 정보가 노출될 위험성이 있음

DVWA SETUP 페이지 접근

 

3. 디렉터리 트래버설 취약점 공격 실습

- 웹 애플리케이션의 파라미터 중에 파일 경로를 그 값으로 지정하는 파라미터가 존재할 수 있음
→공격자가 해당 파일의 경로를 조작하여 개발자가 의도하지 않은 경로에 있는 파일이 지정되도록 시도할 수 있음 ex) LFI 사례

- 상위 디렉터리의 경로를 지정할 때 사용되는 ‘../’ 와 같은 문자열의 입력을 허용함으로써 발생하는 취약점

 ../../../etc/ 와 같은 방법으로 루트 디렉터리를 거쳐 다른 디렉터리를 지정할 수 있게 되므로 호스트 내부의 모든 파일에 접근이 가능해짐

 

실습 : 디렉터리 트래버설 공격으로 호스트 내부 파일의 내용 확인

 

- 실습 페이지의 URL에서 page 파라미터에 message.txt가 지정되어 전달되고 있음

-> page 파라미터에 지정된 파일의 내용을 웹페이지에 출력해주는 페이지
-> page
파라미터를 다른 파일로 지정하면 호스트 내부 파일의 내용도 읽을 수 있음

- bWAPP/directory_traversal_1.php?page=../../../etc/passwd 로 변경하여 요청
(../
많이 입력해도 결국 상위 디렉터리는 루트이므로 상관없음)

- /etc/passwd 파일 내용 출력됨 -> 디렉터리 트래버설 공격을 이용하여 호스트 내부 파일 접근!

4. 접근 통제 취약점 공격 대응 방안

IDOR 공격 대응

- 웹 애플리케이션은 사용자로부터 전달되는 모든 입력값을 신뢰 X
  →
입력값 검증 (ex. 화이트리스트 검증)

- 클라이언트로부터 전달받을 필요가 없는 정보는 웹 애플리케이션 내부에서 직접 설정하여 불필요한 파라미터 조작 가능성을 원천 차단

 

② 관리자 페이지 우회 공격 대응

- 서버가 제공하는 모든 기능에는 각 기능을 요청하는 사용자가 해당 기능을 실행할 수 있는 적절한 권한을 가지고 있는지 확인하는 루틴이 필요특히, 관리자 기능이나 RBAC(Role Based Access Control, 롤 기반의 접근 제어) 기능이 구현되어 있으면 더욱 철저한 검증 필요

- /admin/과 같이 누구나 쉽게 추측할 수 있는 디렉터리 사용 지양
-
관리자 인터페이스를 별도의 포트 번호에서 제공
-
관리자 메뉴는 HTTPS 프로토콜을 이용하도록 구현하여 전송되는 데이터가 노출되지 않도록 한다
-
웹 애플리케이션 외부적으로 특정 IP 범위를 지정하여, 지정된 사용자만 관리자 메뉴에 접근할 수 있도록 접근 통제 구축

 

③ 디렉터리 트래버설 공격 대응

- 입력값 검증 (ex. 화이트리스트 검증이나 ../와 같은 문자열을 차단하는 블랙리스트 검증)
- http://
같이 프로토콜 이름이 입력되는 것을 차단하여 원격에 있는 파일을 지정 차단