해킹 기법/웹

[해킹 기법] 웹 컨텐츠 탐색 - 웹사이트 구조 파헤치기

solo-infosec 2025. 3. 16. 11:38
반응형

웹해킹의 첫 단계

웹해킹의 첫 단계는 무엇일까? 웹해킹을 하기 위해선 해킹하려는 웹사이트가 무슨 구조를 가지고 있고 어떻게 돌아가는지 파악해야 된다. 그리고 당연하게도 웹사이트 구조를 파악하기 위해선 웹사이트에 무슨 디렉토리와 파일이 존재하는지 확인해야 된다. 웹사이트의 디렉토리와 파일을 확인하는 해킹 기법, 그것이 바로 웹 컨탠츠 탐색 (Web Content Discovery)다.
 

웹 컨텐츠 탐색 (Web Content Discovery)

웹 컨탠츠 탐색 (Web Content Discovery)은 웹사이트에 방대한 양의 디렉토리, 파일을 요청해서 받는 응답을 기반으로 웹사이트에 존재하는 디렉토리와 파일을 파악하는 해킹 기법이다. 이 과정에서 단순히 공개적으로 노출된 웹사이트의 디렉토리와 파일 뿐만이 아니라 접근 불가능한 디렉토리와 파일, 숨겨진 디렉토리와 파일, 민감한 정보를 가진 디렉토리와 파일 역시 파악할 수도 있다. 물론 이런 경우는 관리가 개판이거나 운이 좋아야 한다. 실제로 HackerOne 같이 버그바운티 플랫폼에서도 민감한 정보가 담긴 파일이 노출된 경우도 종종 볼 수 있다. 웹 컨텐츠 탐색은 dirbuster, gobuster, dirb, feroxbuster 등 다양한 툴을 사용해서 간단하게 실행할 수 있다.
 

웹 컨탠츠 탐색 (Web Content Discovery)이 중요한 이유

1. 웹사이트 구조를 파악할 수 있다.
웹 컨탠츠 탐색을 통해 공격자는 접근 가능한 디렉토리와 파일, 접근 불가능한 디렉토리와 파일, 숨겨진 디렉토리와 파일들을 파악할 수 있다. 이런 정보를 기반으로 공격자는 웹사이트 구조를 파악하고 어떤 식으로 공략할 지 전략을 세울 수 있다. 물론 냅다 이런 저런 악성 페이로드를 남발할 수 있지만 그냥 의미없는 삽질로 끝날 가능성이 농후하다. 개발자와 관리자는 호구가 아니다.
 
2. 적용된 기술에 대한 정보를 파악할 수 있다.
웹사이트에 적용된 기술에 대한 정보를 수집하는건 정말로 중요하다. 무슨 기술이 적용됐는지 파악할 수 있다면 웹사이트 설정, 민감한 디렉토리와 파일, 기본 관리자 계정 등 수많은 정보를 추가적으로 수집할 수 있다. 그리고 만약 해당 웹페이지에 적용된 기술의 버전이 취약한 버전이라면 곧바로 그 취약점을 공략하면 된다. 이래서 패치가 중요하다
 
3. 민감한 디렉토리, 파일을 찾을 가능성이 있다.
공격자는 웹 컨탠츠 탐색을 통해서 민감한 디렉토리나 파일을 찾을 가능성도 있다. 예를 들면, 공격자가 설정 파일에 접근해서 공격에 악용할 수 있는 정보를 수집할 수도 있다. .git 디렉토리가 존재하면 공격자는 Git Repository를 덤핑해 소스코드에 접근할 수도 있다. 뜬금없이 백업 파일이 나올 수도 있다. 물론 이런 경우들은 아주 많은 운이 따라야 된다
 

실습

좀 더 직관적인 이해를 위해서 Jenkins라는 CI/CD 서버를 로컬호스트에서 구동하고 웹 컨텐츠 탐색을 진행해 봤다. (원활한 실습 진행을 위해서 의도적으로 설정을 변경하고 취약한 파일을 노출시켰다.)
 

http://localhost:8080

 
 

gobuster dir -u http://localhost:8080 -w ./web_wordlist -b 403

 
gobuster란 툴을 사용해서 웹 컨탠츠 탐색을 진행했다. 요청한 디렉토리, 파일 목록과 해당 요청에 대한 HTTP Response Code (200, 302, 400, 404)를 확인할 수 있다. 이를 통해 접근 가능한 디렉토리, 페이지, 파일이 무엇인지 어느 정도 파악이 가능하다. (간단한 실습을 위해서 재귀적인 탐색은 진행하지 않았다) 자세히 보면 config.xml 파일에 접근 가능하다는 것도 확인 가능하다. config.xml 파일을 요청해 보자.
 

http://localhost:8080/config.xml

 
Jenkins의 설정 파일이라는 것을 확인할 수 있다. signup, captcha, useSecurity 등 자잘한 설정 정보와 함께 Jenkins의 버전이 2.441이라는 것이 확인 가능하다. Jenkins 2.441은 Arbitrary File Read (임의 파일 읽기) 취약점을 가지고 있는 버전이다.
https://nvd.nist.gov/vuln/detail/cve-2024-23897

NVD - cve-2024-23897

CVE-2024-23897 Detail Description Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable a feature of its CLI command parser that replaces an '@' character followed by a file path in an argument with the file's contents, allowing unauthenticat

nvd.nist.gov

 

결론

웹 컨텐츠 탐색은 웹해킹의 제일 기본적인 테크닉이다. dirbuster, gobuster, feroxbuster 같은 툴을 이용하면 초보자들도 명령어 한줄로 원하는 웹사이트의 디렉토리와 파일을 찾아낼 수 있다. 만약 웹해킹에 관심 있다면 웹 컨텐츠 탐색에 익숙해지도록 하자.
 

Feroxbuster 사용법

https://solo-infosec.tistory.com/10

[해킹툴] Feroxbuster - 고성능 웹 컨텐츠 탐색 툴

FeroxbusterFeroxbuster는 웹사이트 탐색에 사용할 수 있는 웹 컨텐츠 탐색 툴이다. Feroxbuster 말고도 Gobuster, Dirbuster, Dirb 등 아주 많은 웹 컨텐츠 탐색 툴을 검색하면 쉽게 찾을 수 있다. Feroxbuster는 다른

solo-infosec.tistory.com

 
 
 
 
 

 
 

반응형