개념정리 (16) 썸네일형 리스트형 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. 참조건과 거짓조건의 출력이 .. 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='입력값' /.. 4주차 Burp Suite REQUEST/RESPONSE 게시판 4주차 Burp Suite 게시판 Burp Suite - Web Proxy Tool - 중간자 역할 웹서버와 클라이언트사이에 오고가는 패킷을 캐치라고 전달한다 - Proxy | Repeater | Decorder | Comparer -> Next -> usedefault burf -> start PROXY - 통신하는 패킷을 하나하나 직접 보고 중간에서 데이터를 고칠 수 있다 - 다른 서버의 통신을 내 서버를 거쳐가게 할 수 있다. 어떤 응답과 통신 하는지 알수있다 앱 해킹할때 용이 PROXY Listener - Proxy tool 웹서버와 클라이언트의 데이터통신의 전달자! 대신해주는 역할 - Listener가 대신 통신하는 역할이고 프록시의 핵심이다! - Proxy 없으면 웹서버 클라이언트 | Prox.. 3주차 로그인 로직 식별/인증 HASH COOKIE/SESSION 3주차 로그인 로직 식별과 인증 HASH COOKIE SESSION 로직 (로그인 과정) -식별 -인증 식별 -데이터들 중에 특정 데이터를 찾아 확인하는 것 -동명이인도 식별이 가능하다 본인만 가지고있는 unique한 것으로 식별하기 때문이다. - 따라서 식별할 ID는 PRIMARY KEY로 중복이 되지 않게 설정 - 또한 식별정보는 노출이 되어도 상관이 없다 - select * from member where id ='normaltic' ->식별 + 식별정보 -> ID 전화번호 이메일 +고유식별정보는 해당 집합내에서 한명만 가지고있는 것, 노출이 되면 안된다. -> 주민번호, 여권번호 인증 -본인이 맞는지 인증정보를 비교해 확인하는 것 - 로그인도 인증절차다 - 인증정보는 유출되면 안된다 EX) -> .. 2주차 DB PHP로 생성 / 출력 / 입력 / SQL / Docker DB PHP로 생성, 출력, 입력과 SQL, Docker DB생성 PHP를 이용해서 MYSQL 관리 -> DB를 UI로 조작할 수 있다 - http://192.168.154.128(내 아이피):1018(포트번호)/phpmyadmin - student아이디 test1234 비번 - index.html(메인페이지)라는 페이지를 만들고 저 주소로 접속해서 DB만들 수 있다. -> DB 생성 - new버튼딸깍 DB이름입력 - 만들기 -> TABLE생성 - TABLE이름 입력 - 만들기 -> COLOMN 생성 - INT 숫자, VARCHAR 가변적문자, PRIMARY 기준, - A.I 오토인크리먼트(자동으로숫자늘리기 엑셀처럼, 자동이니까 값을 굳이 안넣어도 자동으로 생성) SQL -WAS가 DB수정해,입력해,출력.. 1주차 웹 GET POST 웹 GET POST 웹서버의 구조 WEB/WAS/DB WEB - 정적페이지 변하지 않는 정보 HTML WAS - 동적페이지 PHP/ASP/JSP등의 언어로 정보를 만들어서 웹서버에 전달 - 웹 어플리케이션을 실행하고 결과를 웹 서버에 전달 - php,jsp,asp 등의 언어 사용으로 동적인 페이지 제작 가능 - 프로그램 실행환경, 데이터베이스 접속 가능 DB - 데이터를 저장 데이터 관리 프로그램 엑셀이랑 비슷하다 즉, DB가 WAS에게 데이터를 주고 WAS가 WEB에 찍어준다! HTML 이 PHP 보다 우선순위 높다 WEB - 파일전달기능 - web시작(루트/)으로부터 하위 디렉토리 및 파일을 본다. ->웹서버가 실행되는 경로가 웹루트경로 부터 실행되는것 대부분 /var/www/html 이 기본경로로 .. 이전 1 2 다음