최류현의 컴퓨터 정보공간

프로그래밍/Python

파이썬(Python) 이거 하나면 패키지 충돌 걱정 사라짐 .virtualenv 파이썬 가상화

파이썬에서 가상환경을 사용하는 이유 파이썬 개발을 할 때, 프로젝트마다 필요한 패키지와 버전이 다르기 때문에 종종 패키지 관리에 어려움을 겪게 됩니다. 또한 여러 패키지를 설치하다 보면 충돌이 일어나거나 어디에서 문제가 발생했는지 파악하기 어렵습니다. 이런 문제를 해결하기 위해 파이썬은 가상 환경 도구를 제공합니다. 가상환경에서 패키지를 설치하면 패키지 관리도 쉬울뿐더러 다른 컴퓨터 환경에서도 가상환경에서 사용된 패키지 목록들만 requirements.txt 파일로 쉽게 설치할 수 있습니다. 이번 글에서는 파이썬에서 가상 환경을 사용하는 이유와 그 장점에 대해 알아보겠습니다. 파이썬 가상환경 라이브러리 종류 venv(표준 라이브러리) 파이썬 3.3 버전 이상에서는 별도의 설치 없이 바로 사용이 가능한 장..

프로그래밍/드림핵(Dreamhack) 워게임

드림핵(Dreamhack) xss-1 플래그 획득법

문제드림핵의 webhacking 로드맵 과정 중 Cross-Site-Scripting(XSS) 섹션의 첫 번째 단계인 xss-1문제를 살펴보겠습니다. xss취약점을 이용하여 플래그를 획득해야 합니다. 우선 웹사이트에 접속해 보겠습니다. 이런 화면으로 구성되어 있으며 vlun(xss) page와 memo와 flag와 메인페이지 총 네 페이지로 구성되어 있습니다. 1.@app.route("/") : 사용자가 웹사이트 접속 시에 처음으로 나오는 페이지입니다. 2.@app.route("/vuln") : 사용자가 /vuln페이지에 접속하면 param값을 반환하며 param값이 없다면 1을 반환합니다. 3.@app.route("/flag", methods=["GET", "POST"]) : GET과 POST 두 가지..

프로그래밍/Python 문제풀이

백준 3009번 네 번째 점 | [BACKJOON/Python / 3009]

문제링크 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 예제 입력 & 출력 풀이 문제를 이해하기 위해 입력받는 변수를 x, y라고 생각하고 입력받은 3개의 x, y 좌표에 점을 찍은 뒤 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾아야 합니다. 첫 번째 입력된 예제로 설명해보면 x가 파랑 화살표, y가 검..

프로그래밍/Python

파이썬 AES암호화 알고리즘 코드

암호화 알고리즘에는 다양한 종류가 있습니다. 미국 국립표준기술연구소(NIST)에서 표준화한 대칭 블록 방식의 암호인 AES (Advanced Encryption Standard)에 대해서 알아보겠습니다. AES는 미 국가안보국에 의해 1급비밀(Top Secret)에 사용할 수 있도록 승인된 알고리즘 중 최초로 공개되어 있는 알고리즘입니다. 모듈 설치 파이썬에서 사용할 수 있는 PyCryptodome 암호화 라이브러리를 사용해보겠습니다. pip install pycryptodome 터미널에 다음 코드를 붙여 넣어 설치하실 수 있습니다. 필요 모듈 불러오기 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from Crypto...

프로그래밍/드림핵(Dreamhack) 워게임

드림핵(Dreamhack) session-basic 플래그 획득법

문제드림핵의 webhacking 로드맵 과정 중 Cookie & Session 섹션의 Cookie 단계인 session-basic실습 문제를 살펴보겠습니다. 서버를 생성하여 문제 페이지에 접속하고, 문제 파일을 받아 파일의 내용도 함께 확인해 보겠습니다. 이전 문제 cookie와 유사하게 인사말이 나오고 로그인가능한 웹페이지로 구성되어 있습니다. 마찬가지로 admin계정으로 로그인하라고 하였으니 admin 계정이 사용하는 쿠키값으로 변조해 주면 되는데 이번에는 세션값도 함께 바꿔줘야 하나 봅니다. 문제해결방법다운로드한 문제파일의 코드 중 로그인 가능한 정보가 guest와 user가 있는데 guest로 로그인 후 확인해 보겠습니다. guest로 로그인하니 admin이 아니라고 나오고 개발자도구에서는 use..

프로그래밍/드림핵(Dreamhack) 워게임

드림핵(Dreamhack) cookie 플래그 획득법

문제 드림핵의 webhacking 로드맵 과정중Cookie & Session 섹션의 cookie실습 문제를 살펴보겠습니다. 문제 해결방법 문제파일을 다운받은뒤, vm서버를 생성한후 페이지( http://host3.dreamhack.games:????/ )로 이동합니다. 로그인 페이지로 이동하여 로그인을 해줘야하는데 문제에서 admin계정으로 로그인을 하면 플래그를 얻을수 있다고 하였으니 admin계정을 사용하여 로그인을 시도해보았지만 password wrong이 뜨네요. 다운받은 문제파일에는 app.py로 구성되어있는 파이썬 파일이 담겨져있습니다. 해당 파일의 코드를 살펴보겠습니다. #!/usr/bin/python3 from flask import Flask, request, render_template..

프로그래밍/드림핵(Dreamhack) 워게임

드림핵(Dreamhack) devtools-sources 플래그 획득법

문제 드림핵의 webhacking 로드맵 과정중 Backgrouhnd - Web 섹션의 마지막 단계인 devtools-sources실습 문제를 살펴보겠습니다. 개발자 도구의 Sources 탭 기능을 활용하여 플래그를 찾는 문제입니다. html로 구성되어있는 문제 파일을 받아주세요. 문제 해결방법 압축을 해제해보면 여러 웹파일이 구성되어있습니다. index.html파일을 브라우저에서 열어준뒤에 source탭을 확인해보겠습니다. 현재 열려있는 index.html파일 내에는 플래그가 안보이는데 어떤 요소에 플래그가 있는지 하나하나 클릭해서 검색해보는 방법도있지만 전체 구성파일을 중에 원하는 내용을 한번에 검색하는 방법이 있습니다. 우측 상단 . 세개 메뉴를 클릭한뒤 Search를 눌러주거나 ctrl + shi..

프로그래밍/드림핵(Dreamhack) 워게임

드림핵(Dreamhack) - Carve Party 플래그 획득법

문제 Dreamhack의 웹해킹 로드맵중 웹브라우저 영역 Tools:Browser DevTools의 마지막 학습페이지에 관련 문제로 나와있는 워게임중 Carve Party문제입니다. html 문제 파일이 함께 제공되고 파일을 열어보면 호박이미지와 함께 10000번을 클릭하라고 나와있습니다. 클릭할때마다 숫자가 줄어들고, 1만번을 클릭해야 플래그를 획득할 수 있습니다. 문제 해결방법 1 문제 해결방법을 고민해봤는데 첫번째는 오토마우스를 사용하여 마우스를 계속 클릭하게 하는 방법이 있습니다. 다만 1만번의 클릭을 하는데 시간이 걸리고 제가 원하는 풀이방식이 아니였습니다. 문제 해결 시도 1만번의 클릭이 발생한뒤에는 플래그가 뜬다는건 어떠한 동작이 페이지에서 이루어진다는거고 자바스크립트 코드부분을 살펴볼 필요..

프로그래밍/Python 문제풀이

백준 1085번 직사각형에서 탈출 | [BACKJOON/Python / 1085]

문제링크 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 제한 1 ≤ w, h ≤ 1,000 1 ≤ x ≤ w-1 1 ≤ y ≤ h-1 x, y, w, h는 정수 예제입력 6 2..

프로그래밍/Python 문제풀이

백준 27323번 직사각형 넓이 구하기 | [BACKJOON/Python / 27323]

문제링크 27323번: 직사각형 정수 A, B 가 주어진다. 세로 길이가 A cm, 가로 길이가 B cm 인 아래와 같은 직사각형의 넓이를 cm2 단위로 구하시오. www.acmicpc.net 문제 정수 A, B 가 주어진다. 세로 길이가 A cm, 가로길이가 B cm 인 아래와 같은 직사각형의 넓이를 cm2 단위로 구하시오. 입력 표준 입력에 다음과 같은 형태로 입력이 주어진다. A B 출력 세로 길이가 A cm, 가로길이가 B cm인 직사각형의 넓이를 cm2 단위로 구하고, 단위 (cm2)를 생략하여 출력한다. 제한 1 ≦ A ≦ 100. 1 ≦ B ≦ 100. A, B는 정수이다. 예제입력 2 3 예제출력 6 예제입력2 100 1 예제출력2 100 예제입력3 4 4 예제출력3 16 풀이 직사각형의 ..

최류현의 블로그
'프로그래밍' 카테고리의 글 목록 (3 Page)