스터디/웹해킹

웹해킹 1 (path traversal, Access control)

hel1oworld 2026. 3. 19. 18:14

Path traversal (= directory traversal)

1. 정의 : 사용자 입력값을 통해 애플리케이션의 파일 경로를 조작하여 허가되지 않은 디렉터리나 파일에 접근하는 취약점

2. 원리 : 패러미터 입력 값에 경로에 대한 내용(../../../../etc/passwd)을 넣어 임의로 경로를 지정하는 방법

3. 실습

URL에 /image?filename=../../../../../etc/passwd 를 입력한 것을 확인할 수 있음.

이로 인해서 Request창에 GET /~/ etc/passwd를 요청함(브라우저)

Response로는 content-type으로 image/jpeg 형식을 보내줬지만, 실제 내용은 하단에 passwd관련 내용이 txt로 포함되어 있음


Access control

1. 정의 : 인증된 사용자가 자신의 권한을 벗어나 타인의 데이터를 조회, 수정, 삭제하거나 관리자 기능을 실행하는 취약점

- 2021년 OWASP top1 등극했던 멋진 녀석

2. 용어 정리

Vertical privilege escalation : 접근 권한 없는 사용자가 접근하는 것

3. 실습

3.1. Unprotected functionality

robots.txt같은 페이지를 막아두지 않으면 아래와 같은 txt파일이 나옴.

robots.txt는 ' 웹사이트 루트 디렉토리에 위치한 텍스트 파일'인데 봇 크롤링 허용하는 범위를 보여줌.

해당 파일이 없으면 봇 크롤링이 모든 사이트 가능하기 때문에 일반적으로 존재함. 대신 봇에게 강제성은 없는 파일이라  민감정보 보호하는 완벽한 수단은 아님.

3.2. Unprotected functionality (cont)

burp suite 프로그램으로 통신을 확인해보면 아래 이미지와 같이 숨겨진 페이지가 보인다.

이를 통해서 admin 페이지를 접속할 수도 있다.

3.3. Parameter-based access control methods

burp suite의 proxy intercept를 이용해서 cookie값을 변경하고 forward하여 관리자 페이지에 접근하는 원리

URL에 홈페이지주소/admin 형태로 접속하면 접근 불가.

아래 이미지(내가 한거)에서는 id도 administrator로 변경했지만, 실제로는 필요없음. cookie만 변경.

나는 매번 cookie값을 true로 변경해주었지만, solution을 보니 브라우저에서 cookie를 true로 변경하면 이후에는 변경할 필요가 없어지는 듯? 이에 대해서는 추가 공부 필요..

3.4. Horizontal privilege escalation

문제에서 carlos GUID를 찾으라길래 처음엔 login 화면에서 알고있는 계정으로 로그인해서 찾으려고 했었음 -- 대실패...

solution을 보니 게시물 등에서 carlos GUID를 찾는 것이었음. 즉, 게시물 등 다양한 곳을 확인해야함.

게시물의 html에 작성되어 있는 userID

여기서 찾은 userID 값을 proxy intercept에서 값을 변경(아래 이미지 참고)

그러면 비밀번호 없이 동등한 권한의 계정을 조회할 수 있다. (Horizontal privilege escalation)

3.5. Horizontal to vertical privilege escalation

위에서 사용한 방법과 비슷하게 할 수 있음. id를 변경해서 administrator의 비밀번호 조회 가능. 이를 통해 로그인하기

 


더보기

- 모르는 영단어 정리

vulnerability 취약점

arbitrary 임의의

retrieve 검색하다

consecutive 연이은, 연속적인

constraint 강제, 제약

brute-force 무차별 대입

conceale 숨기다

obscurity 어둠, 숨기다 (ob + scurity로 외워보자)

obfuscate 모호하게 하다 --- obfuscated 난독화된

tamper 조작하다