security/web

JWT

JWT(Json Web Token) 웹에서 사용되는 JSON 형식의 토큰에 대한 표준 규격 구조 : HEADER.PAYLOAD.SIGNATURE [Header] typ : 토큰의 유형 alg : 서명 알고리즘 [Payload] 사용자의 인가/인증 정보 iss : 토큰 발급자 sub : 인증 주체 iat : 발급 시각 exp : 만료 시각 [Signature] 헤더와 페이로드가 비밀키로 서명되어 저장된다. JS - JWT 서버가 로그인을 완료한 클라이언트에게 발급해주는 문자열로, 이 문자열에는 사용자의 인증/인가 정보가 담겨있다. 클라이언트는 서버로 요청할 때 마다 이 정보를 함께 전송한다. 서버는 JWT 토큰을 발급할 때 서명(sign)을 하고, 클라이언트로부터 토큰을 받았을 때 검증(vertify) 한..

security/web 2023.11.27

Quine

콰인(quine) 자기자신의 소스코드를 출력하는 프로그램 Quine SQL Query SELECT REPLACE(REPLACE('SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS Quine',CHAR(34),CHAR(39)),CHAR(36),'SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS Quine') AS Quine; prefix와 postfix 부분에 부가문장을 삽입하여 사용할 수 있다. # single quotation [prefix] select replace(replace('[prefix] select replace(replace("$",char(34),char(39)..

security/web 2023.11.10

htmlentities

htmlentities 적용 가능한 문자를 HTML 엔티티로 변환해준다. description htmlentities( string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, ?string $encoding = null, bool $double_encode = true ): string - string 입력 문자열 - flag default : ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 ENT_QUOTES : 큰따옴표와 작은따옴표 변환 - encoding 문자를 변환할 때 사용되는 인코딩을 정의하는 인수 return 인코딩된 문자열을 반환한다.

security/web 2023.10.28

MySQL DB 명령어

MySQL information_schema : 기본적으로 만들어져 있는 DB 모든 DB에 대한 정보가 담겨져 있다. DB - select database() : 현재 사용중인 DB명 출력 - show databases : DB 조회 select 문만 이용해야 하는 경우 information_schema의 schemata 테이블을 조회하여 확인할 수 있다. - information_schema.schemata : DB 조회 select schema_name from information_schema.schemata; schema_name : DB이름 Table - show tables : table 조회 select 문만 이용해야 하는 경우 information_schema의 tables 테이블을 조회하..

security/web 2023.10.17

정규 표현식

정규 표현식 패턴 '패턴' 혹은 /패턴/ 의 형태로 작성 /로 패턴을 감싸는 경우, / 뒤에 플래그를 작성할 수 있음 패턴 설명 예시 문자 혹은 문자열 해당 문자 혹은 문자열과 매치 abc -> Hello abc /ab/ -> Hello abc . 모든 문자와 매치 a.c -> Hello abc | 앞 또는 뒤 패턴과 매치 hi|ab -> Hello abc [] [] 안의 문자와 매치 [ae] -> Hello abc [^] ^ 뒤의 패턴을 제외한 나머지와 매치 [^a] -> abc ^ 어떤 문자열의 시작이 특정 패턴인 경우 매치 ^a -> Hello abc ^a -> abc Hello $ 어떤 문자열의 끝이 특정 패턴인 경우 매치 c$ -> Hello abc c$ -> abc Hello \ \ 뒤의 특수..

security/web 2023.09.27

CouchDBMS

- CouchDB JSON 객체 형태인 도큐먼트 저장 키와 값이 하나의 쌍을 이루는 데이터를 저장 REST API 형식으로 HTTP 메서드를 사용해 요청을 받고 처리함 데이터 삽입 : users 데이터베이스 값 추가 curl -X PUT http://{username}:{password}@localhost:5984/users/guest -d '{"upw":"guest"}' 데이터 조회 : users 데이터베이스 값 조회 curl http://{username}:{password}@localhost:5984/users/guest - CouchDB 특수 구성요소 (서버) / : 인스턴스에 대한 메타정보 반환 /_all_dbs : 인스턴스 데이터베이스 목록 반환 /_utils : 관리자 페이지 이동 (DB) ..

security/web 2023.08.19

CSS Injection

CSS(Cascading Style Sheet) HTML로 정의된 문서를 사용자에게 어떻게 보일지 정의 CSS Injection 임의의 CSS 코드를 주입시켜 의도하지 않은 속성이 정의되고, 악의적인 동작을 이끔 - 임의 영역의 UI 변경 가능 - IP Ping Back : 외부 서버로 요청하고, 외부 리소스를 불러옴 @import 'https://leaking.via/css-import-string'; @import url(https://leaking.via/css-import-url); background: url(https://leaking.via/css-background); background-image: \000075\000072\00006C(https://leaking.via/css-esca..

security/web 2023.07.15

[SQL Injection] Error&Time based

Error based SQL Injection 임의로 에러를 발생시켜 데이터베이스 및 운영체제 정보 획득하는 공격 기법 실행결과를 출력하는 코드가 존재하지 않고 쿼리 실행 결과만 판단한다. 오류 발생 시 발생원인이 출력되며, 오류메시지를 통해 공격에 필요한 다양한 정보 수집이 가능하다. - 공격 코드 select extractvalue(1,concat(0x3a, version())); 에러 메시지에 운영체제에 대한 정보가 포함된다. - extractvalue extractvalue([XML 데이터],[XPATH 식]) 첫번째 인자로 전달된 XML 데이터에서 두번째 인자인 XPATH 식을 통해 데이터 추출이 가능하다. 두번째 인자가 올바르지 않은 XPATH 식일 경우, 에러메시지와 함께 잘못된 식이 출력된..

security/web 2023.01.24