관련사이트
w3schools.com : 샘플코드 사이트. 보안관련 언어는 Python, PHP, ASP, MongoDB, Go 추천 (+사이트에는 없지만 Rust)
https://www.w3schools.com/html/
팀버너스리
www, URL, HTTP 등을 고안하여 웹을 탄생시킨 컴퓨터과학자
참고: https://namu.wiki/w/팀%20버너스리
W3C
월드 와이드 웹을 위한 표준을 개발하고 장려하는 조직
팀 버너스리를 중심으로 웹표준을 개발하는 국제 컨소시엄
HTML5
WHATWG와 W3C가 발표하는 HTML의 최신 버전
HTML4.01의 상위버전 (XHTML 선택적으로 이용)
플러그인 기반 응용 프로그램에 대한 필요성을 줄임
최신 웹기술(+CSS3, ECMAScript 6+)을 통틀어 칭하기도 함
마크업 랭귀지의 문법적 버전뿐만 아니라 새로운 dom api 스펙을 포함함
문법이 간결하고 명확해졌으며 javascript를 사용해야했던 기능들이 정식 엘리먼트로 편입됨 (ex video)
HTML : 웹페이지를 생성하는데 사용하는 언어
대소문자 구별X, 태그 사용법이 정해져있음
ex)
<태그명 속성="값"></태그명>
<태그명 속성="값" />
태그의 속성은 생략가능
문서구조
html, head, body, title, meta( 인코딩, 뷰포트 설정 등)
텍스트
h1~h6, p, b, i, strong( 굵게 ), em( 이탤릭체 ), br, hr
리스트
ul(순서없음), ol(순서있음), li(리스트 항목)
링크, 미디어
a, img(이미지), video(비디오), audio(오디오)
테이블
table, tr(세부: align, valign, bgcolor), td(세부: align, valign, colspan, rowspan, bgcolor), th, thead, tbody, tfoot
폼
form, input, textarea( 여러 줄 텍스트입력 ), button, select( 드롭다운리스 트), option( 드롭다운항목 )
구조적요소
div, span, header, footer, nav( 네비게이션 링크 ), section( 섹션 ), article( 독립된 콘텐츠 )
톰캣 기본적인 작업 디렉터리
/usr/share/tomcat/webapps/ROOT
php 작업 디렉터리
/var/www/html
+ 가상호스트를 설정한 경우 다른 경로 설정가능 ex) /home/사용자명/www/
실습)
h1, br, p, a, img태그를 이용한 a 태그 등등 태그 실행
html5에선 없어진 table 속성들
: align, width, height, cellpadding(셀과데이터간격 => padding ), cellspacing(셀간격 => border-spacing), bgcolor 등 디자인적 요소들.
style 또는 css로 빠지게 되었음
PHP
사용방식
<?php
코드
?>
var_dump($_POST);
-> var의 정보를 dump해주는 php 함수. () 괄호안의 변수형과 값을 출력
POST로 넘어온 파라미터를 출력한다
array(2) { ["userId"]=> string(5) "admin" ["userPw"]=> string(1) "1" }
=> 출력 결과물 ["변수명"]=> 변수타입(길이) "값"
변수 사용방식
ex) $_POST["userId"]
출력
print("비밀번호: " . $_POST["userPw"]);
문자열 결합이 , 가 아니라 . 이라는 점을 참고
세션
session_start();
$_SESSION["userId"] = $_POST["userId"];
세션변수에 id 저장
session_destroy();
세션 데이터 삭제
세션 데이터는 기본적으로 /var/lib/php/session 경로에 저장된다.
ex) sess_o40luickegt294dfsdd0sess_랜덤문자열 적재는 변수명|자료형:바이트수:"값" 이런식
헤더 조작으로 주소변경
header("Location: login.html");
=> login.html로 리로딩
+
:set ff=dos
엔터가 \r\n이고
:set ff=unix
엔터가 \n 이다
+ vi 단축키
ctrl + w 한 후 ctrl + shift + - (= _) 창 크기 가로 최대로 키우기
ctrl + shift + \ (= |) 창 크기 세로 최대로 키우기
ctrl + = 창 크기 동일하게 맞추기
GET 방식
서버로 보내는 데이터가 header에 붙어가는 방식이어서 많은양의 데이터를 보낼 수 없다
브라우저 주소창에 데이터가 노출됨
POST 방식
서버로 보내는 데이터가 body에 붙어가는 방식이어서 많은양의 데이터를 보낼 수 있다
<form> 태그에서 method의 속성을 생략하면 기본적으로 GET 방식
서버에서 받을때
php: $_GET['변수명'], $_POST['변수명']
jsp: request.getParameter("변수명")
Burp suite 설치
+ 먼저 JRE 설치가 필요함
참고 : https://cafe.naver.com/linuxmasternet/32043
인터페이스가 살짝 변경되어 폰트사이즈, character sets 설정은 Message editor에 있다
Bind to address: Loopback only
크롬 확장 프로그램 switchyomega
https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif
시크릿창에서 사용시 : [메뉴] > [설정] > [확장 프로그램] > [switchyomega 세부정보] > [시크릿 모드에서 허용]
옵션설정 chrome-extension://padekgcemlokbadohgkifijomclgjgif/options.html#!/profile/proxy
Direct : 프록시 사용x
System Proxy : 웹 데이터를 가로채지않음
Proxy : 웹 데이터를 가로챔
auto switch : 설정한 proxy 정보만 proxy 통과
proxy 설정, default는 기본
Apply changes 눌러서 적용
Burp switch Intercept on 설정하면 192.168.100.10 데이터가 잡힌다
Forward 누르면
로그인 창에서 버튼 눌렀을때 그 다음 스텝 데이터를 볼 수 있다
쿠키 제어 플러그인 EditThisCookie
https://chromewebstore.google.com/detail/copy-cookies/jcbpglbplpblnagieibnemmkiamekcdg?hl=ko%EF%BB%BF