보안

문제 https://dreamhack.io/wargame/challenges/44 command-injection-1 특정 Host에 ping 패킷을 보내는 서비스입니다. Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다. Reference Introduction of Webhacking dreamhack.io 문제코드 #!/usr/bin/env python3 import subprocess from flask import Flask, request, render_template, redirect from flag import FLAG APP = Flask(__name__) @APP.route('/') def index(): return render_templ..
프롤로그 웹 해킹 강의 현재 75퍼까지 진행되었다. 얼마 남지 않았는데 최대한 빨리 끝내고 웹해킹쪽은 워게임 문제풀이 많이 해봐야겠다. 서론 어떤 기능에 대해서 새로 코드를 짜는 것 보단 이미 있는 내장 명령어를 쓰는 경우가 많다.(ls, who...) 다양한 웹 어플리케이션 제작용 언어는 시스템에 내장되어 있는 프로그램들을 호출 할 수 있는 함수를 지원한다. 이 시스템 함수를 사용하면 이미 설치된 소프트웨어들을 쉽게 이용할 수 있다는 장점이 있으나, 함수의 인자를 셸의 명령어로 전달한다는 점에서 치명적인 취약점이 이어지기도 한다. -> 이를 Command Injection(명령어를 실행해 주는 함수를 잘못사용하여 발생) 이라고 한다. Command Injection 인젝션(Injection) : 악의적..
프롤로그 기존에 음성, 영상, 사진 데이터를 매트랩으로 불러오는 과정을 적어두었다. 2024.01.10 - [스펙업/2024 winter-study] - [MATLAB] 매트랩으로 파일 불러오고 저장하기 (동영상, 사진, 음성) [MATLAB] 매트랩으로 파일 불러오고 저장하기 (동영상, 사진, 음성) 프롤로그 무선통신 스터디를 진행하는데, 매트랩을 이용하여 음성, 영상, 텍스트 파일 불러오고 변화된 후 파일 저장하는 방법을 알아낸 것을 정리하였다. 음성 파일 불러오기 & 저장하기 [y, Fs] taesan-smj.tistory.com 이제 이것을 bit_stream 즉, 00100110110 이런식으로 변환하는 방법을 알아보겠다. 이 비트데이터로 변환된 후 조작을 하는 과정을 C언어 함수를 이용해서 하..
프롤로그 고전 암호라서 딱히 어렵지는 않음. 근데 귀찮음. 그래도 기초는 이번을 마지막으로 끝날 듯 전치암호 전치 암호란 평문의 문자 위치를 서로 바꾸어 암호문을 만드는 기술. "대국민한 사만들람 이수할해 있다니습" 이렇게 작성한 걸 전치암호 이다. 암호 원리 각 기둥에 종이로 만든 띠를 감고, 기둥 면 방향으로 메시지를 적은 후 띠를 풀게 되면 종이에 적힌 문장은 알아보기 힘든 암호 문장이 됨. 전치 암호 종류 (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이다. 카이사르 암호 도구를 구현하는 핵심은 카이사르 문자변..
문제 문제 코드 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..
프롤로그 이 글은 "화이트 해커를 위한 암호화 해킹" 을 이용하여 공부하는 걸 기록하기 위한 글이다. 주요 내용 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에 데이터를..
프롤로그 https://learn.dreamhack.io/169 로그인 | Dreamhack dreamhack.io 웹 개발을 실제로 해보면서 (물론 장고긴 하지만), 데이터베이스 구조화 부터 먼저 시켰다. 데이터베이스를 먼저 설정하지 않고 무지성으로 홈페이지 개발하다 보면, 필요한 거 추가하느라 모델(DB)를 수정시켰고, 이 수정 잘못 시키는 순간 엄청난 오류로 인해서 코드 다 갈아엎었던 기억이 난다. 이번에는 그 데이터베이스와 관련된 강의가 진행되는 것 같다. 데이터 베이스(Database) : 정보를 기록하기 위함 데이터베이스 관리 어플리케이션(DataBase Management System, DBMS) : 데이터베이스 관리 Database Management System 웹 서비스는 데이터베이스에..
성밍쟁
'보안' 태그의 글 목록 (3 Page)