분류 전체보기 (339) 썸네일형 리스트형 [FastAPI] Pydantic GenericModel을 이용한 Response Data 문서화 HTML 삽입 미리보기할 수 없는 소스 개요 최근 들어 FastAPI를 다뤄볼 일이 생겼다. 그동안 Django나 Flask를 다루면서 겪었던 문제인 API 문서 생성 방법은 추가적인 라이브러리를 사용하거나 직접 문서를 작성하는 방식이었다. 이는 결국 라이브러리를 익히고 어떻게 사용해야 할지를 또 고민해야 한다는 점에서 러닝 커브가 발생했다. 그러나 FastAPI에는 API 문서를 자동 생성해 주는 기능이 포함되었기에 편리함을 몸소 체감 중이다. 조금 더 알아보다가 type hint를 잘 사용한다면 조금 입맛대로 표현해볼 수 있지 않을까 싶은 생각이 들었다. FastAPI에서 API 문서를 생성할 때는 pydantic의 BaseModel과 많이 연계된 듯 보이는데 그렇다면 pydantic에 Generic.. [SQLAlchemy] SQL Compilation Caching HTML 삽입 미리보기할 수 없는 소스 개요 SQLAlchemy를 통해 DB에 Query를 날리는 코드를 짜던 도중이었다. 평소에 만들던 방식으로 코드를 작성해 놓고 SQLAlchemy의 log를 살펴보던 도중 이상한 점을 발견했다. 이상한 점을 발견한 log는 다음과 같다. 2023-08-08 15:46:01,882 INFO sqlalchemy.engine.Engine BEGIN (implicit) 2023-08-08 15:46:01,883 INFO sqlalchemy.engine.Engine SELECT * FROM member WHERE member_id = %(member_id)s; 2023-08-08 15:46:01,883 INFO sqlalchemy.engine.Engine [cached si.. [TryHackMe] Easy Peasy Over View 이 Machine은 숨겨져 있는 flag가 무엇인지에 대해 주로 물어보며 그것에 대해 답하기 하면 된다. 단순히 user flag와 root flag가 무엇인지만 물어보는 것이 아니라 그것을 어떻게 찾을 수 있는지를 Question의 내용을 통해 유추해 볼 수 있다. 개인적으로는 이 Machine에 대해 난이도가 높은 편은 아니라고 생각하는데 Kali Linux에서 Mac(OSX)으로 실습 환경을 바꾸다 보니 필요한 도구가 잘 설치되지 않거나 환경에 문제를 어떻게 해결할지 탐구하는데 시간이 더 걸리는 듯했다. 문제에서 요구하는 답에 대답하기 위해서 공략할 포인트가 다수 존재하지만 root 플래그를 얻는 것을 목적으로 생각하면 공략할 포인트가 그렇게 많지 않다. 그러하여 Question에.. [TryHackMe] OverPass2 개요 오랜만에 TryHackMe에 접속해 문제 하나를 풀어봤다. 이 문제는 WireShark를 통한 패킷분석방법과 Github Repo로부터 Code를 읽어내 필요한 정보를 획득하는 것에 초점이 맞춰져 있으며 그렇게 얻어낸 정보를 통해 다시 서버에 침투할 수 있는지를 물어보는 문제이다. Task 1: Forensics - Analyse the PCAP Task1에서는 tryhackme로부터 제공되는 pcap 파일에서 어떤 패킷을 주고받았는지를 물어보는 문제이다. 패킷을 읽기 위한 특별한 스킬이 요구되진 않는다. 즉, pcap 파일을 들여다보고 있으면 Attacker가 Vicitim에게 이런 요청을 보냈구나라고 확인되는 패킷이 눈에 보인다. WireShark를 무작정 열어본다면 어떤 패킷을 먼저 읽어야 할.. [Python] Selenium Proxy를 이용한 Tor 사용하기 HTML 삽입 미리보기할 수 없는 소스 개요 6월에 유튜브를 보던 도중 Seleinum으로 Proxy를 사용하던 하나의 영상을 보게 되었습니다. 원래 Seleinum으로 Proxy를 사용하는 방법은 6월의 ToDoList 중 하나였는데 이제야 조사를 마쳐서 글을 쓰게 되었습니다. 아마 이 글의 제목을 보고 이 글을 읽으려고 하시는 분들은 Proxy를 적어도 한 번 들어봤거나 이미 알고 계신 분 들일 것이라 조심스레 유추해 봅니다. 그러하여 Proxy에 대한 이론이나 원리를 자세하게 정리한다기보다 글의 제목처럼 Selenium에서 proxy를 사용하는 방법과 나아가 Mac에서 Seleinum을 통해 Tor를 이용하는 방법을 기술하려고 합니다. 요약하자면 제가 Python으로 Selenium에서 Proxy를.. Authlib를 이용한 간단한 Server 구현 개요 회사에서 시스템끼리 데이터 통신을 어떻게 할까를 논의하던 도중 Oauth가 언급되었다. 생각해 보니 Oauth는 이용만 했었지 막상 Oauth 서버가 어떻게 돌아가는지 코드를 통해 확인해본적은 없었다. Oauth에 대해 검색해보니 Oauth에 대한 개념과 이론에 대한 정보가 많았는데 막상 또 코드로써 구현해보려니 처음부터 무엇을 해야될지 감이 안 잡히는 상황이었다. 그래서 이를 구현하기 위해 만들어진 라이브러리가 없나 검색해봤는데 Authlib이라는 라이브러리를 알게 되었다. 이 라이브러리가 내부적으로 어떻게 구현되었는지를 탐색해보는 과정에서 삽질을 조금 하게되었는데 이 포스팅에 그 내용을 담아보려고 한다. 1. Setting Python으로 Oauth Server를 구현하기 위해 아래 라이브러리가.. pytest-django에서 view에 request 던지기 개요 api를 테스트할 때는 pytest-django에는 client라는 fixture를 통해 api를 테스트하는데 이 fixture는 내부적으로 뭘로 구현한 거지 싶어서 살펴보고 있었다. 내부를 살펴보니 django의 test 패키지의 client 모듈의 RequestFactory를 사용하는 형태였다. 그렇다면 django의 view를 테스트하는 다른 형태의 코드를 작성할 수 있지 않을까 싶은 호기심이 생겼다. Setting 테스트 대상인 프로젝트의 구조는 대충 다음과 같이 생겼다. ╰─$ tree -L 2 . ├── Makefile ├── docker │ ├── Dockerfile │ ├── docker-compose.yml │ └── init-db.sh ├── pytest.ini ├── readme.. HackTheBox OpenVpn 연결에러 개요 오랜만에 HackTheBox를 즐겨보려 접속했는데 openvpn 연결하는데 에러가 난다. 해결해놓고보니 별 것 아니긴한데 국내에서 HackTheBox 즐기시는 분 있으면 참고하라는 의미에서 글을 남기고자 한다. 참고로 필자는 OS X Ventura 13.2이고 OpenSSL 3.1 버전이 설치된 상황이었다. 증상 나타난 에러를 하나한 해결해내가는 과정을 기술하면 좋겠지만 귀찮아서 패스하고자한다. openvpn 연결 시 만났던 에러는 다음과 같다. ╭─jako@prompt-mini ~/Downloads ╰─$ openvpn lab_jakan.ovpn 1 ↵ 2023-06-18 01:56:37 WARNING: Compression for receiving enabled. Compression has b.. 이전 1 ··· 13 14 15 16 17 18 19 ··· 43 다음