분류 전체보기

    freenom.com 무료도메인 + 네이버 클라우드 플랫폼 연결하기

    이번 프로젝트를 하면서 네이버 클라우드에 서버를 구성하게 되었는데, 도메인 서비스는 freenom.com을 이용하게 되었다. 일단 freenom에서 도메인을 구매한 다음 상황부터 시작한다. 구매한 도메인을 네이버 플랫폼과 연결시켜보자. 네이버 클라우드의 DNS 콘솔을 열어보면 원래는 아무것도 없을것이다. 도메인 추가를 클릭하고 구매한 도메인 URL을 적어주자. 그러면 아래와같이 dns 서버를 발급해주고, 도메인과 연결 작업을 거칠것. 레코드 추가 - 타입은 A 로 설정하고 , 플랫폼 서버에서 발급받은 공인 IP 를 넣어주자. 이제 네이버 클라우드에서 설정은 끝났다. 도메인 구매 직후, services-mydomain 으로 이동하면 현재 보유한 도메인 현황을 보여준다. manage domain을 클릭해서 ..

    워게임 사이트 몇개 더..

    디스코드 하다가 우연히 찾았는데, pwnable.kr > w3challs.com > pwnable.tw > root-me.org > pwnable.xyz 순서로 공부하라는 채팅이 오가고 있었다. 펀케알, tw, xyz는 알고있는 사이트들이었는데 나머지 둘은 첨들어봤다. 나중에 한번 봐야지 www.root-me.org Bienvenue [Root Me : plateforme d'apprentissage dédiée au Hacking et à la Sécurité Plusieurs centaines de challenges sont à votre disposition pour vous entrainer dans des environnements variés, non simulés et maitriser u..

    glibc 코드 보는 사이트

    elixir.bootlin.com/glibc/elixir.bootlin.com/glibc/latest/source/libio/wfileops.c 버전별로 소스코드 보는 기능을 지원하고, 선언된 변수들을 클릭하면 자동으로 인덱싱해서 찾아주는 기능도 제공하는 사이트 . code.woboq.org/userspace/glibc/libio/wfileops.c.html wfileops.c source code [glibc/libio/wfileops.c] - Woboq Code Browser 76 data, data + to_do, &new_data, code.woboq.org 보통은 위 아니면 여기에서 정보가 나온다.

    의외로 잘 모르는 peda pwngdb 플러그인 사용 팁

    code, ld, libc , heap 등등으로 base 주소를 출력하는 방법은 잘 알것이다. 그러나 오프셋 연산이 즉각적으로 필요한 경우에 계산기를 켜거나 p 명령을 이용해서 연산을 진행하는 경우가 있다. 이때 code, heap, libc, ld 등의 심볼을 이용한 연산이 안되어서 상당히 불편했다. 근데 나만 몰랐던건지, 대체로 이 방법을 소개하는 글을 본적이 없어서 위 사진처럼 오프셋 계산을 수동으로 진행한 적이 많았는데 , pwndbg 플러그인 파이썬 코드를 보다가 뭔가를 찾았다. 그렇다. libc 명령을 실행하면, libc 주소를 읽어와 출력하는 동작만 하는게 아니고 , $libc 심볼에 주소값을 저장하는 도작까지 같이 수행해주는 것이었다. 그리고 익스플로잇에 주로 쓰이는 함수들의 오프셋도 간편..

    케이실드 주니어 5기 늦은 합격 후기

    사실 합격 발표가 난지는 되게 오래되었고 , 오늘이 첫 수업이 진행된 날이다. 전기수는 일부 온라인 수업이 진행되었고, 이번기수는 오프라인 진행이 예정되어있었으나.. 입교식 날짜가 다 되어서 신종 코로나 우려로 일단 입교식 취소.. 그 다음에 원랜 첫 주만 온라인 예상이었다가 이젠 언제까지 온라인으로 할지 모른다는 이야기가 나오는 중이다. --- 서류 지원할때는 사실 큰 기대를 하지 않은 상태였다. BOB 면접 탈락의 후유증이 컸던 탓인지 자존감은 바닥에 떨어져 있었고, 그냥 될대로 되라 심정 + 제발 붙었으면 싶은 정말 간절한 마음으로 교육 신청을 했다. 게다가 BOB와는 다르게 서류상에서 내가 교내 보안동아리를 통해 했던 활동으로 적을만한 항목들이 상당히 적었다. 자소서 적는 항목도 없었으니 말이다...

    patchelf 사용하여 다른버전 libc + ld 로드하기

    1. patchelf 최신 릴리즈 다운받기 github.com/NixOS/patchelf/releases [ Releases · NixOS/patchelf A small utility to modify the dynamic linker and RPATH of ELF executables - NixOS/patchelf github.com ](https://github.com/NixOS/patchelf/releases) 2. 설치 진행 ./bootstrap.sh ./configure make sudo make install make check 이때 autoreconf 패키지 설치 필요할 수 있음 . sudo apt-get install dh-autoreconf 3. 로더와 libc 교체 patchelf --..

    Django에서 제이쿼리 load와 장고의 extneds, include 를 복합적으로 이용한 페이지 만들기 - 페이지 참조 및 템플릿 확장

    제이쿼리에서 다른 html 페이지를 불러오는 데는 .load 라는 메소드를 이용한다. 이는 URL을 지정하여 해당 URL의 내용을 내가 선택한 객체에 넣겠다는 건데, $(#thisdiv).load("URL") 같은 식으로 사용하면 thisdiv의 내용은 URL에서 불러온 내용으로 바뀐다. 즉, 메인 페이지 이동 없이 페이지 안에서 다른 웹 페이지를 불러오게 할 수 있다는 건데, 이는 기존에 사용하던 프레임 방식을 대체한다. 프레임 방식과 다른 차이는 웹 페이지를 독립적으로 불러오는게 아니라 그 페이지의 내용을 가져와 현재 페이지 지정한 객체에 합쳐버리는것 . 해당 URL을 가진 페이지의 html소스를 가져와 현재 페이지에 삽입하는 동작을 한다고 요약할 수 있다. 이제 장고 템플릿에서 지원하는 extend..

    Django에서 mysql 이용하여 로그인, 회원가입 기능 만들기

    컨테이너간 연동이 끝났으니, 이제 웹 페이지에서 데이터베이스를 실제로 활용해볼 차례. 장고에서 디비를 사용할때는 모델, 뷰, 템플릿 , URL 파일 정도만 건드려주면 된다. models.py class User(models.Model): user_id = models.CharField(max_length=20) email = models.CharField(max_length=20) password = models.CharField(max_length=20) 일단 모델 생성부터. User라는 테이블을 생성하여 내용을 정의하는데, 이 방식은 장고 튜토리얼에도 나와있는 기존 장고에서 디비를 사용하는 방식과 동일하다. PHP로 웹 개발을 할때 사용하는 MYSQL을 생각하면 복잡한 쿼리문의 반복밖에 떠오르지 않는..

    docker-compose를 이용해 Django와 Mysql 컨테이너 연결하기

    1. env 파일을 이용한 docker-compose 작성 docker를 이용해 여러 컨테이너를 묶으려고 하는데, 그 중 mysql DB 컨테이너가 포함되는 경우 mysql 계정명과 비밀번호 등을 설정해야한다. 허나 비밀번호가 docker-compose.yml 파일에 하드코딩되는건 안될일, 다른 파일에 넣고 읽어오는 식으로 만드는게 보안상 안전하다. 그러나 yaml 문법에서는 include나 import를 지원하지 않는다. 따라서 docker-compose에서 독자적으로 지원하는 방법을 이용해야 한다. 기본적으로 docker-compose는 같은 디렉토리에 있는 .env 파일을 환경변수 세팅 파일로써 가져온다. 따라서, mysql 등과 같은 컨테이너에서 environment 인자로 계정명과 비밀번호를 세..

    Django에서 ajax와 세션을 이용하여 로그인 기능 구현하기

    1. 장고에서 ajax 동작시키기 template 내에서 ajax를 작성하여 views.py에 정의된 view로 데이터를 보내고 그 결과값을 반환받는 동작을 만들어주자. 값을 전송할 시에는 .serialize() 함수를 이용해 데이터를 직렬화 해 주어야 POST 형태로 잘 넘어간다. login.html $('#loginButton').on('click',function(event){ var formData = $('#loginForm').serialize(); $.ajax({ cache : false, url : "{% url 'login:loginCheck' %}" , type : 'POST', data : formData, suc..