본문 바로가기

전체 글

(76)
Application Level Gateway 란? NAT Slipstreaming 공부중 내가 네트워크 머저리였음을 깨달았다. Application Level Gateway 조차도 제대로 설명하지 못해 정리해보았다. Application Level Gateway란 말 그대로 Application Level에서 패킷을 처리하는 Gateway라는 말이다. 여러분들 모두가 아는 OSI 7 Layer다. Application Level Gateway는 여기서 7계층 Application Layer에서 동작한다고 말할 수 있다. 여기서 Gateway는 스위치나 뭐 방화벽이나 될 수 있다. 방화벽에서 처리한다면 Application Level Firewall 이라고 표현하면 된다. 이름이 중요한게 아니다. 일반적인 Packet Filtering 방식의 경우 3 4..
[T0M4TO] Hypervisor를 이용한 가상화 방식 종류 공부하게 된 배경..? Docker Engine을 통한 container 가상화를 공부하다 보니, 자연스레 Hypervisor를 이용한 가상화 방식을 공부하게 되었다. 물론 이렇게까지 하는 사람이 없을수 있지만, 무언가를 공부한다면 내가 다른사람에게 교육할 수 있을 정도의 수준까지 공부 하는것을 추구하는 터라... 혹시나 나와같은 사람이 있다면 도움이 되었으면 하는 마음에 정리를 해봤다. 하여튼 먼저 Hypervisor를 이용한 가상화 방식의 종류에 대해 나열해 보고자 한다. Type-1 가상화(베어메탈형 가상화) 소프트웨어가 설치되지 않은 하드웨어 위에 Hypervisor가 직접 구동되어 동작하는 가상화 방식 Host용 운영체제가 설치되지 않아, Type-2 가상화에 비해 성능 사용에 제약이 적다. M..
[T0M4TO] Linux chroot / namespace / cgroup 이란? chroot 프로세스에 대하여 새로운 root 디렉토리를 지정하는 것 새로운 root 디렉토리가 지정된 프로세스는 할당된 root 디렉토리 하위로만 접근이 가능함 즉 프로세스에 대한 파일시스템 격리 (다만 시스템 설정 및 환경은 동일함) 참고자료 : man7.org/linux/man-pages/man1/chroot.2.html namespace 프로세스 별 리소스 사용을 분리하는 것 namespace 말 그대로 이름이 다른 공간을 만들어, 프로세스를 분리함 다른 namespace에 존재하는 프로세스들은 서로 리소스 관리를 따로 수행 ex) namespace a에서 동작하는 aa 프로세스에서 hostname을 test로 변경한다고 해도, namespace b에서 동작하는 bb 프로세스의 hostname은 ..
[T0M4TO] Virtual Machine(가상머신)과 Docker의 차이 Virtual Machine 이란? 하나의 Host 컴퓨터에서 Hypervisor를 이용하여 생성된 Guest OS들을 의미함 👉 HyperVisor : Host 컴퓨터에서 다수의 OS를 동시에 실행하기 위한 논리적 플랫폼 👉 Guest OS : HyperVisor에 의해 생성되고 관리되는 가상 운영체제 각각의 Guest OS는 완전히 독립된 공간과 시스템 자원을 할당받아 사용함 Type-1 방식과 Type-2 방식이 존재함 Type-1 방식은 대표적으로 Microsoft의 Hyper-V가 있음 Type-2 방식은 대표적으로 VMware와 VirtualBox가 있음 Virtual Machine을 통한 가상화의 단점 시스템 자원 가상화, 독립된 공간 생성 등의 작업이 Hypervisor를 거치기 때문에 일..
[Webhacking.kr] old-20번 문제 풀이 20번 풀이도 가즈아 맨 위에 time limit이 있고, 캡챠가 있고... submit이 있다... 일단 다 입력해서 submit을 눌러보았다. (무엇을 보는거지? 그건 내 잔상이라구...) 느리댄다... 느낌이 팍 온다. 캡챠를 넣어놓은 것으로 보아, 닉네임/코멘트/캡차를 완벽하게 입력하여 submit을 2초안에 해야 풀리는 문제이다. 문제를 푸는 방법은 2가지 정도가 있을것 같다. python urllib 또는 request 또는 selenium 모듈을 사용하여, Response내 captcha를 파싱하여 자동으로 Request에 넣어 보내기 프록시 툴을 이용하여 응답 코드 내 html 코드를 수정하여 자동으로 Request를 정상적으로 보내게 만들기 첫번째 방법은 너무 쉬우니, 두번째 방법을 설명..
[Webhacking.kr] old-19번 문제 풀이 19번 풀이 가즈아 역시나 별게 없다. id에 기본적으로 admin이 들어가 있고 제출버튼이 있다. 눌러보니, you are not admin 이 나타난다. 문제를 나름 많이 풀어보면서 느낀점은, 이런식으로 you are not admin이라고 뜬다는 건... admin으로 어떻게든 성공시키라는 얘기가 된다. admin이 안되니까 우선 a를 넣어봤다. a로는 로그인이 된다. 근데 javascript도 따로없고, SQLI도 안되는것 같고... 무슨 문제인가 고민을 하다가, 쿠키를 확인해보니... userid가 쿠키에 들어가있다. (딱봐도 문제풀이에 100퍼센트 연관이 되어있음을 알 수 있다) 다만 그 값이 base64로 인코딩 되어있는것 같았다. base64로 디코딩해보니, 32byte의 문자열이 나타났다..
[Webhacking.kr] old-18번 문제 풀이 18번 문제를 풀어보자 JS 문제에서 탈출했다. 간만에 보는 SQLI 문제다. 코드를 보지말고 풀까 했지만, 삽질 시간만 늘어날것 같아 코드를 봤다. 크게보면 hex랑 공백정도를 막아둔것 같다. 공백을 ||, &&로 우회하지 못하도록 처리도 해뒀다. 우회는 너무 간단하다. 공백대신 Line Feed(%0a)를 넣어주면 된다. 123123%0aor%0aid='admin' 이렇게 payload짜서 URI에 get방식으로 전달해주면 된다. 풀렸다. 사실 코드보면 admin의 no가 2인것도 나와있는데, 그 정보는 굳이 없어도 풀 수 있는 문제였다. 100점짜리 SQLI이기에 난이도가 상당히 낮았다.
[Webhacking.kr] old-17번 문제 풀이 일이 너무 바빠서 풀이를 오래 쉬었다. old-17번 부터 다시 풀이 드루가자 별거없다. 그냥 입력창과 체크다. 문제번호가 js-4이니, javascript 문제일 것이다. 코드를 보자 form 태그 내 check 버튼을 누르게되면 sub함수를 실행시킴을 확인할 수 있다. script 내 코드를 보니 sub함수를 확인할 수 있었다. 내용은 간단하다. unlock 변수의 값과 동일한 데이터를 input에 넣고 check 버튼을 눌리면 풀린다. 다만 unlock 변수가 복잡한 사칙연산으로 이루어져 있다. 이걸 굳이 우리가 풀 필요는 없다. 이런건 개발자도구 console에게 맡기자. unlock이 7809297.1임을 확인했다. 찾은 데이터를 입력하고 check버튼을 클릭하면 풀었다. JS문제의 경우 대부분..