분류 전체보기

Database/MySQL

[MySQL] Show Index

SHOW INDEX Statement SHOW {INDEX | INDEXES | KEYS} {FROM | IN} tbl_name [{FROM | IN} db_name] [WHERE expr] mysql> SHOW INDEX FROM City\G *************************** 1. row *************************** Table: city Non_unique: 0 Key_name: PRIMARY Seq_in_index: 1 Column_name: ID Collation: A Cardinality: 4188 Sub_part: NULL Packed: NULL Null: Index_type: BTREE Comment: Index_comment: ***************..

IT/Web

[Web Hacking] Challange 54 풀이

https://webhacking.kr/challenge/bonus-14/ x = new XMLHttpRequest(); var results = [] function callback(res) { results.push(res); } x.onreadystatechange = () => { if (x.readyState === 4) { callback(x.response); } }; for(i=0;i

IT/Web

[Web Hacking] Challange 24 풀이

https://webhacking.kr/challenge/bonus-4/ view-source 방법 extract 함수로 변수 추출을 하는데 SERVER와 COOKIE를 변수로 추출한다. 여기서 서버는 헤더 정보, 쿠키는 쿠키 정보를 가지고 있는데 쿠키에 REMOTE_ADDR 키를 가진 값을 생성한다. 그리고 나서 string replace를 함수들을 통과 했을 때 127.0.0.1 이 나오도록 쿠키 값을 수정해준다. 정답 값은 "112277...007.....007.....1"

IT/Web

[Web Hacking] Challange 16 풀이

https://webhacking.kr/challenge/js-3/ Challenge 16 * 페이지 소스 코드를 보면 mv함수에서 document location을 이동시키는 부분이 있다. Console에서 mv(124) 입력하면 된다.

IT/Web

[보안] Cookie bomb attack

Cookie Bomb Attack Cookie Bomb는 비정상적인 크기의 쿠기 값으로 생성하여 공격하는 방법. 일반적인 HTTP Request 프로토콜에서는 Request/Respons로 나누어지고 각각 Header/Body로 나누어진다. 그 중에 Request Header가 너무 클 경우 413(Request Entity Too Large) 혹은 400(Bad Request) 에러를 발생 시킨다. 공격을 해소하기 위해서는 Client 쿠키가 초기화 하지 않는 이상 계속 이어진다. 많이 사용 되는 Web Server의 Header 허용 사이즈 Web Server Size Nginx 4KB ~ 8 KB Apache Web Server 8KB Tomcat 8KB ~ 48KB 공격 방법 XSS나 유저 트래킹..

IT/Web

[Web Hacking] Challange 26 풀이

https://webhacking.kr/challenge/web-11/ view-source 소스 코드를 보면 $_GET['id']로 url query id 값을 가져와서 preg_match 확인 후 admin 글자가 있다면 exit 하도록 되어 있다. 그 다음줄에서 urldecode를 진행 하니 ASCII 코드표를 확인 후 URL Encoding을 한다. 한번만 인코딩 하면 접속시 'admin'으로 변경 되니 두번 인코딩 하여 ?id=%2561%2564%256d%2569%256e으로 접속

IT/Web

[Web Hacking] Challange 15 풀이

https://webhacking.kr/challenge/js-2/ 페이지 소스를 보면 alert 창 띄우고 document location을 /으로 이동 시키도록 되어있다. url 주소를 뒤에 ?getFlag 추가하여 접속

IT/Web

[보안] XSS HTML Image 태그 주의할 점 - 2

[보안] HTML Image 태그 주의할 점 - 2 route 및 controller 작성 path("something.png", SomethingView.as_view()) class SomethingView(View): def get(self, request, *args, **kwargs): print(request.headers) print(request.GET) return HttpResponse(status=204) HTML Image 작성 해당 이미지가 출력되는 곳에서 local storage에 xxx 키값으로 저장되어 있는 값을 가져오고자 한다. 결과 만약 local storage, cookie 등의 비휘발성의 데이터가 사용자 Client에 저장되어 있고 특정 키 값을 추적하여 확인한다면 서..

IT/Web

[보안] XSS HTML Image 태그 주의할 점

[보안] HTML Image 태그 주의할 점 회사를 다니며 상용 서비스를 운용과 개발을 해왔는데, 그 길지도 않은 기간동안 악의적인 목적으로 혹은 학습 목적으로 보이는 경우의 운용중인 서버를 바라보는 공격적인 행위가 있었다. 그 때의 추억을 되새기며 몇가지 간단한 것들에 대해서 한번 정리 해볼려고 한다. 이미지 파일에 스크립트를 삽입하는 방법 샘플 예시 https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/ How To Bypass CSP By Hiding JavaScript In A PNG Image Hide a malicious JavaScript library in a PNG image and tweet it, then include it in..

Python/Python

[Python] 파이썬 Thread and Pool Manager

[Python] 파이썬 Thread and Pool Manager GitHub 주소 https://github.com/sanggi-wjg/py-thread-manager 코드 import os from pool_manager import PoolManager def calculate(x): print(f"[{os.getpid()}] func: {x}\t\t", r := x ** 5 ** 2, flush=True) return r manager = PoolManager() manager.add_task(calculate, [i for i in range(2, 22)]) manager.run_map() manager.add_task(calculate, [i for i in range(2, 22)]) mana..

Python/Open Source

[Python] 파이썬 출력 문자 색 변경하기

[Python] 파이썬 출력 문자 색 변경하기 (Python print with color) 파이썬 문자 혹은 데이터 출력시에 색깔과 함께 이미지처럼 출력하는 방법 GitHub 주소 https://github.com/sanggi-wjg/color_print Install pip install colorful_print Usage 1 import sys from colorful_print import color a = [1, 'a', 2.3] b = (4, 'b', 5.6) color.black('Print Black', a, b) color.red('Print Red', a, b) color.green('Print Green', a, b) color.yellow('Print Yellow', a, b) c..

Kotlin & Java/프로젝트

[Code Execution API] 1. 프로그래밍 코드 실행 API 만들어보기

1. 프로그래밍 코드 실행 API 만들어보기 구글에서 online python 등을 검색하거나 코딩 테스트 등 웹에서 코드를 실행 가능한 서비스를 제공해 주는 웹 페이지들이 있는데 한번 궁금해서 구현을 해보았다. 개발한 프로젝트 Github 주소 (https://github.com/sanggi-wjg/my-ide-java) 2. 개발 스펙 선택과 제공할 언어 선택 개발 진행을 위해서는 우선 API 개발 언어와 프레임워크 등과 기능 제공할 언어와 정해야 하는데 하기처럼 정해서 진행했다. API 개발 Java 17 (correto) Spring boot 3.0.2 JPA Hibernate 6.1.6 제공할 언어 Python 3.8 Python 2.7 Php 8.2 Php 7.4 Gcc 4.9 Java (예정..

Python/Open Source

[Locust] 2. Locust를 통한 언어와 프레임워크 별 테스트

테스트용 Locust 설정 locust.conf locustfile = locust_impl.py headless = true expect-workers = 5 host = http://localhost:8000 users = 10 spawn-rate = 10 run-time = 30s locust_impl.py from locust import task, FastHttpUser class TargetURL: ROOT = "/" STRING = "/string" JSON = "/json" CALC = "/calc" class LocustImpl(FastHttpUser): @task def root(self): self.client.get(TargetURL.ROOT) @task def string(self..

Python/Open Source

[Locust] 1. Locust 부하 테스트 툴(load testing tool)

Locust란? https://locust.io/ https://docs.locust.io/en/stable/ Locust는 오픈 소스로 제공하는 부하 테스트 툴 프레임워크. 매우 간단한 소스코드를 통해 기능을 수행할 수 있고 제공해주는 설정들을 통해서 유저 수량 지정 테스트 등 다양한 테스트를 진행 할 수 있음. 간단한 개발과 설정으로 빠르게 테스트를 할 수 있는 환경을 갖출 수 있음. 설치 pip install locust 실행 locust.conf locustfile = locust_impl.py expect-workers = 5 host = http://localhost:8000 users = 10 spawn-rate = 10 run-time = 1m locust_impl.py from locus..

Python/Open Source

ChatGPT를 이용한 간단한 Web App 만들기 (python, streamlit)

Python Streamlit을 통해서 간단한 ChatGPT Web App 만들어보기 우선, Streamlit 이란? https://docs.streamlit.io/ streamlit는 주로 데이터 사이언스, 머신 러닝 등에서 사용되는 커스터 마이징 가능한 간단하고 쉽게 웹앱을 만들어주는 오픈 소스이다. 사용할 ChatGPT SDK, Reverse Engineered ChatGPT API revChatGPT repo는 abandod or deprecated 되었습니다. python OpenAI sdk 사용을 권장 합니다. https://github.com/acheong08/ChatGPT Python 패키지 설치 pip install revChatGPT pip install streamlit chatgpt..

Infrastructure/Kafka

[Kafka] Python confluent Kafka 설치 및 테스트

[Kafka] Python confluent Kafka 설치 및 테스트 테스트 및 설치 환경은 Mac에서 진행 하였습니다. Zookeper와 Kafka Cluster docker-compose.yml version: '3' services: zookeeper: image: confluentinc/cp-zookeeper:7.3.0 hostname: zookeeper container_name: zookeeper environment: TZ: Asia/Seoul ZOOKEEPER_SERVER_ID: 1 ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 kafka-1: image: confluentinc/cp-kafka:7.3.0 container_..

Infrastructure/VPN

[Ubuntu 20.04] OpenVPN Server Docker 설치 및 Client

[Ubuntu 20.04] OpenVPN Server Docker 설치 및 Client Server Side 우분투 패키지 설치 apt update && apt upgrade --y apt install openssl easy-rsa net-tools docker.io Docker로 설치 및 실행 OVPN_DATA="ovpn-data" docker volume create --name $OVPN_DATA # Download the OpenVPN server docker image file with the argument to set it to use your server’s(host) public IP address or your domain name via UDP protocol docker run -..

IT

[Kubernetes] OpenLens 설치

[Kubernetes] Mac M1에서 OpenLens 설치 OpenLens 설치 brew install --cask openlens (https://github.com/MuhammedKalkan/OpenLens) Extension 설치 플러그인 설치 @alebcay/openlens-node-pod-menu 설치가 되면 종료 후 Reload

IT

API, 서비스, 도메인 테스트 및 TDD 에서의 기어비

API, 서비스, 도메인 테스트 및 TDD 에서의 기어비 테스트 필요 이유 테스트가 있으면 시스템 변경에 두려움이 적어진다. 하지만, 너무 많은 테스트는 코드 변경마다 테스트 코드도 같이 변경되어야 하는 문제가 있다. 테스트의 목적은 코드 변경에서 시스템의 특성을 강제로 유지하기 위해서다. API 테스트를 작성하면 도메인 모델을 변경할 때 테스트 코드 변경의 양을 줄일 수 있다. 테스트 종류에 따른 얻는 것 구분 API 테스트 서비스 테스트 도메인(모델) 테스트 피드백 적음 - 많음 변경 장벽 낮음 - 높음 테스트 영역 넓음 - 한정 도메인(모델) 테스트 코드와 더 밀접하게 연관되어 작업시 높은 피드백을 받을 수 있다. 테스트 코드를 통해서 도메인에 대한 이해도를 높일 수 있다. API 테스트 더 높은 ..

Python/Python

[Python] Linter 비교

Python Linter Linter 종류와 개요 구 분 flake8 pylint bandit 종 류 linter linter security linter Star 2.3K 4.2K 4.5K 특 징 코드 스타일, 오류 복잡성 검사 코드 스타일, code smell, 오류 등을 검사 unsafe coding 검사 장 점 간단함, 많은 플러그인이 있음 세팅 비용이 flake8 비해 높음 단 점 많은 플러그인을 있음 린트 통과가 flake8 비해 까다로움 다른 개발자들은 어떻게 사용할까 (from Reddit, StackShare) flake8 + pylint 사용하는 경우 flake8 + pylint + bandit 사용하는 경우 (flake8 or pylint) + bandit 사용하는 경우 전자들과 추가..

상쾌한기분
'분류 전체보기' 카테고리의 글 목록 (3 Page)