Chapter05 - 웹 해킹
1. 웹 언어
l HTML(Hyper Text Markup Language)
- 정적(Static)인 웹 페이지 전송
- 클라이언트의 웹 브라우저를 통해 웹 서버의 무엇인가를 바꿀 수 있는 가능성이 매우 낮기 때문에 웹을 이용한 공격이 매우 어려움
- 클라이언트에서 처리 됨
l CSS(Client Side Script)
- 자바 스크립트(JavaScript)나 비주얼 베이직 스크립트 등과 같이 웹 서비스에 이용되는 스크립트
ü 서버가 아닌 클라이언트 측의 웹 브라우저에 의해 해석/적용됨
ü 클라이언트 스크립트(JS)를 작성
ü 클라이언트가 웹 페이지에 포함된 스크립트 파일 요청
ü 웹 서버가 해당 스크립트 파일 검색
ü 해당 스크립트 파일을 브라우저에 반환
ü 브라우저가 클라이언트측 스크립트를 처리
l SSS(Server Side Script)
- ASP(Active Server Page), JSP(Java Script Pages)와 같은 동적인 페이지를 제공하는 스크립트
- ASP또는 JSP의 확장자를 가진 웹 문서를 요청한다.
ü 클라이언트가 웹 페이지(html) 요청
ü 웹 서버가 html파일 검색
ü 웹 서버가 스크립트 엔진에게 요청하여 스크립트와 일반 HTML페이지를 생성
ü HTML스트림이 브라우저에 반환
ü 브라우저가 HTML을 처리
- 요청이 왔을 때 서버 측에서 해석이 되어서 클라이언트에 응답을 해 줌
ü HTML위에 JSP 또는 ASP 스크립트를
올려서 보내 줌
2. 웹 사이트 정보 수집
l 웹 사이트 정보를 수집하기 위한 방법
- 검색을 이용하여 정보 수집
- 웹 프록시의 이용
- 구글 해킹
- 파일 접근
l 웹 프록시 이용
- 프록시(우회 접속)
ü 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터나 응용 프로그램
- 웹 해킹에 사용되는 프록시 툴 - Paros
ü 프록시가 가능한 웹 페이지를 보여 줌
3. 개인 프록시: Paros
l 웹 변조를 가능하게 해주는 강력한 도구
- 웹에서 주고 받는 필드 값을 수정하여 주거나 받을 수 있음
- 자바 스크립트 제한이나 입력 값 등의 제한을 우회할 때에도 많이 이용되고, 서버로부터 받는 값을 수정할 때도 종종 이용할 수 있음
l Web Browser에서 보내는 Request, Response를 조작하거나 임의로 패킷을 만들어 보낼 수 있음
4. 구글을 이용한 해킹
l 검색 인자를 이용한 검색 기능
- site: 특정 도메인으로 지정한 사이트에서 검색하려는 문자열이 포함된 사이트를 찾음
- filetype: 파일 유형에 한해서 검색하는 문자가 들어 있는 사이트를 찾음
- link: 링크 로서 검색하는 문자가 들어 있는 사이트를 찾음
- cache: 특정 검색어에 해당하는 캐시된 페이지를 보여줌
ü 검색 엔진에 의해 백업된 데이터에 취약점 정보 노출될 수 있음
ü 노출되면 안되는 정보가 백업되어 있을 경우에는 삭제를 요청
- intitle: 페이지의 제목에 검색하는 문자가 들어 있는 사이트를 찾음
- inurl: 페이지의 URL에 검색하는 문자가 들어 있는 사이트를 찾음
5. 검색 엔진의 검색을 피하는 방법(크롤링)
l robots.txt의 용도
- 일반적으로 검색봇이 크롤링하지 않았으면 하는 페이지는 차단하고(관리자 페이지등), 필요한 부분만 검색 결과에 노출을 허용하는 설정
l 크롤링과 인덱싱의 차이
- 크롤링은 페이지의 모든 정보를 가져오는 것, 인덱싱은 특정 키워드에 해당하는 부분만 정보를 가져온다.
- 크롤링 제어는 robots.txt
- 인덱싱 제어는 <meta name=”robots” content=”noindex, nofollow”>같은 메타 로봇 태그를 사용해서 제어
6. 크롤링을 제어하는 방법
l 문서를 크롤릭 차단
User-agent: *
Disallow: /
l 문서를 허용
User-agent: *
Disallow:
l 특정 폴더만을 차단
User-agent: *
Disallow: /members/
Disallow: /search/
Disallow: /images/
l 특정 검색엔진만 크롤러를 차단(구글만 차단)
User-agent: Googlebot
Disallow: /
l 특정 검색엔진만 크롤러를 허용(구글만 허용)
User-agent: Google
Disallow:
User-agent: *
Disallow: /
l 특정 페이지를 차단
User-agent: *
Disallow: /members/personal_info.html
l robots.txt파일에 사이트맵 명식
User-agent: *
Disallow:
Sitemap: http://www.seo-korea.com/sitemap.xml
7. 디렉터리 리스팅(Directory listing)
l URL로 (도메인 네임 + 디렉터리 경로)를 입력했을 때 해당 디렉터리 내의 모든 항목을 브라우저에 보여주는 기능
l 웹 브라우저에서 웹 서버의 특정 디렉터리를 열면
- 그 디렉터리에 있는 파일과 디렉터리 목록이 모두 나열되는 것
l 화면에 보이지 않는 여러 웹 페이지를 클릭 하나만으로도 직접 접근할 수 있음
8. Directory listing 공격 패턴
l 자동화 툴 이용: 웹 퍼징(Web Fuzzing)
- 비 정상적인 데이터를 애플리케이션에 전달하여 에러를 유도하는 방법을 퍼징이라 말함
- 웹 사이트에서 추측을 통해서 알아낼 수 있는 페이지들을 자동으로 찾아주는 역할을 해 줌
- Directory listing을 자동으로 여러 페이지를 해 주는 것
l DirBuster
- 웹/애플리케이션상의 숨겨진 파일이나 디렉터리들을 브루트포스(Brute Force) 방식으로 검출해 공격 팩터를 찾는 멀티 스레드 자바 애플리케이션
ü 브루트포스: 정해진 파일 명이 아닌 랜덤으로 산출 해 낸 명칭을 자동으로 변경 해 가는 것
ü 무차별 대입 공격
- 단점
ü 자원을 많이 사용하는 것이 가장 큰 문제
ü 문제가 조금만 복잡 해 지면 매우 비 효율적으로 변함
l 브루트포스(Brute Force)공격을 막기 위한 방법
- ID/비밀번호 입력 횟수 제한
- 패스워드의 정보를 여러 문자로 만들게 한다.
9. Directory listing 실습 (DirBuster)
l http://localhost:8080/Term_project/ - 공격 웹 페이지(실제 제작한 페이지)
- 실제 공격 할 페이지 생성
- JSP로 생성된 페이지
- Web Container로 Tomcat를 사용
- DirBuster에서 제공 되는 키워드 리스트 사용
< DirBuster 실행 화면 > < DirBuster를 사용할 Web Page 설정 >
< 실행 중인 화면 >
< 실제 파일 리스트 > < DirBuster로 찾아낸 파일 리스트 >
'3학년 > 인터넷 보안(웹 해킹)' 카테고리의 다른 글
웹 보안_Chapter06 - 02 XSS공격(D-DoS) (0) | 2018.12.27 |
---|---|
웹 보안_Chapter06 - XSS공격 (1) | 2018.12.26 |
WebGoat 실습 하기 (3) | 2018.11.12 |
웹 보안_Chapter04 - SQL인젝션 공격 (0) | 2018.10.03 |
웹 보안_Chapter03 - 02 인증 기술과 O-Auth (0) | 2018.10.02 |