분류 전체보기

프롤로그 이건 또 뭘까..;; 서론 웹 개발 언어는 HTTP 요청을 전송하는 라이브러리를 제공한다. 파이썬같은 경우 urllib, requests 가 있다. 이 라이브러리는 HTTP 요청을 보낼 클라이언트 뿐만 아니라 서버와 서버간 통신을 위해 사용되기도 한다. 일반적으로 다른 웹 애플리케이션에 존재하는 리소스를 사용하기 위한 목적으로 통신한다. 기존에는 단일 서비스로 웹 서비스를 구현하였지만, 이제는 관리 및 코드의 복잡도를 낮추기 위해 마이크로서비스들로 웹 서비스를 구현하는 추세인데, 각 마이크로서비스는 주로 HTTP, GRPC 등을 사용해 API 통신을 한다. 서비스간 HTTP 통신이 이루어질때 요청 내에 이용자의 입력값이 포함될 수 있는데, 이용자의 입력값으로 포함되면 개발자가 의도하지 않은 요청..
문제 https://dreamhack.io/wargame/challenges/38 image-storage php로 작성된 파일 저장 서비스입니다. 파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다. Reference Server-side Basic dreamhack.io 문제코드 Image Storage Home List Upload Upload and Share Image ! Image Storage Home List Upload
프롤로그 아 개어려운데 풀 수 있을까? 문제 문제코드 #!/usr/bin/env python3 import os import shutil from flask import Flask, request, render_template, redirect from flag import FLAG APP = Flask(__name__) UPLOAD_DIR = 'uploads' @APP.route('/') def index(): files = os.listdir(UPLOAD_DIR) return render_template('index.html', files=files) @APP.route('/upload', methods=['GET', 'POST']) def upload_memo(): if request.method ..
프롤로그 웹개발 하면서 가장 많이 애먹었던 것은 CORS 부분이랑 여기 파일 올릴때 보안 정책이었다. 그것에 대해 배우는 것 같아서 이제 웹개발할때 조금 더 편하지 않을까 싶다. 서론 파일 공유 서비스를 개발할때, 이용자가 업로드한 파일을 데이터베이스에 저장하는 것보다는 서버의 파일 시스템에 저장하는 것이 개발하기 쉽고, 관리 효율도 높으나 임의 파일이 다운로드 되는 취약점이나, 악성 웹셸 파일을 업로드 하여 임의 코드를 실행할 수 있는 취약점이 발생되기도 한다. 파일 업로드와 관련해서 발생하는 취약점은 파일 업로드 취약점(File Upload Vulnerability)이다. 파일 시스템상 임의 경로에 원하는 파일을 업로드 하거나 악성 확장자를 갖는 파일을 업로드할 수 있을 때 발생한다. 원하는 시스템 ..
문제 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이다. 카이사르 암호 도구를 구현하는 핵심은 카이사르 문자변..
프롤로그 매트랩에서 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 ..
성밍쟁
'분류 전체보기' 카테고리의 글 목록 (4 Page)