본문 바로가기

전체 글81

BoB 12기 수료 후기(를 빙자한 일기) | 보안컨설팅 트랙 아직 수료식은 안 했지만 아무튼 이제 다 끝났으니 써본다. (사실 안 끝남. 자문단 발표 준비 중임...^-^) 개인적으로 난 이번에 겪은 모든 경험들이 운이 많이 따라줬다고 생각한다. 이전 후기보다 더한 TMI(거의 일상 블로그 급임. 진짜 일기임. 너무 일기라서 공개로 올려도 되나 싶을 정도~)가 포함되어 있다. BoB 생활팁은 딱히 없기 때문에 정보를 얻으러 오신 분이라면 도움이 안 될 것 같다. 워크샵 및 발대식 + 1차 교육 후기 최종 합격 후, 본격적인 교육을 듣기 전에 친목 도모를 목적으로 워크샵이 진행된다. 같은 기수 교육생들과 조를 이루며 이런저런 게임도 하고, 이전 기수분들의 팁과 덕담도 들으며 시간을 보낸다. 개인적으로 워크샵은 매우매우 추천한다. 다른 조는 어땠는지 모르겠으나, 내가.. 2024. 2. 25.
BoB 12기 최종 합격 후기(를 빙자한 일기) | 보안컨설팅 트랙 오랜만에 포스팅인데, 양심 없이 공부 내용도 아니고 합격 후기 ^^ 오늘은 10기 탈락 이후 다시 12기에 지원해서 최종 합격한 후기를 풀어볼까 한다. TMI 개많음~ 10기 때는 내가 하고 싶은 게 뭔지도 모르고 취분이 제일 유명하다는 이유 하나로 취분 트랙에 지원했었다. 12기에 지원할 때는 컨설턴트로 진로를 확실히 했기 때문에, 고민도 없이 보안컨설팅 트랙에 지원했다. 이 글을 보는 여러분도 만약 BoB에 지원할 생각이 있다면, 정말 자신이 공부하고 싶은 분야가 무엇인지 잘 고민해 보고 선택하길 바란다. 1. 서류 합격 사실 처음에는 BoB 12기에 지원할 생각이 없었다. 현재 4학년이기도 하고, 취업을 해야 될 것 같았다. 근데 성격상 한 번 하고 싶다고 생각한 거는 죽어도 해야 했다. 그래서 미.. 2023. 6. 24.
파이썬 클래스(Class) 클래스는 자체 속성 및 동작 집합이 있는 새로운 유형의 객체를 정의하기 위해 사용된다. 예를 들어, 다양한 종류의 동물을 나타내는 프로그램을 만들고자 하면 다음과 같이 나타낼 수 있다. class Animal: def __init__(self, name, species, age): self.name = name self.species = species self.age = age def eat(self, food): print(f"{self.name} is eating {food}.") def sleep(self, hours): print(f"{self.name} is sleeping for {hours} hours.") 이 클래스에서는 name, species, age 세 가지 속성을 정의했고, eat,.. 2023. 3. 14.
Union SQL Injection 1. 취약점 개요 1.1. 정의 SQL Injection에는 여러 종류가 있다. Non Blind Sql Injection, Blind Sql Injection, Union Sql Injection 등... 이번 포스팅은 Union Sql Injection에 대한 내용이다. SQL Injection은 웹 어플리케이션에서 많이 발생하는 보안 취약점 중 하나다. Union SQLi는 다수의 SELECT 문을 하나의 결과로 합쳐서 출력하는 방법이다. 이를 사용하면 데이터베이스의 테이블을 병합할 수 있다. 1.2. 예시 다음과 같은 쿼리가 있다고 가정한다. SELECT id, password FROM user WHERE idx=1 위 쿼리를 Union SQL로 변환할 경우, 다음과 같이 작성할 수 있다. SEL.. 2023. 3. 1.
불충분한 인가 (IN) 목차 1. 취약점 개요 2. 점검 방법 3. 보안 방안 1. 취약점 개요 1.1. 정의 페이지 접근을 위한 인증기능이 구현되지 않을 경우, 해커나 인가되지 않는 사용자가 페이지에 접근 및 중요 정보의 변조를 할 수 있는 취약점이다. 1.2. 보안 위협 접근제어가 필요한 중요 페이지의 통제수단이 미흡한 경우, 비인가자가 URL 파라미터 값 변경 등의 방법으로 중요 페이지에 접근하여 민감한 정보 열람 및 변조 가능하다. 2. 점검 방법 - 마이페이지 등 본인만 접근 가능한 페이지에서 다른 사용자와의 구분을 일련번호 등의 단순한 값으로 하는지 확인한다. ex) https://example.com/mypage.html?post=111 (내 게시글) - 일련번호가 들어가는 파라미터의 값을 변조하여 다른 사용자의 .. 2022. 12. 11.
쿠키 / 세션 / 토큰 / JWT 쿠키 / 세션 / 토큰 쿠키 인증: key-value 형식의 문자열 / 클라이언트가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일이다. 요청 시 쿠키의 값을 그대로 보낸다는 취약점이 존재한다. 세션 인증: 쿠키의 보안적 이슈 때문에 비밀번호 등 클라이언트의 민감한 인증 정보를 브라우저가 아닌 서버 측에 저장하고 관리한다. 민감한 정보는 클라이언트에 보내지 않고 서버에서 모두 관리한다. 토큰 인증: 클라이언트가 서버에 접속을 하면 서버에서 해당 클라이언트에게 인증되었다는 의미로 '토큰'을 부여한다. 이 토큰은 유일하며 토큰을 발급받은 클라이언트는 또 다시 서버에 요청을 보낼 때 요청 헤더에 토큰을 심어서 보낸다. 그러면 서버에서.. 2022. 10. 15.
CI / DI / SSO CI / DI CI: Connecting Information (연계정보) 본인 확인 기관 등에서 개인별로 고유하게 부여하는 개인 식별정보로, 어느 업체에서 발급해도 유일하게 발급되므로 이 값이 같으면 동일인으로 판단할 수 있다. 주민등록번호 수집이 금지되면서 인터넷 서비스업체에서는 휴대폰 본인인증, 공인인증, 신용카드 인증을 통해 CI를 제공받고 있으며, 주민등록번호를 대신해 고객을 구별하는 데이터로 사용한다. 구조: 88byte, 영어 대소문자와 특수문자의 조합으로 표현 DI: Duplication Information (중복정보 또는 중복가입확인정보) 인증 업체별로 사용자에게 부여하는 고유번호이며 동일인이라 하더라도 인증업체가 다르면 DI가 다르다. 한 사람이 여러 개의 계정을 만드는 것을 방지하고.. 2022. 10. 15.
[MySQL] UNION, JOIN 차이 1. SQL 이란? MySQL, ORACLE 등 데이터베이스에서 데이터를 관리하기 위해 설계된 프로그래밍 언어 2. UNION 2-1. UNION 정의 2개 이상의 쿼리 결과를 단일 결과 세트로 연결한다. UNION ALL: 중복 항목을 포함한다. UNION: 중복 항목을 제외한다. 2-2. 규칙 열의 개수와 순서가 모든 쿼리에서 동일해야 한다. 단일 결과 세트로 나오기 때문이다. 데이터 형식이 호환되어야 한다. 즉, 숫자면 숫자, 문자면 문자라는 조건이 성립되어야 한다. 3. JOIN https://lyk00331.tistory.com/107 https://lyk00331.tistory.com/108 https://lyk00331.tistory.com/109 참고하기 !! 4. 차이점 UNION: 하나.. 2022. 3. 3.
[MySQL] JOIN - OUTER JOIN (LEFT+RIGHT) 1. SQL 이란? MySQL, ORACLE 등 데이터베이스에서 데이터를 관리하기 위해 설계된 프로그래밍 언어 2. JOIN 2-1. JOIN 정의 둘 이상의 테이블을 연결해서 데이터를 검색하는 방법 연결하기 위해 테이블이 적어도 하나의 컬럼을 공유하고 있어야 한다. 이때, 공유하는 컬럼을 PK 또는 FK 값으로 사용한다. 2-2. PK(Primary Key), FK(Foreign Key) PK: 기본 키라고 하며, 엔티티를 식별하는 대표 키다. NULL일 수 없다. FK: 다른 테이블의 PK를 참조하는 키다. 어떠한 테이블에서 존재하는 다른 테이블의 정보이기 때문에 왜래 키이다. 참조하고자 하는 컬럼은 PK 또는 UK이여야 한다. PK와 FK는 테이블의 필수 요소로써, 모든 테이블은 이들 둘 중 하나 .. 2022. 3. 3.
[MySQL] JOIN - LEFT/RIGHT JOIN 1. SQL 이란? MySQL, ORACLE 등 데이터베이스에서 데이터를 관리하기 위해 설계된 프로그래밍 언어 2. JOIN 2-1. JOIN 정의 둘 이상의 테이블을 연결해서 데이터를 검색하는 방법 연결하기 위해 테이블이 적어도 하나의 컬럼을 공유하고 있어야 한다. 이때, 공유하는 컬럼을 PK 또는 FK 값으로 사용한다. 2-2. PK(Primary Key), FK(Foreign Key) PK: 기본 키라고 하며, 엔티티를 식별하는 대표 키다. NULL일 수 없다. FK: 다른 테이블의 PK를 참조하는 키다. 어떠한 테이블에서 존재하는 다른 테이블의 정보이기 때문에 왜래 키이다. 참조하고자 하는 컬럼은 PK 또는 UK이여야 한다. PK와 FK는 테이블의 필수 요소로써, 모든 테이블은 이들 둘 중 하나 .. 2022. 3. 2.
[MySQL] JOIN - INNER JOIN 1. SQL 이란? MySQL, ORACLE 등 데이터베이스에서 데이터를 관리하기 위해 설계된 프로그래밍 언어 2. JOIN 2-1. JOIN 정의 둘 이상의 테이블을 연결해서 데이터를 검색하는 방법 연결하기 위해 테이블이 적어도 하나의 컬럼을 공유하고 있어야 한다. 이때, 공유하는 컬럼을 PK 또는 FK 값으로 사용한다. 2-2. PK(Primary Key), FK(Foreign Key) PK: 기본 키라고 하며, 엔티티를 식별하는 대표 키다. NULL일 수 없다. FK: 다른 테이블의 PK를 참조하는 키다. 어떠한 테이블에서 존재하는 다른 테이블의 정보이기 때문에 왜래 키이다. 참조하고자 하는 컬럼은 PK 또는 UK이여야 한다. PK와 FK는 테이블의 필수 요소로써, 모든 테이블은 이들 둘 중 하나 .. 2022. 3. 2.
[MySQL] SUM, MAX, MIN 1. SQL 이란? MySQL, ORACLE 등 데이터베이스에서 데이터를 관리하기 위해 설계된 프로그래밍 언어 2. SUM, MAX, MIN 2-1. 집계 함수 계산을 수행하고 단일 값을 반환한다. Count() 함수를 제외한 집계 함수는 NULL 값을 무시하며, SELECT문 혹은 HAVING 절에만 사용할 수 있다. 2-2. Count() * NULL 포함 여부에 관계없이 대상 테이블의 모든 행을 카운트한다. ALL 모든 값에 적용된다. NULL이 아닌 값의 수를 반환한다. DISTINCT 중복 값을 무시한다. 즉 유니크하며 NULL이 아닌 값의 수를 반환한다. expression 단일 상수, 변수, 스칼라 함수 또는 열 이름으로 구성된 식이며 값을 다른 값과 비교하는 SQL 쿼리일 수도 있다. 텍스.. 2022. 2. 27.