전체 글

전체 글

    DBSCAN?(1)

    DBSCAN정의K-Means 알고리즘과 DBSCAN의 차이동작 방식DBSCAN의 특징 및 장점ReferenceDBSCAN정의DBSCAN은 Density-Based Spatial Clustering of Applications with Noise의 약자로 핵심 데이터(Core Point)를 중심으로 밀도가 높은 곳에 포함된 데이터일 경우 클러스터링을 진행하고 밀도가 낮은 곳에 포함된 데이터를 노이즈로 판단하는 알고리즘이다. 간략히 말해 밀도 기반의 군집화 알고리즘이라는 의미이다. K-Means 알고리즘과 DBSCAN의 차이단순히, DBSCAN의 정의만 보았을 때 K-Means 알고리즘과 큰 차이를 못 느낄 수 있다. 그림을 통해 차이를 알아보도록 하자. 다음과 같이 데이터가 분포되어 있다고 가정하자.데이터..

    file-download-1 Write-Up

    문제문제는 다음과 같으며 flag.py에 플래그가 존재한다.file-download-1(출처 : dreamhack) Write-Up문제에서 주어지는 URL로 접속하면 다음과 같이 파일 업로드 하는 기능과 업로드한 파일들을 확인하는 기능이 구현되어 있다.홈페이지 기능 비록, 문제는 파일 다운로드 취약점을 사용하여 해결하는 문제이지만, 파일 업로드 취약점도 가능한지 확인하였다. 퍼알 업로드 취약점 공격이 가능하다면, 가장 우선적으로 생각하는 접근 방식은 웹 쉘을 올린 후 cat flag.py와 같이 flag.py를 확인하는 명령어를 통해 플래그를 획득하는 방식이다. 하지만, 해당 웹 페이지는 글의 내용을 Content로 변경하여 업로드를 진행하기 때문에 웹 쉘을 올리는 것이 불가능하다.Content로 변경되..

    파일 업로드 및 다운로드 취약점(File Upload and Download Vulnerability)

    해당 포스팅은 https://dreamhack.io/?obj=20 를 참고하여 공부 목적으로 작성하였습니다. 파일 업로드 취약점(File Upload Vulnerability)정의 및 종류파일 업로드 취약점은 말 그대로 웹 서비스(웹 서비스 첨부 파일, 환경 설정 미흡)를 통해 이용자의 파일을 서버의 시스템에 업로드하는 과정에서 발생하는 보얀 취약점으로 크게 Path Traversal과 악성 파일 업로드로 구분된다. 예시(Path Traversal)Path Traversal은 이용자가 업로드한 파일 이름을 그대로 사용할 경우 업로드 대상 디렉토리가 아닌 다른 디렉토리에 접근이 가능해져 발생하는 취약점이다. 예시를 살펴보자./fileupload는 POST 요청을 받으면 클라이언트가 전송한 파일을 ./upl..

    Burp Suite 설치 및 사용법

    Burp SuiteBurp Suite 란?중간에 프록시 서버를 구축하고 프록시 서버를 거쳐 지나가는 패킷에 대한 값들을 확인할 수 있는 툴로 Request Value 조작, 패킷 위조 등 다양한 조작이 가능하다. 보통 Web hacking 관련 문제를 풀며 많이 사용한다. Burp Suite 설치Burp Suite는 Enterprise, Professional, Community 3가지의 버전이 있으며 기업 및 전문가가 아닌 이상 Community 버전을 사용한다. 해당 사이트에서 Community 버전을 다운로드 할 수 있다.Download Burp Suite Community Edition - PortSwiggerBurp Suite enables its users to accelerate applic..

    Command Injection and Command Injection-1 Write Up

    해당 포스팅은 https://dreamhack.io/?obj=18 를 참고하여 공부 목적으로 작성하였습니다.Command Injection정의SQL Injeciton, DLL Injection과 같은 단어에서 유추할 수 있듯이 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점이다. 즉, 만약 웹이나 서버에 명령어를 실행하는 함수가 존재한다고 가정하자. 명령어를 실행하는 함수에 공격자가 임의의 인자(공격 코드)를 전달하면 Command Injection 취약점이 발생한다. Python을 예시로 살펴보자. Python에서는 기본적으로 os 라이브러리를 지원하고 있기 때문에 대상 IP에 Ping을 보내고 싶다면 os.system(”ping [target-ip]”)와 같이 시스템 함수를 실행할 수 있다. 하..

    비관계형 데이터 베이스 그리고 NoSQL Injection

    해당 포스팅은 https://dreamhack.io/lecture/courses/189 를 참고하여 작성하였으며 공부 목적으로 작성하였습니다. 비관계형 DB 등장 배경관계형 DB에서는 스키마를 정의하고 해당 규격에 맞는 데이터를 2차원 테이블 형태로 저장하기 때문에 복잡성이 증가하고 데이터가 많아질 경우 용량의 한계에 다다른다는 한계점이 존재한다.⇒ 이를 해결하기 위해 등장한 것이 비관계형 데이터 베이스(Non-Relational DBMS) 이다. NoSQL 또한 이용자의 입력값을 통해 동적으로 쿼리를 생성해 데이터를 저장하기 때문에 이와 같은 문제점이 발생한다. 비관계형 DB관계형 DBMS와는 다르게 최적화된 저장 공간이 크며 키-값을 사용해 값을 저장한다는 차이점이 존재한다.하지만, 비관계형 DBMS..

    [Python] self는 무엇일까❓

    개요Dreamhack 웹 해킹 강의를 수강하던 중 Blind SQL Injection 부분의 코드를 보고 이때까지 하던 코딩과는 다르다는 것을 느껴 코드 분석을 세부적으로 진행하고 Python에서 주로 사용하는 Class 와 self에 대해 포스팅하였다. Python selfDreamhack 강의 중 제공된 코드에서는 다음과 같이 클래스를 정의하고 self 함수를 사용하여 코딩한 것을 볼 수 있다. 또한, github에 존재하는 코드들만 보더라고 self를 활용하는 것을 많이 볼 수 있다.import requests import sys from urllib.parse import urljoin class Solver: """Solver for simple_SQLi challenge""" # initial..

    ‘python3-pip’ has no installation candidate Error

    ‘python3-pip’ has no installation candidate Error

    문제VScode에서 WSL을 사용하여 코딩하던 중 requests 모듈을 재설치하는 과정에서 다음과 같은 에러가 발생하였다.E: Package 'python3-pip' has no installation candidateError 발생 화면 해결Update, Upgrade를 하지 않아 발생할 수도 있으므로 Update, Upgrade 명령어를 실행한다.sudo apt-get update sudo apt upgrade 이후 다음과 같은 명령어를 수행한 후 sudo apt install python3-pip 명령어를 실행하면 정상적으로 동작한다.sudo apt-get install python3-setuptools sudo python3 -m easy_install install pip python3 -m ..

    Ubuntu Failed to fetch Error(apt-get update)

    Ubuntu Failed to fetch Error(apt-get update)

    Errorapt-get update 명령어를 통해 업데이트를 진행하려고 했으나 Failed to fetch 오류가 발생하였다.해당 오류가 발생할 경우 apt-get update 명령어의 정상적인 실행이 불가능하며 apt install 명령어 또한 정상적인 실행이 불가능해진다. 오류 발생 시 출력되는 코드는 다음과 같다.Ign:1 http://kr.archive.ubuntu.com/ubuntu jammy InRelease Ign:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Ign:3 http://kr.archive.ubuntu.com/ubuntu jammy-updates InRelease Ign:4 http://kr.archive.ubuntu..

    이 파일에서 플래그를 찾아라! Write-Up

    문제이 파일에서 플래그를 찾아라!Write-Up해당 문제의 자료로 주어진 sunrise.zip 를 압축해제하면 sunrise.png 파일을 얻을 수 있다.sunrise.zip sunrise.png 파일을 살펴보자. sunrise.png 파일의 크기는 10MB 정도이며 다른 부분을 확인하여도 특이점을 발견하지 못하였다.sunrise.png 속성sunrise.png 속성에 이상이 없는 것을 확인하고 헤더 시그니처와 푸터 시그니처를 확인하였으나 정상적인 시그니처를 가진 것을 알 수 있다.sunrise.png의 헤더 시그니처sunrise.png의 푸터 시그니처 속성, 헤더 시그니처, 푸터 시그니처에 이상이 없는 것을 확인한 후 생각했던 접근 방법은 크게 2가지이다.접근 방법 스테가노그래피 기법 사용 사진 크기를..