전체 글

성밍쟁 공붕방
프롤로그 Stored Procedure 스토어드 프로시저...이름 길다 스토어드 프로시저 스토어드 프로시저란 MySQL에서 제공해주는 프로그래밍 기능을 말한다. 즉 SQL 문을 하나로 묶어서 편리하게 사용하는 기능이다. 실무에서 SQL문(주로 SELECT)을 매번 하나하나 수행하기 보다는 스토어드 프로시저로 만들어 놓은 후에 스토어드 프로시저를 호출하는 방식을 많이 사용한다. 실습 매번 회원 테이블 "당탕이"의 정보와 제품 테이블의 " 냉장고"의 정보를 동시에 조회한다고 가정하자 shopdb인지 확인하자 매번 조회를 해야한다면 SELECT * FROM memberTBL WHERE memberName = "당탕이"; SELECT * FROM productTBL WHERE productNAME = "냉장고"..
프롤로그 인덱스, 뷰, 스토어드 프로시저, 트리거 이렇게 4개를 각각의 글로 생성하면 양산형 글이 될 거 같아서 하기는 싫은데, 아예 나도 처음 배우는 개념이고 따로 적어서 따로 정리한 거 보는 게 나을 거 같아서 그냥 ...해야지..뭐; 뷰(View) 뷰란 가상의 테이블이다. 사용자 입장에서는 테이블과 동일하게 보이지만 뷰는 실제 행 데이터를 가지고 있지 않다. 그 실체는 없는 것이며, 진짜 테이블에 링크된 개념이다. 그래서 뷰를 SELECt 하면 결국 진짜 테이블의 데이터를 조회하는 것과 같다. 우리가 기존에 생성했던 회원테이블에서 아르바이트 같은 사람에게 회원 전체 정보를 보여줄 수 없으니 아이디와 주소만 보여주기 위해 뷰를 사용하는 것이다. 그래서 개인정보등 중요한 정보는 이 사람이 볼 수 없다...
프롤로그 데이터 베이스 안에 테이블만 표현하고 저번 글 2024.01.17 - [데이터베이스] - [데이터베이스] 데이터베이스 구축 절차 #3 [데이터베이스] 데이터베이스 구축 절차 #3 프롤로그 아 할 거 너무 많은데....큰일났다;; 정보 시스템 구축 절차 분석->설계->구현->시험->유지보수 분석 : 구현하고자 하는 프로젝트의 가장 첫 단계. 시스템 분석 또는 요구사항 분석. "what" taesan-smj.tistory.com 에서도 테이블 생성하고 데이터를 넣는 과정을 배웠다. 이게 기본적이고 중요하긴 하지만 테이블만 가지고 실무에서 데이터베이스를 운영하지 않는다. 다른 데이터베이스 개체로는 인덱스, 스토어드 프로시저, 트리거, 함수, 트리거 커서 등이 있지만 이번엔 인덱스만 알아보자. 인덱스 ..
프롤로그 자 지금까지 2024.01.17 - [보안 스터디/암호학] - [암호학] 암호화 해킹 #4 (대칭키 암호, Symmetric-key Cryptography) [암호학] 암호화 해킹 #4 (대칭키 암호, Symmetric-key Cryptography) 프롤로그 이제 암호학 본격적으로 들어가보자 대칭키 암호 대칭키 암호란 암호화에 사용되는 암호키와 복호화에 사용되는 암호키가 동일한 암호화 기법을 말한다. 대칭키 암호 방식으로 암호 taesan-smj.tistory.com 대칭키 암호에 대해서 배우고, 블록 암호화 스트림 암호를 대해서 배웠다. 스트림 암호인 ARC4를 구현했었다. 2024.01.18 - [보안 스터디/암호학] - [암호학] 암호화 해킹 #7 (스트림 암호와 ARC4) [암호학] 암..
프롤로그 파이썬에서 암호화된 내용을 파일로 저장을 하고, 해당 파일을 매트랩에서 불러오려고 했는데, 인코딩 디코딩에서 문제가 생기는지 계속 이상한 특수 문자가 생겨서 저번 글이랑 아예 차이가 없을 거 같다. AES(Rijndael 알고리즘) AES(Advanced Encryption Standard)는 DES를 대체하기 위해 2001년 미국 표준 기술 연구소(NIST)에서 제정한 새로운 암호 표준이다. SPN 블록 구조를 사용하는데, 키는 128비트, 192비트, 256비트를 지원하며 암호 블록 크기는 128비트 이다. AES 알고리즘에 대한 공격 방법은 다양하게 알려져 있으나 아직까지 AES로 암호화된 정보가 완전히 해독된 사례가 없기 때문에 안전성이 보장된 알고리즘이라고 할 수 있다. SPN 구조 (..
프롤로그 대칭키 암호 - 스트림 구조 - 블록 구조 - 파이스텔 방식 - SPN 구조에서 파이스텔 방식에서 2024.01.18 - [보안 스터디/암호학] - [암호학] 암호화 해킹 #5 (3DES 및 구현) [암호학] 암호화 해킹 #5 (3DES 및 구현) 프롤로그 아 좀 빡센데 3DES DES(Data Encryption Standard 는 1970년대 IBM에서 파이스텔 블록구조에 기반하여 설계뙤고 개발된 56비트 암호화 알고리즘으로써 되게 인기있었지만 56비트라는 작은 암호키로 taesan-smj.tistory.com DES 방식을 직접 구현해보았고 SPN 방식에서 2024.01.18 - [보안 스터디/암호학] - [암호학] 암호화 해킹 #6 (AES 및 구현) [암호학] 암호화 해킹 #6 (AES..
프롤로그 2024.01.17 - [보안 스터디/암호학] - [암호학] 암호화 해킹 #4 (대칭키 암호, Symmetric-key Cryptography) [암호학] 암호화 해킹 #4 (대칭키 암호, Symmetric-key Cryptography) 프롤로그 이제 암호학 본격적으로 들어가보자 대칭키 암호 대칭키 암호란 암호화에 사용되는 암호키와 복호화에 사용되는 암호키가 동일한 암호화 기법을 말한다. 대칭키 암호 방식으로 암호 taesan-smj.tistory.com 이 글을 복습해보자면, 대칭키 암호란 암호화에 사용되는 암호키와 복호화에 사용되는 암호키가 서로 동일한 암호화 기법이라고 하였다. 이 대칭키 암호화 방식은 데이터를 변환하는 방식에 따라 블록암호화 스트림 암호로 구분된다. 이때, 지금 우리는 ..
프롤로그 암호학을 공부하기 위해 파이썬의 from Crypto.Cipher import DES3 from Crypto.Hash import SHA256 as SHA import sys 를 사용했었고, 이걸 매트랩에서 똑같이 구현해볼려고 했는데, 매트랩에서는 Cryptograph 와 관련된 Toolbox가 존재하지 않았다. 이를 매트랩에서 활용할려면 결국 파이썬으로 넘겨주고 파이썬에서 실행한 후에 이를 매트랩으로 다시 가져와야한다. 이를 알아보자. 우선 DES를 확인하기 전에 2가지 알아야할 게 있다. (1) 파이스텔 구조 평문이 주어졌을 때, 입력되는 평문 블록을 좌우 두개 블록으로 분할하고, 좌측 블록을 파이스텔 함수라 불리는 라운드 함수를 적용하여 출력된 결과를 우측 블록에 적용하는 과정을 반복적으로..
프롤로그 아 좀 빡센데 3DES DES(Data Encryption Standard 는 1970년대 IBM에서 파이스텔 블록구조에 기반하여 설계뙤고 개발된 56비트 암호화 알고리즘으로써 되게 인기있었지만 56비트라는 작은 암호키로 인하여 빠르게 깨졌다.현재 컴퓨팅 기술로 DES는 보안성이 결여되어 현재 사용하지 않는 암호화 알고리즘이 되어버렸다. 이를 보완하기 위하여 나온 게 3DES(Triple DES)인데, 3DES는 암호화를 위해 블록당 3번의 DES를 수행함. 즉 56 * 3 = 168비트 키 암호화 알고리즘이며, DES의 핵심 알고리즘의 변경없이 적용되었다. DES에 비해 보안적인 요소는 증가했지만 성능은 감소하였다. CBC 모드라는 운영모드가 있는데, 이전 블록의 암호회된 블록과 XOR연산을 ..
프롤로그 이제 암호학 본격적으로 들어가보자 대칭키 암호 대칭키 암호란 암호화에 사용되는 암호키와 복호화에 사용되는 암호키가 동일한 암호화 기법을 말한다. 대칭키 암호 방식으로 암호화한 정보를 누군가에게 보낼 때 암호키도 함께 보내야 하는데, 암호키 자체는 암호화가 되지 않은 평문이다. 이 과정에서 암호키를 분실하거나 타인에게 노출되면 이 암호키로 암호화한 정보는 보안에 매우 취약해진다. 그래서 이 대칭키 암호의 최대약점은 암호키를 관리하고 전달하는 메커니즘이다. 대칭키 암호 원리 대칭키 암호는 이진수의 비트간 배타적 논리합(XOR) 연산에 기반한다. 원래의 정보에 암호키와 비트간 XOR 연산을 하여 암호화된 정보를 반드는 것이고, 암호화된 정보에 암호키를 비트간 XOR연산을 하여 원래 정보로 복호화한다...
프롤로그 아 할 거 너무 많은데....큰일났다;; 정보 시스템 구축 절차 분석->설계->구현->시험->유지보수 분석 : 구현하고자 하는 프로젝트의 가장 첫 단계. 시스템 분석 또는 요구사항 분석. "what" 즉 무엇을 할 것인가 결정 설계 : 우리가 구축하고자 하는 시스템을 "How" 즉 어떻게 할 것인가 결정 나머지는 알아서 프로그래머가 다 한다. 그래서 분석 설계가 끝나면 50% 이상이 끝난다. 데이터베이스 모델링과 필수 용어 -데이터베이스 모델링 : 분석과 설계 과정 중에서 가장 중요한 과정. 현실세계에서 사용되는 데이터를 MySQL에 어떻게 옮겨 놓을 것인가 결정하는 과정. 정보들을 단편적으로 저장하는 것이 아니라 테이블이라는 형식에 맞춰서 넣어야한다. -데이터 : 단편적인 정보. 정보는 있으나..
문제 https://dreamhack.io/wargame/challenges/75 web-ssrf flask로 작성된 image viewer 서비스 입니다. SSRF 취약점을 이용해 플래그를 획득하세요. 플래그는 /app/flag.txt에 있습니다. 문제 수정 내역 2023.07.17 css, html 제공 Reference Server-side Basic dreamhack.io 문제코드 #!/usr/bin/python3 from flask import ( Flask, request, render_template ) import http.server import threading import requests import os, random, base64 from urllib.parse import url..
성밍쟁
너드인의 밤