주통기반 Web 취약점 시나리오
3. LDAP 인젝션
LDAP
- 작은 DB 이다.
- 간단한 로그인 인증에 사용된다.
취약점 시나리오
- 로그인 인증을 우회하기. 비인가 사용자가 시스템에 접속할 수 있습니다.
4. 운영체제 명령어 실행
- command injection
- 예를 들어 nslookup ( DNS 에 도메인 정보를 요청 ) 명령을 내부적으로 수행하는 사이트가 있다고 하자. 도메인 검색 페이지에서 도메인 만을 입력하는 것이 아닌 그 다음의 명령을 이어 붙여 다음 명령을 수행시키는 공격이다.
nslookup 도메인명;ls
취약점 시나리오
- 서버에 악영향을 미치는 명령을 실행시킬 수 있다.
5. SQL Injection
- 임의의 SQL 문을 삽입하는 공격이다.
취약점 시나리오
- DB 에 저장된 정보를 탈취할 수 있다.
- 인증을 우회할 수 있다.
6. SSI Injection
- ssi(Server Side Include) 란 WAS(php, jsp) 가 나오기 전에 동적 페이지를 만들 때 사용되었다.
- ssi 로 만들어진 코드를 삽입하는 공격이다. 확장자는 shtml 이다. ssi 지시어를 실행시켜 발생하는 취약점이다.
- 현재는 거의 없다.
취약점 시나리오
- 악의적인 커맨드 명령어를 실행시킬 수 있다.
7. XPath Injection
- XML (Extensible Markup Language)의 xpath 에서 발생하는 오류이다.
- XML은 네트워크 통신을 할 때 쓰였지만 현재는 JSON 형태로 데이터를 전달한다.
취약점 시나리오.
- XPath 로 구성된 로그인 페이지에서 인증을 우회할 수 있다.
8. 디렉터리 인덱싱
- 인덱스 파일로 지정한 파일이 존재하지 않거나, 디렉토리 리스팅을 허락하도록 설정했을 경우 디렉터리 리스트가 사용자에게 노출된다.
- URL에 디렉터리 명을 입력했을 때 디렉터리 목록을 확인할 수 있다.
취약점 시나리오
- 서버의 디렉토리 구조를 쉽게 파악할 수 있다.
- 민감한 정보가 포함된 설정 파일이 노출될 수 있다.
- 백업한 서버 코드가 노출될 수 있다.
9. 정보 누출
개인 정보 누출
- 사용자에게는 개인 정보의 일부만 보여주지만, 서버에서 개인정보 모두를 전송한다. 불필요한 정보까지 노출될 수 있다.
서버 정보 누출
- 서버 버전. 어떠한 WAS 을 쓰는지 확인할 수 있다.
- 이러한 정보로 해당 버전에 취약점이 존재하는지 확인할 수 있다.
10. 악성 콘텐츠
- 확장자를 제한하지 않아 악성 파일을 게시글에 업로드할 수 있다.
취약점 시나리오
- 피해자가 악성 파일을 다운로드 받고 실행시 악성 코드 감염 등 보안상 심각한 위험에 노출된다.
11. 크로스사이트 스크립팅
- 클라이언트 측 스크립트를 삽입하는 공격이다.
- 클라이언트 측에서 악의적인 스크립트가 실행되게 하는 공격이다.
Stored XSS
- 게시글, 게시판과 같은 곳에서 발생한다.
취약점 시나리오
- 공격자는 악의적인 스크립트를 삽입한 게시글을 작성한다.
- 방문자가 악성 게시글에 방문하면 사용자 브라우저에서 악성 스크립트가 동작하여 악의적인 행위를 수행한다. ( 쿠키 세션 ID값을 공격자 서버로 전송 )
Reflected XSS
- 사용자의 요청 파라미터 값을 그대로 보여주는 페이지에서 발생한다.
취약점 시나리오
- 공격자는 악성 스크립트를 삽입한 악성 링크를 만든다.
- 사용자가 악성 링크를 클릭하도록 유도한다.
- 사용자가 악성 링크를 클릭하여 들어가면 삽입한 악성 스크립트가 사용자 브라우저에서 동작하여 악의적인 행위를 수행한다. (키로거 삽입, 세션 ID 값 탈취)
12. 약한 문자열 강도
- 인증 정보( 로그인 비밀번호 )의 등록 또는 변경 시 해당 값의 복잡성을 점검하지 않아 공격자가 쉽게 인증정보를 유추할 수 있다.
취약점 시나리오
- 공격자는 흔히 사용되는 비밀번호를 추측하여 무단으로 타 사용자의 계정으로 접속하는 악의적인 행위를 수행한다.
13. 불충분한 인증
- 중요한 페이지에 접근할 때 추가 인증기능이 구현되어 있지 않아 인증우회 문제가 발생할 수 있다.
- 인증 기능 미구현.
취약점 시나리오
- URL을 통해 인증을 우회하여 중요 정보 페이지에 접근할 수 있다.
14. 취약한 패스워드 복구
- 패스워드를 복구 기능이 적절히 구현되어 있지 않아 공격자는 사용자의 비밀번호 획득 및 변경이 가능하다.
취약점 시나리오
- 패스워드 복구 로직( 패스워드 찾기 등)으로 공격자가 불법적으로 다른 사용자의 패스워드를 획득, 병경할 수 있다.
15. CSRF
- 사용자가 임의의 요청을 보내도록하는 공격이다.
- 즉 사용자는 자신도 모르게 임의의 요청을 보내게 된다.
- 주로 XSS 공격과 같이 CSRF공격을 진행한다.
취약점 시나리오
- 공격자는 XSS 취약점을 이용하여 악의적인 요청을 보내는 게시글을 작성한다.
- 사용자가 악성 게시글에 방문하면 자신도 모르게 서버로 악의적인 요청을 보내게된다.
17. 불충분한 인가
- 사용자가 권한이 없는 데이터에 접근 및 수정이 가능하다.
- 권한 검사 기능 미구현.
취약점 시나리오
- 무단으로 다른 사용자의 게시글을 수정한다.
- 무단으로 다른 사용자의 계정 정보를 수정한다.
18. 불충분한 세션 만료
- 세션의 만료 기간을 설정하지 않아 로그아웃 하기 전까지 계속 같은 세션을 이용한다.
취약점 시나리오
- 공격자에게 한번이라도 세션 ID값을 탈취당하면 공격자는 정상적인 사용자로 위장하여 웹 서버에 악의적인 행위를 수행 할 수 있다.
19. 세션 고정
- 로그인 전과 로그인 후의 세션 ID값이 동일한 취약점이다.
- 즉 서버에서 세션 ID값을 새로 발급해주는 것이 아닌 기존 유저가 가지고 있는 세션 ID값을 이용하여 로그인 여부를 확인한다.
취약점 시나리오
- Reflected XSS 취약점을 이용하여 로그인 페이지에 스크립트를 사용하여 피해자의 쿠키 세션 ID값을 공격자 세션 ID 값으로 바꾼다.
- 피해자가 악성 링크를 이용하여 로그인을 하여도 세션 ID값이 바뀌지 않아 공격자는 피해자로 로그인 인증우회 한다.
- 이렇게 로그인을 우회하여 피해자의 정보 탈취 및 권한 우회가 가능하다.
20. 자동화 공격
- 매크로를 이용하여 게시글 작성 또는 로그인이 가능한 취약점이다.
취약점
- 매크로로 게시글을 작성 요청을 무단으로 보내어 게시판을 도배할 수 있다.
- 로그인 시도를 제한하지 않아 사전 대입 공격으로 사용자의 계정을 탈취할 수 있다.
22. 파일 업로드
- 임의의 파일을 업로드하고 실행 시키는 공격이다.
- 악의적인 웹 쉘 파일을 업로드 및 실행하여 서버에 치명적인 영향을 미칠 수 있다.
취약점 시나리오
- 공격자는 서버에 웹 쉘 파일을 업로드한다.
- 공격자는 웹 쉘 파일을 실행시켜 서버에서 민감한 파일 추출할 수 있다. (db 계정 정보, 웹 서버 코드)
23. 파일 다운로드
- 서버의 임의의 파일을 다운로드 받는 공격이다.
- 서버의 다운로드 페이지가 구현되어 있을 때 발생한다. (../down?file=test.png)
- file traversal 취약점을 이용하여 서버의 민감한 정보를 탈취할 수 있다.
취약점 시나리오
- 공격자는 file traversal 공격을 이용하여 서버의 민감한 파일을 탈취한다.
- 공격자는 이러한 민감한 파일을 분석하여 또 다른 취약점을 발견할 수 있다.
24. 관리자 페이지 노출
- 유추하기 쉬운 URL을 통해 관리자 페이지 접근이 가능한 취약점이다.
- admin, manager, phpMyAdmin
취약점 시나리오
- 비인가자가 관리자 메뉴에 무단으로 접근하여 악의적인 행위(웹 사이트 변조)를 수행할 수 있다.
27. 데이터 평문 전송
- 서버와 클라이언트 간 암호화 통신이 이루어져 있지않아 민감한 정보가 외부로 노출될 수 있다.
취약점 시나리오
- MIMT(중간자) 공격을 이용하여 사용자가 요청한 민감한 정보를 탈취 및 도용 할 수 있다. (계정 정보)
28. 쿠키 변조
- 쿠키 값을 변조하여 권한을 우회하거나 다른 사용자로 위장하는 취약점을 말한다.
취약점 시나리오
- 공격자가 쿠키 값을 변경하여 관리자 권한을 획득할 수 있다.
변경 전
Cookie
auth=User
변경 후
Cookie
auth=Admin
댓글남기기