본문 바로가기

web/웹 해킹 및 보안

OWASP 취약점 정리(4/10) 취약점 직접 객체 참조




웹 취약점 종류(OWASP TOP 10)

1. 어떤 상황에서 이 취약점이 발생하는지

2. 어떻게 공격 해야하는지

3. 취약점이 미치는 영향

 

1. OWASP?

Open Web Application Security Project의 약자이다.

OWASP란 오픈소스 웹 애플리케이션 보안 프로젝트로주로 웹에 관한 정보노출,

악성 파일 및 스크립트보안 취약점 등을 연구한다.


2.4 insecure Direct Object References (취약점 직접 객체 참조)


직접 객체 참조는 개발자가 파일, 디렉토리, DB 키와 같은 내부 구현 객체를 참조하는 것을 노출시킬 때 발생한다. 접근 통제를 통한 확인이나 다른 보호 수단이 없다면, 공격자는 노출된 참조를 조작하여 허가 받지 않은 데이터에 접근 할 수 있는 취약점이다.

 

예제 코드)

참조하는 소스코드가 이렇게 있다고 가정 할 때

 

Get 방식을 이용해 파일을 읽는다 (참조한다).

정상작동 url?file=./a.php



취약점 직접 객체 참조 이용

?file= ../../../etc/passwd


파일 경로에 대해 따로 필터링을 하지 않는다면, 다른 파일도 참조하여 읽을 수 있게 된다여기서는 대상 웹 페이지 최상위 폴더가 /var/www/html이므로 ../../../를 이용해서 root 폴더 까지 접근하고 etc/passwd 파일을 성공적으로 참조하여 읽게 되었다.



영향

파라미터에 의해 참조되는 모든 데이터를 침해할 수 있다. 객체 참조가 예측 불가능 한 것이라면 공격자가 모든 가용할 수 있는 종류의 데이터에 접근 할 수 있다.