본문 바로가기
정보보호/정보보호학 개론 (2013, 백석대 이근호 교수님)

5-2. 인터넷 보안 : 구글 검색 및 파일 접근

by 규글 2024. 8. 7.

목표

1. 구글 검색엔진을 이해함

2. 검색엔진을 통해 정보를 수집하는 방법을 알아봄

3. 웹 해킹에서 파일 접근과 관련된 공격을 살펴봄

 

구글 해킹

- 웹 해킹을 하면서 많은 정보를 수집하는 유용한 방법이 검색엔진을 이용하는 것인데, 정보 수집 도구로 구글을 사용함

- 구글에서 제공하는 고급 검색 기능

검색 인자 설명 검색 추가 인자
site 특정 도메인으로 지정한 사이트에서 검색하려는 문자열이 포함된 사이트를 찾음 YES
filetype 특정한 파일 유형에 한하여 검색하는 문자가 들어있는 사이트를 찾음 YES
link 링크로써 검색하는 문자가 들어있는 사이트를 찾음 NO
cache 특정 검색어에 해당하는 캐시된 페이지를 보여줌 NO
intitle 페이지의 제목에 검색하는 문자가 들어있는 사이트를 찾음 NO
inurl 페이지의 URL에 검색하는 문자가 들어있는 사이트를 찾음 NO

 

site

- 특정 사이트만을 집중적으로 선정해서 검색

- wishfree.com 도메인이 있는 페이지에서 admin 문자열을 찾으려는 예

site:wishfree.com admin

 

 

filetype

- 특정 파일 유형에 대해 검색

- 검색어로 파일 확장자가 txt이고 패스워드라는 문자열이 들어간 파일을 검색한 예

filetype:txt 패스워드

 

link

- 특정 링크가 포함되어 있는 페이지를 검색

- 해당 주소를 링크하고 있는 웹 페이지 검색

link:www.wishfree.com

 

cache

- 구글에서 백업해둔 페이지를 검색

- 캐시된 페이지를 보여줌

cache:wishfree.com

- 관리자가 자신이 관리하고 있는 웹의 취약점을 확인하여 이를 수정하더라도, 가끔 검색 엔진에 의해 백업된 데이터에 취약점 정보가 남는 경우가 있어서 관리자도 검색 엔진에 백업된 자신의 사이트를 살펴볼 필요가 있음.

- 노출되면 안되는 정보가 백업되어 있을 경우에는 이를 삭제해달라고 정식으로 요청해야 함.

 

intitle

- 디렉토리 리스팅 취약점이 존재하는 사이트를 쉽게 검색

intitle:index.of admin

 

inurl

- site와 유사한 기능

- URL에 문자열을 모두 포함하는 사이트 검색

inurl:login
inurl:wishfree.com


검색 엔진의 검색을 피하는 방법

- 서버의 홈 디렉토리에 robots.txt 파일을 만들어 검색할 수 없도록 함

  (ex - http://www.wishfree.com/robots.txt  파일이 있으면, 구글 검색 엔진은 robots.txt가 있는 디렉토리는 검색하지 않음

- robots.txt 파일은 Useragent와 Disallow를 이용함

 

Useragent

User-agent는 구글 검색 엔진으로부터 검색을 막기 위해 다음과 같이 사용함

User-agent: googlebot

## 모든 검색 로봇으로부터 검색을 막기 위한 방법
User-agent: *

 

Disallow

- 특정 파일이나 디렉토리를 로봇이 검색하지 못하도록 설정함.

- 파일을 검색하지 못하도록 하려면 다음과 같이 입력

Disallow: dbconn.ini

## 디렉토리 접근 방어
Disallow: /admin/

 

파일 접근

디렉토리 리스팅

: 웹 브라우저에서 웹 서버의 특정 디렉토리를 열면 그 디렉토리에 있는 파일과 디렉토리 목록이 모두 나열되는 것

: 디렉토리 정보를 확인하여 파일 정볼르 분석, 취약점을 통한 공격이 발생되었음

 

 

- 화면에 보이지 않는 여러 웹 페이지를 클릭 하나만으로 직접 접근할 수 있음

 

임시/백업 파일 접근

- 상용 프로그램을 이용한 편집은 확장자가 bak이나 old인 백업 파일을 자동으로 생성. 이러한 백업 파일들은 서버측에서 실행되고 결과만 웹 페이지로 보여주는 ASP, JSP 파일과는 달리 클라이언트가 그 파일을 직접 다운받을 수 있게 해줌.

- 다운로드한 소스 파일에는 서버의 로직뿐만 아니라 네트워크 정보 등 다양한 정보가 있을 수 있고, 대부분의 웹 스캐너는 이러한 파일을 자동으로 찾을 수 있음

- 상용 에디터 등을 이용해 웹 소스를 직접 편집하는 것을 금함.

 

파일 다운로드

- 파일을 다운로드할 때 가장 많이 쓰이는 방법은 웹서버에서 제공하는 파일 다운로드 페이지를 이용하는 것.

- 정상적인 경우

http://www.wishfree.com/board/download.jsp?filename=test.hwp

 

- 게시판에서 글 목록을 보여주는 list.jsp 파일이 http://www.wishfree.com/board 에 위치한다면 주소창에 다음과 같이 입력하여 jsp 파일 다운로드 가능

http://www.wishfree.com/board/download.jsp?filename=./list.jsp

 

 

- 파일 시스템에서 '.'는 현재 위치한 디렉토리를, '..'은 상위 디렉토리를 의미.

  (초기에 대부분의 서버는 마이크로소프드의 윈도우즈 서버보다 유닉스/리눅스 기반의 아파치 웹 서버를 많이 사용했음.)

 

## 다른 디렉토리의 파일 다운로드
http://www.wishfree.com/board/download.jsp?filename=../admin/adminlogin.jsp

## download.jsp 자체도 다운로드 가능
http://www.wishfree.com/board/download.jsp?filename=../download.jsp

- 기타 시스템 내부의 중요 파일도 같은 방법으로 다운로드를 시도할 수 있음.

 

파일 업로드

- 시스템 내부 명령어를 실행시킬 수 있는 웹 프로그램(ASP, JSP, PHP)을 제작하여 자료실과 같은 곳에 공격용 프로그램을 업로드하는 공격 방식 (초기 공격 방법이라고 함)

- 이 공격용 프로그램은 웹에서 브라우저를 이용해 접근하면 시스템 내부 명령어를 실행시킬 수 있음.

- 따라서 파일 업로드의 경우는 실행 파일을 업로드할 수 없도로 필터링해야 함

 

취약점

- asp 확장자를 가진 파일이 아무런 필터링 없이 업로드된다는 취약점이 존재함. 업로드할 때는 파일 확장자를 체크해야 하고, 시스템에서는 aSp와 jSp와 같은 대소문자의 혼합도 인식하기 때문에 가능한 조합을 모두 필터링해야 함. 반대로 특정 확장자의 파일만을 업로드하도록 설정하는 방법도 있음

 

- 필터링 수행 시 자바스크립트와 같은 클라이언트측 스크립트 언어로 필터링하면 안되는데, 이는 클라이언트측 스크립트 언어를 공격자가 수정할 수 있기 때문임. 따라서 이는 서버측 스크립트 언어에서 필터링해야 함.

 

- 첨부 파일에 마우스를 가져가면 브라우저의 아래쪽에 파일이 업로드되어 있는 경로가 나타남. 이 정보는 공격자에게 아주 중요하기 때문에 웹 브라우저에서도 웹 프록시를 통해 노출되면 안됨

 

- 저장 파일 이름이 아무런 변환 없이 그대로 저장된다는 점. 웹  서버에 악성 파일이 업로드되어도 해당 파을을 찾을 수 없게 파일 이름과 확장자를 변환시켜 저장하면 훨씬 높은 수준의 보안성을 확보할 수 있음.

 

예시) 웹에서 명령을 입력할 수 있도록 만든 cmdasp.asp 를 업로드

- 업로드한 주소를 웹 브라우저 주소창에 입력하면 페이지를 이동하여 명령을 입력할 수 있게 됨

댓글