분류 전체보기
Django DB API
장고 튜토리얼의 polls 예제에 있는 DB 관련 API들에 대해 정리해봤다. 기본적으로는 파이썬 문법을 따라가기 때문에 이해하는데에 크게 어려움은 없었고, 일반적인 DB에서 사용하는 sql 쿼리문 대신 이런식으로도 데이터를 가져올 수 있구나~ 정도만 알아두면 될것같다. python3 manage.py shell manage.py에 설정된DJANGO_SETTINGS_MODULE환경변수 때문에 위와같이 쉘을 실행한다. mysite/settings.py 파일의 import내용을 그대로 가져와 python 쉘에서 사용할 수 있게 하기 때문에, 대화식 Python 쉘에서 Django가 접근할 수 있는 Python 모듈 경로를 그대로 사용 할 수 있다. 즉, Django에서 동작하는 모든 명령을 대화식 Pytho..
docker 로 생성한 django 컨테이너에 bash 터미널 붙기
이전까지의 작업 내역을 정리해보면 1. docker-compose를 통해 django 컨테이너와 nginx 컨테이너를 각각 생성해서 연결, 서버 구동 2. docker-compose 파일에서 django 컨테이너에 volumes 연결해서 로컬 서버내의 디렉토리와 연결 이렇게 하면 2번에서 만들어진 디렉토리는 로컬서버와 컨테이너 서버에서 동시에 사용할 수 있으므로, 굳이 컨테이너 내에서 작업하지 않아도 로컬에서 작업한 내역이 그대로 반영되게 만들 수 있다. 그러나 종종 장고 컨테이너 내에서 배쉬쉘을 통해 명령어를 실행시킬 필요가 있을 수 있다. docker exec -it 컨테이너이름 /bin/bash 위와같은 명령어를 통해 컨테이너에 접속해 터미널을 이용한 작업이 가능하다. 이번에는 장고 튜토리얼 앱인 ..
잘되던 도커 컨테이너가 갑자기 연결이 안될때
서버 세팅이 다되고, 통신이 잘 되는지도 테스트가 완벽히 끝나서 그상태 그대로 suspend해놓고 며칠뒤에 다시 docker-compose up 을 실행하고 서버에 연결되는지를 테스트해보는데 연결이 안된다. 서버는 잘 켜지고, docker ps -a 에서 포트 매핑된거도 보이고, netstat -tnlp 로 포트 열린것도 확인이 되지만 연결이 안된다. 포트 매핑도 잘되고 열리기도 했지만 컨테이너에 접근이 안된다? 그럼 방화벽 문제다. sudo iptables -t filter -F sudo iptables -t filter -X systemctl restart docker iptables 를 초기화시켜주고 도커 서비스를 재실행하자. 참조 링크 : https://velog.io/@adam2/어느날-도커-컨..
웹서비스의 구성 - Web Server , CGI, WAS , WSGI의 특징 및 차이점
웹서비스의 구조 정적 처리 : 클라이언트 -> (Request) -> 웹서버 기본적인 동적 처리의 경우 : 클라이언트 -> (Request) -> 웹서버 -> (Request) -> WAS -> 외부 프로그램 실행(WAS에서 동작) CGI를 사용하는 경우 : 클라이언트 -> Request -> 웹서버 -> CGI -> 외부 프로그램 실행(웹서버에서 동작) WSGI를 사용하는 경우 : 클라이언트 -> Request -> 웹서버 -> Request -> WSGI (미들웨어) -> Requset -> WAS -> 외부 프로그램 웹 서버 소프트웨어 + 하드웨어로 이루어짐. 하드웨어 : 웹서버가 설치된 시스템 컴퓨터 소프트웨어 : 웹 브라우저 클라이언트로부터 Requset를 받아 정적인 컨텐츠(html , css..
윈도우10 에서 파이썬 사용시 경로가 꼬이는 경우
보통은 환경변수를 통해 해결할 수 있지만, 윈10부터는 "앱 실행 별칭 관리" 라는 기능이 추가되어 여기에 등록된 프로그램은 명령 프롬포트에서 별도의 경로를 통해 실행하게끔 설정이 된다. 그러면 어떻게 되느냐? C:\\Users\\synod>where python C:\\Users\\synod\\AppData\\Local\\Programs\\Python\\Python37\\[python.exe](python.exe) C:\\Users\\synod\\AppData\\Local\\Microsoft\\WindowsApps\\[python.exe](python.exe)이렇게 파이썬이 두개로 보이는 별 희한한 경우가 생긴다. pip로 모듈을 설치하면 설치할땐 저 Programs 하위경로 파이썬에 설치가 되는데 정..
네트워크를 Bridge로 설정한 VMware 내부에 Docker 서버 사용시 주의점
정확한 원인은 모르겠는데, 네트워크를 브릿지로 설정해준 vmware 우분투 내부에서 docker를 사용할시에 dns나 ip 설정이 제대로 되지 않아 apt-get를 비롯해 docker 서버 내부에서 외부와의 통신이 일체 안되는 문제가 발생한다. 아마 도커 엔진은 내부아이피를 사용하는걸 상정하고 네트워크 설정을 진행하는데, 도커가 돌아가고 있는 우분투는 브릿지 모드에 맞춰 개별적인 ip를 할당받아 사용되기 때문인걸로 추정된다. 따라서 , 해당 네트워크 환경 내에서 도커를 사용하려면 이미지와 컨테이너 빌드시부터 옵션을 좀 달리 해줘야한다. docker build --no-cache --network=host -t durumi . docker run -it --net host --name durumi duru..
peda 에서 pwngdb , angelheap 플러그인 일부 동시에 적용하기
~/.gdbinit.py 를 아래와 같이 세팅해준다. source ~/peda/peda.py source ~/Pwngdb/pwngdb.py source ~/Pwngdb/angelheap/gdbinit.py define hook-run python import angelheap angelheap.init_angelheap() end end
리눅스 apt 관련 문제시 조치방법
새로 우분투 서버를 설치하고 나서 apt 관련해서 문제가 생기는 경우가 꽤나 많은데 이 사이트를 참조하여 초기 세팅을 해보자. https://www.howtoforge.com/tutorial/perfect-server-ubuntu-16.04-with-apache-php-myqsl-pureftpd-bind-postfix-doveot-and-ispconfig/ * 내용추가17버전 이후부터는 netplan이라는게 적용되어 설정 방식이 바뀌었다. 고정ip 세팅은 아래와 같이 한다, ls /sys/class/net sudo vi /etc/netplan/50-cloud-init.yaml network: ethernets: ens30: # addresses: # - 192.168.248.128/24 # gateway..
gdb-peda용 heap 관련 플러그인 두가지
*깃허브에 사용법 나와있음. 첫번째는 pwngdb . heap 말고도 pwn용 여러가지 기능을 제공한다. libc 정보라던지 기타등등. cd ~/git clone https://github.com/scwuaptx/Pwngdb.gitcp ~/Pwngdb/.gdbinit ~/ gdb-peda$ heapinfogdb-peda$ chunkinfogdb-peda$ chunkptr 등의 명령어가 있음. 두번째는 peda-heap. 이름처럼 heap 관련 플러그인들이 가득함. git clone git://github.com/Mipu94/peda-heap.git ~/peda-heap echo "source ~/peda-heap/peda.py" >> ~/.gdbinit
해커스쿨 LOB 중 발생하는 문제
많은 블로그에서도 적어놨지만, 되게 지나가는듯이 적어놔서 잘 눈치채지 못했던 부분. bash 쉘은 \xff 문자를 \x00 으로 인식하는 문제가 있어 , 문제 풀이중에 쉘코드 주소값을 넣을때 풀이가 불가능한 현상이 발생한다. bash2 쉘을 사용하면 해결되는 문제. 문제를 풀때마다 bash2를 실행하거나, 설정을 바꿔주면 해결된다. vi etc/passwd에서 :%s/bash/bash2 로 bash문자열을 전부 bash2로 바꾸면 bash2로 실행되어 해결된다.