- 네트워크관리 : ncpa.cpl
- 사이트 정보 확인 :
- 과거 사이트 정보 : http://archive.org
- 공인IP확인 / 위치확인 : http://www.findip.kr
- DB School : http://www.w3schools.com/sql/
- SQL Injection test - http://testphp.vulnweb.com/
- 인코딩 사이트 :
http://bmwtools.info/translator/
- 리눅스 웹서버 경로 : /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/
- 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 공격에 대응하기 위한 방법
" " : ,   ,  
" < " : < , < , <
" > " : > , > , >
" "" ": " , " , "
" ' " : & apos; , ' , '
" & " ; & , & , &
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
'보안 > WEB' 카테고리의 다른 글
[Chat GPT] SQL 인젝션 취약점에 대한 상세 가이드 (0) | 2023.02.19 |
---|---|
[WEB보안] Blind SQL Injection_if조건문 (0) | 2020.06.13 |
[WEB보안] Blind SQL Injection_case wher then 조건문 (0) | 2020.06.13 |
[WAB 보안] XSS(Cross Site Scripting) 취약점 (0) | 2020.05.02 |
[WEB 보안] SQL 연결연산자로 DB 확인 (0) | 2020.05.02 |