인터넷 웹 브라우저에 사용되는 언어
1. HTML
2. SSS ( Server Side Script )
3. CSS ( Client Side Script )
HTML ( HyperText Markup Language )
1. 정적인 ( Static ) 웹 페이지 전송
2. 클라이언트의 웹 브라우저를 통해 웹 서버의 무엇인가를 바꿀 수 있는 가능성이 매우 낮기 때문에 웹을 이용한 공격이 매우 어렵다 .
서버와 클라이언트의 관계를 보면 다음과 같다.
1. HTML 작성
2. 클라이언트가 웹 페이지 요청한다
3. 웹 서버가 .html 파일 검색한다
4. HTML 스트림이 브라우저에 반환한다
5. 브라우저가 HTML을 처리한다
SSS ( Server Side Script )
1. 동적인 페이지를 제공하는 스크립트
2. 스크립트에 HTML 확장자 대신 ASP 또는 JSP의 확장자를 가진 웹 문서를 요청한다
서버와 클라이언트의 관계를 보면 다음과 같다
1. 서버 스크립트가 포함된 페이지 코드 작성
2. 클라이언트가 웹 페이지 요청한다
3. 웹 서버가 .html 파일 검색한다
4. 웹 서버가 스크립트 엔진에게 요청하여 스크립트와 일반HTML 페이지를 생성한다
5. HTML 스트림이 브라우저에 반환한다
6. 브라우저가 HTML을 처리한다.
CSS ( Client Side Script )
1. 서버가 아닌 클라이언트 측의 웹 브라우저에 의해 해석/적용 된다
서버와 클라이언트의 관계를 보면 다음과 같다.
1. 클라이언트 스크립트 JS 작성
2. 클라이언트가 웹 페이지에 포함된 스크립트 파일 요청
3. 웹 서버가 해당 스크립트 파일 검색한다
4. 해당 스크립트 파일을 브라우저에 반환한다
5. 브라우저가 클라이언트측 스크립트를 처리한다.
웹 사이트 정보 수집
1. 웹 프록시의 이용
è 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터나 응용 프로그램 ( Ex : Paros )
2. 구글 해킹
è Site : 특정 사이트만을 집중적으로 선정 검색
è Filetype : 특정 파일 유형 검색
è Link : 특정 링크가 포함되는 페이지 검색
è Cache : 구글에서 백업해 둔 페이지의 정보를 보고자 할 때 사용 한다
è 검색 엔진에 의해 백업된 데이터에 취약점 정보 노출될 수 있다.
è Intitle : 디렉터리 리스팅 취약점이 존재하는 사이트를 쉽게 찾을 수 있다 .
è Inurl : 특정 URL만을 집중적으로 선정해서 검색
è 추가적으로 검색엔진의 검색을 피하는 방법이 존재하는데 , 서버의 홈 디렉터리에 robots.txt 파일을 만들어 검색을 할 수 없게 만든다 . 이 파일은 Useragent 와 Disallow를 이용해서 검색엔진의 검색 차단한다 .
크롤러는 단순히 사이트와 사이트 사이의 링크를 타고 다니며 , 문서를 수집하는 역할
인덱서는 수집된 문서를 검색엔진이 사용자에게 결과물을 좀더 빠르고 쉽게 제공할 수 있도록 색인 또는 인덱스하는 역할이다 .
크롤링을 제어하려면 사이트의 루트 디렉토리에 robots.txt파일을 사용해서 제어
인덱싱을 제어하려면 각각의 페이지 내에 메타 로봇 태그를 사용해서 제어한다.
Robots.txt 파일을 사용해서 크롤링을 제어하는 방법은 다음과 같다.
검색엔진의 크롤러로부터 모든 문서 수집을 차단하려면 아래와 같은 내용을 robots.txt에 삽입한다.
User-agent : * // 차단하려고 하는 검색엔진
Disallow : / // 접근여부를 /로 나타냄 , /일 경우 차단 , 아무것도 없으면 공백
è Disallow 필드는 특정 파일 or 디렉터리를 로봇이 검색하지 못하도록 설정하는 부분
디렉터리 리스팅 ( directory listing )
è URL로 도메인 네임 + 디렉터리 경로를 입력했을 때 해당 디렉터리 내의 모든 항목을 브라우저에 보여주는 기능이다 .
è 만일 디렉터리 리스팅이 되는 디렉터리 내에 보안 상 중요한 정보가 담긴 파일이 존재할 경우 권한도 없는 외부 사람이 마음대로 열람할 수 있는 문제가 생길 수 있다.
3. 파일 접근
è 웹사이트의 파일에 대한 접근
ㄱ. 디렉터리 리스팅이 사용된다 .
è 웹 브라우저에서 웹 서버의 특정 디렉터리를 열면 그 디렉터리에 있는 파일과 디렉터리 목록이 모두 나열되는 것이다 .
è 화면에 보이지 않는 여러 웹 페이지를 클릭 하나만으로도 직접 접근할 수 있다 .
ㄴ. 임시 / 백업 파일 접근
è 상용 프로그램을 이용한 편집은 확장자가 balk 이나 old 인 백업 파일을 자동으로 생성한다.
è 백업 파일들은 서버 측에서 실행되고 결과만 웹 페이지로 보여주는 ASP , JSP 파일과는 달리 클라이언트가 그 파일을 직접 다운로드 받을수 있다 .
ㄷ. 파일 다운로드
è 파일을 다운로드 할 때 가장 많이 쓰이는 방법 : 웹 서버에서 제공하는 파일 다운로드 페이지를 이용 한다 .
è 공격자가 디렉터리 리스팅 방법 등으로 서버의 파일 구조를 알고 있으면 디렉터리 이동 명령인자를 통해 상위에 다른 위치에 있는 파일을 다운로드 할 수 있다.
è 파일 시스템에서 ‘.’ 은 현재 디렉터리를 , ‘ .. ‘ 은 상위 디렉터리를 의미한다
디렉터리 리스팅 (directory listing ) 공격 패턴
1. 디렉토리 추측 : 가장 많이 사용되는 패턴으로 url의 파일명을 제하고 입력하는 경우
2. 자동화 툴 이용 : 웹 퍼징 ( Web Fuzzing )
è DirBuster – by OWASP (Open Web Application Security Project)
일종의 디렉터리와 파일 정부 수집 도구로 웹/어플리케이션상의 숨겨진 파일이나 디렉터리들을 브루트포스(Brute Force) 방식 으로 검출해 공격 팩터를 찾는 멀티스레드 자바 어플리케이션
무차별 대입 공격이란 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 문제를 푸는 것인데 , 얼핏 무식하다고 생각할 수도 있겠지만 항상 정확도 100%를 보장한다는 점에서 자원만 충분하면 가장 무서운 방법이다.
완벽하게 병렬 작업이 가능하다는 점 à 작업량을 몇 배로 줄일 수 있다.
문제는 복잡도에 민감하다 à 문제가 조금만 복잡해져도 매우 비효율적인 알고리즘이 될 수 있다는 것이다 .
Question : 자동화 봇으로 이루어진 세션과 사람이 직접 개입하는 세션의 차이는 무엇일까?
속도이다 .
횟수제한을 하면 되지 않는가 ?? 라는 질문을 할 수도 있다.
그래서 알아보면 된다 .
입력 횟수 제한이 걸려 있는 경우 공격법
Step 1 : 회원 가입을 통해 실제 가입되어 있는 사용자 ID 추출하기
Step 2 : 사회공학 기법을 통해 계정 탈취하기
패스워드 정책이 Strict한 환경에서의 BF 공격법
“엄격한 패스워드 사용이 요구된다면 , 사용자들은 오히려 위 조건을 모두 충족시키는 쉬운 패스워드를 사용하지 않을까 “
패스워드 정책을 역이용하여 서비스 마비 시키기
1. 수 만개의 사용자 ID를 확보한 상태에서 4번째 정책을 역이용 하면 어떤 일이 발생할까?
2. 확보한 사용자 계정에 대해 고의적으로 5번 이상 틀린 패스워드를 입력하게 되면 , 모든 계정을 순식간에 Lock 시켜버릴 수 있다
'학부공부 > 인터넷보안과응용' 카테고리의 다른 글
XSS 란 무엇인가 (0) | 2018.12.08 |
---|---|
SQL 인젝션이란 무엇인가. (0) | 2018.12.08 |
웹 해킹 침해사고 및 대응 (0) | 2018.12.03 |
WebGoat_sql_injection_Solution(advanced + original ) Webgoat_풀이 (0) | 2018.11.12 |
pip_error (0) | 2018.11.12 |
#IT #먹방 #전자기기 #일상
#개발 #일상