분류 전체보기

프롤로그 고전 암호라서 딱히 어렵지는 않음. 근데 귀찮음. 그래도 기초는 이번을 마지막으로 끝날 듯 전치암호 전치 암호란 평문의 문자 위치를 서로 바꾸어 암호문을 만드는 기술. "대국민한 사만들람 이수할해 있다니습" 이렇게 작성한 걸 전치암호 이다. 암호 원리 각 기둥에 종이로 만든 띠를 감고, 기둥 면 방향으로 메시지를 적은 후 띠를 풀게 되면 종이에 적힌 문장은 알아보기 힘든 암호 문장이 됨. 전치 암호 종류 (1) 레일 펜스 암호(RAIL FENCE CIPHER) 평문의 문자를 비스듬하게 작성하고, 맨 위의 첫 번째 행부터 순서대로 취하여 암호문을 작성하는 방법 (2) 라우트 암호(ROUTE CIPHER) m x n 격자에 평문 글자를 기록하고 읽는 방법에 따라 글자를 취하여 암호문을 작성하는 방법..
프롤로그 아...여기 파트 그냥 노가다라 개귀찮다 카이사르 로마황제 율리우스 카이사르가 만든 암호문으로써, 모든 알파벳 문자를 일정한 크기만큼 이동시키고, 그 문자로 지환하여 만든다. A B B C C D D E 1칸씩 뒤로 밀려서 만들어진 것을 알 수 있다. A LOT OF THINGS OCCUR EACH DAY 위 규칙을 적용했을 때 해당 문장은 B MPU PG UIJOHT PDDVS FBDI EBZ 로 알아보기 힘든 문장이 되었다. 구현 A~Z까지를 0~25의 숫자로 맵핑한다. A->0, B->1, C->2... 여기서 내가 몇 칸 이동할 것인지를 변수 K 라고 두고, 현재의 문자 인덱스를 I라고 했을 때 인코딩 된 값은 (I+K) % 26이다. 카이사르 암호 도구를 구현하는 핵심은 카이사르 문자변..
프롤로그 매트랩에서 C언어에서 작성된 함수를 불러와서 사용해야하는 일을 알아보기 위해 이것저것 찾아보았다. 찾은 방법은 총 2가지이며 MEX와 DLL 방법 두 가지이다. MEX는 MATLAB에서 빠르고 편리하게 사용할 수 있는 방면에 MATLAB API 를 사용하기 때문에 C언어에서 조금씩 변형된 함수들로 작성해야하고 DLL은 그냥 복잡했다. MEX (MATLAB Executable) MEX는 MATLAB에서 C, C++ 또는 Fortran 으로 작성된 프로그램을 실행할 수 있게 하는 기능으로, 이를 통해 MATLAB의 고수준 언어 기능과 C/C++ 또는 Fortran 의 저수준 언어 성능을 결합할 수 있다. MEX 파일은 MATLAB 함수처럼 동작하며, MATLAB 데이터 타입과 직접적으로 상호작용할 ..
문제 문제 코드 const express = require('express'); const app = express(); const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/main', { useNewUrlParser: true, useUnifiedTopology: true }); const db = mongoose.connection; // flag is in db, {'uid': 'admin', 'upw': 'DH{32alphanumeric}'} const BAN = ['admin', 'dh', 'admi']; filter = function(data){ const dump = JSON.stringify(data).t..
NoSQL Injection 이전의 SQL Injection과 공격 목적 및 방법이 매우 유사하다. 두 공격 모두 이용자의 입력값이 쿼리에 포함되면서 발생하는 문제점으로써, 이용자의 입력값에 대한 타입 검증이 불충분할 때 발생한다. No SQL중 하나인 MongoDB는 정수, 날짜, 실수 이외에도 오브젝트, 배열 타입을 사용할 수 있는데 오브젝트 타입의 입력값을 처리할 때 쿼리 연산자를 사용할 때 다양한 행위를 할 수 있다. https://docs.mongodb.com/manual/reference/operator/query/type/ $type — MongoDB Manual Docs Home → MongoDB Manual $type$type selects documents where the value ..
프롤로그 simple_sqli 워게임 문제에서 Bilnd SQL Inejction 해볼려고 했는데 안 됐다; 자꾸 requests 모델이 없다는데 파이썬 새 버전 설치에 별 거 다해봤는데 안 돼서 그냥 비관계형 DBMS 로 넘어왔다. NRDMBS(NoSQL) RDBMS의 단점은 저장해야하는 데이터가 많아지면 용량의 한계에 다다를 수 있는 것인데, 이를 해결하기 위해서 나왔다. RDBMS는 SQL를 사용해 데이터를 조회 및 추가 그리고 삭제할 수 있었는데, NoSQL은 SQL를 사용하지 않고 복잡하지 않은 데이터를 저장해 단순 검색 및 추가 검색 작업을 위해 매우 최적화된 저장 공간이 큰 특징이고 관계형과의 차이점이 있다. 관계형은 SQL이라는 정해진 문법으로 데이터를 저장하기에 SQL이 필수인데, NoS..
프롤로그 이 카테고리는 이것이 MySQL 이다를 보며 데이터베이스 보안을 위해 데이터베이스를 공부하는 공간이다. MySQL 설치하기 https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Installer Note: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL Configurator, a tool that helps configure MySQL Server. dev.mysql.c..
프롤로그 무선통신 스터디를 진행하는데, 매트랩을 이용하여 음성, 영상, 텍스트 파일 불러오고 변화된 후 파일 저장하는 방법을 알아낸 것을 정리하였다. 음성 파일 불러오기 & 저장하기 [y, Fs] = audioread("./testvoice.m4a"); %파일 불러오기 y_modified = y * 0.1; % 볼륨 10% 로 감소 audiowrite('modifiedvoice.m4a', y_modified, Fs); %파일 저장하기 처음에 위와 같이 testvoice.m4a 파일 하나만 존재하였는데 해당 코드를 실행하게 되면 새로운 음성 파일이 저장이 된 것을 확인 할 수 있다. 이때 [y, Fs] 로 불러오는데, y는 오디오 데이터, Fs 는 샘플링 레이트를 나타낸다. 샘플링 레이트란 초당 샘플 수를..
프롤로그 이 카테고리는 이것이 MySQL 이다를 보며 데이터베이스 보안을 위해 데이터베이스를 공부하는 공간이다. 데이터베이스 정의 데이터베이스 : 데이터의 집합 DBMS : 데이터베이스를 관리, 운영하는 역할, 여러 명의 사용자나 응용 프로그램이 공유하고 동시에 접근 가능하여야 함. MySQL, MariaDB, Oracle... 등등이 있음. 데이터베이스 특징 - 무결성 데이터베이스 안의 데이터는 어떤 경로를 통해 들어왔던지 데이터에 오류가 있어서는 안 됨. 무결성을 위해서 데이터베이스는 제약조건이라는 특성을 가짐(ex) 중복 불가, 반드시 포함되기 등...) -데이터의 독립성 데이터베이스의 크기를 변경하건가 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용프로그램은 전혀 영향 받으면 안 됨 -> ..
프롤로그 이 글은 "화이트 해커를 위한 암호화 해킹" 을 이용하여 공부하는 걸 기록하기 위한 글이다. 주요 내용 I love you 라는 평문이 있을 때, a -> 2, b -> d 이런식으로 각 단어들을 다른 단어로 치환해서 새로운 암호문을 만드는 것을 가장 첫 번째 코드로 나온다. 첫 장이다 보니까 파이썬 기초문법들이 나오는데, 나는 이미 백준 골드3을 파이썬으로만 300문제 이상 풀었기에 기초 문법은 다 알고 있어서 그냥 한 번 슥 훑어보면서 넘어갔다. 그래서 여기 설명에도 안 적을 거다. 단문 암호화 복호화 하기 코드 def makeCodebook(): decbook = {"5":"a", "2":"b", "#":"d", "8":"e", "1":"f", "3":"g", "4":"h", "6":"i"..
문제 https://dreamhack.io/wargame/challenges/24/ simple_sqli 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference Server-side Basic dreamhack.io 문제코드 #!/usr/bin/python3 from flask import Flask, request, render_template, g import sqlite3 import os import binascii app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read() except:..
프롤로그 제목에서부터 SQL Injection 나온다. 인터넷 뒤져봤는데, 각 고객 정보 유출....핸드폰번호 등의 고객정보 유출 등이 있을 때 SQL 인젝션 공격흔적이란 단어가 나온다. 사용자가 입력값에 필터링이 제대로 적용돼 있지 않을 때 발생한다고 되어 있는데, 공겨자가 조작된 SQL 질의문을 삽입해 웹 서버 DB정보를 열람하고 정보를 유출, 조작한다라고 되어 있다. 그러니까 SQL을 좀 알아야할 것 같다. 근데 내가 아는 건 Create table, update table 이거 딱 2개만 해봤는데 큰일났다. 서론 Injection(인젝션) : 주입, 이용자의 입력값이 어플리케이션의 처리과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점 SQL Injection SQL : DBMS에 데이터를..
성밍쟁
'분류 전체보기' 카테고리의 글 목록 (11 Page)