normaltic(64)
-
[normaltic 취업반 5기] 2023-12-06 7주차 과제 : SQL 3, 4, 5번 문제
SQL Injection 3번 문제 유효 계정 정보 ID : normaltic Password : 1234 1) SQL Injection 작동 여부 해당 문제에서 SQL Injection이 작동하는지 알아보기 위해 유효 계정 정보를 사용한다. 테스트 결과 해당 문제에서는 SQL Injection을 사용 가능하다. 2) 사용 가능한 SQL Injection 종류 파악 SQL Injection 공격 종류는 총 3가지가 존재하며 각각 쓰이는 상황이 다르다. UNION SQL Injection : 쿼리문 출력 결과가 화면에 표시되는 경우 Error Based SQL Injection : 쿼리문의 에러 메시지가 화면에 표시되는 경우 Blind SQL Injection : 쿼리문의 결과가 참과 거짓인 경우 로그인 ..
2023.12.07 -
[normaltic 취업반 5기] 2023-12-06 7주차 내용 정리
Error Based SQL Injection Error Based SQL Injection 공격은 SQL Injection 공격 중 한 종류로서 SQL 쿼리문에 문제가 있을 때 출력되는 에러 메시지를 이용한다. SQL 쿼리문이 에러가 발생하는 원인에는 여러 가지가 존재하며 그중에서도 특정 에러를 유발하는 SQL 쿼리문을 사용해야 한다. SQL 쿼리문에서 유발시킬 수 있는 에러는 두 가지가 존재한다. 문법 에러 : 문법 에러는 쿼리문 자체가 문법적으로 문제가 있어 실행 자체가 안 되는 에러다. 그렇기에 해당 에러를 발생시켜 출력되는 에러 메시지는 이용 가치가 없다. 로직 에러 : 로직 에러는 쿼리문으로서는 문제가 없어 실행은 되나 그 안에 문제가 되는 부분을 에러 메시지로 출력한다. 해당 에러를 유발시킴..
2023.12.07 -
[normaltic 취업반 5기] 2023-12-02 6주차 과제 : 3번 과제
3번 과제 과제 목표 : 실습용 웹 어플리케이션의 SQL Injection 1, 2 풀기 3번 과제 실습 : SQL Injection 1번 문제 실습용 웹 어플리케이션의 기능으로 사용자 아이디를 입력하게 되면 사용자의 정보가 조회되는 것으로 보인다. 조회되는 데이터의 수에는 딱히 제한이 없는 것 같이 보인다. 조회에 사용되는 쿼리문이 어떤 형태로 구성되어 있는지 확인해 보기 위해 테스트로 데이터를 입력해 보자. 입력창에 'admin' 문자열을 입력했더니 아이디가 'Adminer'인 사용자의 정보가 조회되었다. 입력된 데이터와 정확히 일치하지 않아도 입력한 문자열이 포함된 사용자 정보가 조회되는 것으로 보아 게시글 조회에 사용되는 쿼리문처럼 like문을 사용하는 것으로 보인다. 그렇다면 해당 문제의 목표인..
2023.12.02 -
[normaltic 취업반 5기] 2023-11-29 6주차 과제 : 2번 과제
2번 과제 과제 목표 : 실습 웹 어플리케이션에서 'doldol' 데이터만 출력하라. (doldol 데이터 하나만 출력되도록!) 추가 조건 : 과제에 쓰이는 쿼리문은 모른다는 가정하에 진행한다. 2번 과제 실습 2번 과제를 풀기 위한 실습용 웹 어플리케이션 기능은 내 정보 검색이다. 내 정보를 검색하기 위해서는 입력창에 비밀번호를 입력하는 것으로 보인다. 일반적으로 사용자의 정보를 DB에 저장할 때 사용자의 아이디를 기본키로 설정하여 식별에 쓰이도록 한다. 이는 중복된 아이디를 방지하여 사용자들을 유일하게 식별할 수 있도록 하는 효과를 발휘한다. 그러나 비밀번호는 중복이 될 수도 있기 때문에 사용자 식별에는 적합하지 않다. 이러한 정보들을 취합하여 SQL Injection을 쓰기 위해 해당 어플리케이션에..
2023.11.30 -
[normaltic 취업반 5기] 2023-11-15 4주차 내용 정리
Burp Suite (버프 스위트) 버프 스위트는 프록시를 사용하여 클라이언트 측에서 서버 측으로 보내는 HTTP 요청을 가로채 분석 및 수정을 할 수 있는 웹 프록시 툴이다. 기본 기능 외에도 다양한 기능들이 존재하여 웹 애플리케이션의 취약점을 테스트하거나 모의해킹을 수행할 수 있도록 해주는 점검 도구로서의 역할도 가진다. 일반적으로 클라이언트-서버 구조의 데이터 전달 방식은 클라이언트에서 서버에게 요청하면 서버는 그에 해당하는 데이터를 응답해주는 방식이다. 그러나 여기에 프록시가 개입을 하게 되면 클라이언트가 서버로 데이터를 요청 시 프록시를 거쳐 보내게 되고 마찬가지로 서버가 클라이언트에게 데이터를 응답 시 프록시를 거쳐 보내게 된다. 이때 프록시는 중간전달자로서 요청 및 응답에 해당하는 데이터들을..
2023.11.15 -
[normaltic 취업반 5기] 2023-11-08 3주차 과제 : 추가 과제
JWT (JSON Web Token) JWT는 쿠키, 세션에 이은 인증 프로토콜 중 하나이다. 다만 쿠키나 세션 같이 어느 한 곳에 사용자 정보를 저장하는 방식이 아니라 토큰에 사용자 정보를 저장하여 인증하는 방식이다. 또한 토큰이 탈취되어 데이터가 위변조 된 상태로 요청되어도 위변조 검사가 가능하기 때문에 로그인 유지 및 식별에 많이 사용된다. JWT의 구조 JWT는 '.'을 구분자로, base64로 Header와 Payload를 인코딩한 값과 인코딩하지 않은 두 값에 비밀 키를 합쳐서 암호화한 값인 Signature로 구성되어 있다. 그럼 Header와 Payload, 그리고 Signature에 대해 알아보자. Header Header는 JSON 객체로 이루어져 있으며 암호화 알고리즘과 토큰의 타입에..
2023.11.11