본문 바로가기

보안/WEB

[WEB보안] WebHacking 기초

반응형

- 네트워크관리 : ncpa.cpl
- 사이트 정보 확인 :

http://www.Netcraft.com

 

Netcraft

Internet Research, Cybercrime Disruption and PCI Security Services

www.netcraft.com

http://whois.nida.or.kr 

 

KISA 후이즈검색 whois.kisa.or.kr

한국인터넷진흥원 인터넷주소자원 검색(후이즈검색) 서비스 입니다.

xn--c79as89aj0e29b77z.xn--3e0b707e

- 과거 사이트 정보 : http://archive.org
- 공인IP확인 / 위치확인 : http://www.findip.kr
- DB School : http://www.w3schools.com/sql/
- SQL Injection test - http://testphp.vulnweb.com/
- 인코딩 사이트 : 

http://coderstoolbox.net/  

 

Coder's Toolbox - the programmer's bare necessities

Coder’s Toolbox JavaScript disabled! This page does not work without JavaScript. The Coder’s Toolbox contains all the little tools you never know where to find. Time conversion – convert between Unix timestamp, ISO8601 and RFC 2822 formats String con

coderstoolbox.net

http://bmwtools.info/translator/

 

TRANSLATOR, BINARY

 

bmwtools.info

- 리눅스 웹서버 경로  : /var/www/
- Win2K 웹서버 경로 : C:/inetpub/

- 한글 입력기 : ctfmon.exe ( Win+R )

- BTR 고정 IP  : etc-network-interfaces
                   : /etc/init.d/networking restart

- DNS  : gedit /etc/resolv.conf

 

 

- 정적방식 : Client ↔ Web Server  → 정보들을 서버에 저장 
- 동적방식 : Client ↔ APM   → DB에 저장

 

Apache + PHP + MySQL 의 줄임말이다. APM 소프트웨어가 존재하는 것이 아니라, 이 3가지가 연동되어 운영되도록 만든 환경을 APM이라고 한다. Apache와 MySQL이 PHP와 호환성이 좋기 때문에 주로 세 프로그램을 묶어 패키지 형태로 사용한다.

 

- Stateless 프로토콜 : 끝나면 연결 끊음 (web)   → 쿠키 사용으로 해결

- Base64 Decode64 :  https://www.base64decode.org/

 

Base64 Decode and Encode - Online

Decode from Base64 or Encode to Base64 with advanced formatting options. Enter our site for an easy-to-use online tool.

www.base64decode.org

- Froxy Server : 캐시 저장 기능을 가진 서버

 

- JRE 파일 실행 (리눅스) : java -jar (filename)
- 리눅스 인터넷 옵션  :  Edit - Preferences - Advanced - Settings

 

- URL Meta Character

 

" ~ " 사용자의 홈 디렉토리 접근
" ?  " URL과 Parameter의 구분자
" & " Parameter 간의 구분자
" = " Parameter 대입 연산자
" @ " 메일 계정 표시
" % " Hex값 표현시 사용
" + " 공백 문자
" :// " 프로토콜 구분자
# " 동일한 페이지 내에서 위치 이동 시 사용

 

- 우클릭 방지 함수 
네이버 카페 :  bloackMouseRight() // 제거 or 주석 
네이버 블로그  var rightClickOpenYn // true → false
                                                // return true; → return false;

 

[ Encoding ] 

 

- input type 
" text " : ID
" Password " : PW
" submit " : 버튼
" hidden "  :  사용자에게는 보이지 않는 숨겨진 입력 필드를 정의

 

- SSS : Server 에서 실행 
ASP
JSP
PHP
ASP.NET

 

- CSS : Client 에서 실행(Script 붙으면 CSS)
JavaScript
VBScript
Jscript


Encoding 
- 데이터의 안전성
- 데이터의 압축
- 데이터 변환 
- 방화벽 우회로 사용되기도 함  (RLO)

Encrypt : 정보 은닉


ASCII 
- 미국 정보 교환 표준 부호 
- 7bit (+1bit) (영문자 (대/소) , 10개 숫자 , 32개 특수문자 , 공백 )
- 지원안되는 언어 있음

Unicode 
- 2byte 
- 여러국가의 언어 지원 
- Unicode Encoding → %u를 앞에 붙임
- UTF-8 (나라마다 필요한 byte 수 다름) 
- 가변 길이 문자 인코딩 방법 (1 ~ 4 byte사용)
- Unicode Encoding → %를 앞에 붙임 

URL Encoding
- URL에는 ASCII문자들 중 출력가능한 문자만 가능 
- 원래 문자열을 16진수로 표현하여 %(16진수)로 표현
- 파라미터를 안전하게 웹 서버에 전달되도록 브라우저가 인코딩하여 전달 

Force Full URL Encoding
- 강제적으로 모든 문자를 URL Encoding 하는 기법
- IDS 우회 
- XSS에 주로 사용 

HTML Encoding
- HTML 에서 특별한 기능을 수행하는 문자들을 안전하게 표현 하기위해 하는 인코딩 방법
- XSS 공격에 대응하기 위한 방법


"    " :   ,   ,  
" < " : &lt; , &#60; , &#x3c;
" > " : &gt; , &#62; , &#x3e;
" "" ": &quot; , &#34; , &#x22;
" ' " : & apos; , &#39; , &#x27;
" & " ; &amp; , &#38; , &#x26;
 
Base64 Encoding
- MIME에 주로 사용
- Web인증 중 하나인 기본인증에 사용
- 2진 데이터를 ASCII형태의 텍스트로 표현 가능
- 64개의 문자로 구성 알파벳(대/소) 숫자 10 특수문자 2 (+,/)
- 6bit로 한문자 표현 
- " = "는 padding 값으로 사용 ((Plain Text글자 수 )%3 만큼 패딩 됨)
- Plain Text → ASCII Code → 2진수변환 →10진수(6bit씩 변환) → Base64 

 

[ Web Authentication ]

 

Basic Authentication
- 웹서버에 보낼 ID와PW를 Base64방식으로 인코딩해서 전달
- 사용자계정 -> 시스템 계정
- Sniffing 에 취약함
- Windows 기본 인증

Anonymous Authentication
- Web Server에서 제공하는 익명계정을 이용하여 서버의 자원 을 제공

Form Based Authentication
- HTML에서 지원하는 Form 태그를 사용하여 인증정보를 서버로 전송
- 대부분의 웹에서 사용
- SSL을 이용한 암호화가 필요

HTTP NTML Authentication
- Challenge /Respone 방식
- Explore 와 IIS에서 사용가능
- 호환성을 위해 웹 인증에 NTLM은 사용되지 않음 
- Windows 통합 인증

 

[ Cookie ]

Cookie 란?
- WAS가 클라이언트 식별에 사용되는 방법
- 서버에서 발행 or 스크립트에 의해 저장
- Response Header - Set-Cookie
- Javascript:document.cookie 접근가능
- 쿠키를 발행한 사이트에서만 읽기 가능
- 각 호스트마다 최대 20개 가능
- 각 쿠키의 최대크기는 4KB

Cookie 용도
Session Token
- 개인화된 컨텐츠 제공 ( 개인정보 , 사용자취향 , 장바구니 정보)
- 클라이언트 관리에 필요한 정보 ( 웹사이트 이용방식 추적)
- 임시데이터 ( ex ) 팝업창 제한 설정 )
Cookie 사용절차
1. 주소창에 URL 입력
2. 해당 사이트 Cookie 존재 여부 확인 
3. Cookie 만료 여부 확인
4. Request Header 에 Cookie 포함
5. 웹서버로 HTTP 패킷 전송 

 

[ Session Token ]

Session Token 
- Sessoin을 인증하기 위한 정보
- 인증정보는 Client 와 Server 양쪽 모두 저장되어야 함
- 일반적으로 WAS에서 지원하는 해쉬값이 Token으로 사용
- 웹서버가 물리적으로 여러대 인경우 WAS에서 발행산 SSID만으로 인증불가

Web Session의 특징
- TCP기반의 프로토콜이지만 Connection Oriented한 성격을 잃어버림
- 비 연속적으로 접근하는 클라이언트를 구분하기위해 Session Token 사용

Session Management
- 클라이언트가 최초 웹서버에 접근시 Session Token 생성
- Session Token은 서버에게 Request 시 포함

Session Token 저장 방식
- HTML에 저장
- HTML코드내 Hidden Field에 저장 (
패킷에서 보이지않지만 소스보기 를 할 경우 노출되므로 위험)
- URL Rewriting : URL에 Session Token을 덧붙여 사용
- 웹 브라우저에서 쿠키를 저장하지 못하게 한 경우 사용 (Get방식만 가능)
- Cookie에 저장 : Cookie의 Explore 에 따라 메모리 or 디스크에 저장 = Session Token가 Cookie 보다 큰범주

 

취약점 스캐너 Tool 
- Nikto
- Wikto
- Nessus

Web Proxy Tool
- Paros
- Burp Suite (*) 

Banner Grabbing 
- HTTP Fingerprinting

Brute Force Attack Tool
- Hydra ( BTR OS ) 경로확인 which hydra
  사전파일 견본 위치 : /pentest/web/w3af/core/controllers/bruteforce/passwords.txt

 

[ Brute Force ]
공격 원리 
- 모든 값을 입력하여 계정 탈취 
- 사전대입공격과 병행하여 사용
- 시간이 오래걸림

대응방법 
- 로그인 처리 지연 시간 설정 (딜레이 설정)
- 인증수단 증가 (캡차)
- 로그인 실패시 제공되는 정보 제한
- 계정 잠금 정책 사용 (아이폰)

 

[ HTTPS 상태코드 ]

1XX : 조건부 응답

2XX : 성공

3XX : 리다이렉션 완료

4XX : 요청 오류

5XX : 서버 오류

참고 : https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C

 

HTTP 상태 코드 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 아래는 HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드의 목록이다. IANA가 현재 공식 HTTP 상태 코드 레지스트리를 관리하고 ��

ko.wikipedia.org

반응형