본문 바로가기

KnockOn

[1주차 TIL] KnockOn Bootcamp 프록시

728x90

프록시


프록시는 대리를 의미하고 네트워킹에서는 프록시 서버를 지칭한다

프록시 서버는 클라이언트와 목적지 서버 간의 중개 역할을 하며 클라이언트의 요청을 받아
이를 대신 처리하고 응답을 반환한다

 

 

기능

  1. 익명성 제공 : 클라이언트의 IP 주소를 숨기고 프록시 서버의 IP 주소로 요청을 보내어 
    클라이언트의 개인 정보를 보호한다
  2. 캐싱 : 자주 요청되는 웹 페이지나 데이터를 프록시 서버에 저장하여 
    네트워크 트래픽을 줄이고 응답 속도를 향상시킨다

  3. 접근 제어 : 특정 웹 사이트나 콘텐츠에 대한 접근을 허용한다
    이를 통해 기업이나 기관에서 직원들의 인터넷 사용을 관리할 수 있다
  4. 로깅 및 모니터링 : 사용자의 인터넷 활동을 기록하고 모니터링하여
    보안 및 규정 준수 목적으로 사용할 수 있다

  5. 보안 강화 : 외부 서버와의 직접적인 접속을 차단하고 악성 코드나 공격으로부터
    내부 네트워크를 보호할 수 있다.

 

 

VPN / Proxy


VPN과 Proxy는 각기 다른 특징을 가지고 있다

항목 VPN Proxy
보안 강력한 암호화 대부분 암호화 되지 않음
프라이버시 높은 수준의 프라이버시 제공 기본적인 익명성 제공
속도 느릴 수 있음 비교적 빠름
적용 범위 전체 트래픽 보호 특정 프로토콜 트래픽만 보호
설정 일반적으로 설치 및 설정 필요 비교적 간단한 설정
비용 대부분 유료 많은 무료 옵션 제공
지역 제한 우회 우회 가능 우회 가능

 

요약 :

보안과 프라이버시가 중요한 경우 --> VPN

IP숨김, 특정 웹사이트 접근하는 경우 --> Proxy

 

 

 

도전과제


웹 프록시 툴 burp suite를 사용해서 도전과제를 진행해 보겠다

1. 웹 프록시 툴을 이용하여 패킷 변조해보기

2. knock-On 링크로 실습하기

 

 

1,2를 한번에 링크를 통해 학습해 보겠다

 

친절하게 post 요청으로 변경하라는 말이 나와있다

그렇다면 burpsuite를 사용해 새로고침을 인터셉트해서 보겠다

 

문제 될만한 요소는 일단 지웠다

1번째 줄을 보면 GET 글자를 볼 수 있는데 이를 POST로 바꾸고 foward버튼으로 진행한다면
해결할 수 있을 것 같다

 

이번에는 POST 요청에 request 파라미터를 get-flag로 설정해야한다

그렇다면 post 요청에 기본 구조를 확인해야하는데
요청에는 URL인코딩, JSON등등이 있는데 JSON형식으로하다가 안되서

혹시 JSON은 지원하지 않는건가 하여 URL 인코딩 방식으로 진행했더니 문제를 풀었다

기본 형태

POST /submit HTTP/1.1

Content-Type: application/x-www-form-urlencoded

request=get-flag

참고로 패킷을 보낼때 뒤에 줄바꿈이 있거나 한다면
문제가 발생할 수 있기때문에 깔끔하게 보냈다

 

 

User-Agent 에 값을 bot으로 바꾸고 진행한다면 다음으로 넘어갈 수 있겠다

그렇다면 전에 값에서 User-Agent: bot을 추가하여 보내면 되겠다

 

 

자 마지막이다

문제를 보면 API_KEY라는 쿠키를 SUp3r_STr0000ng_k3y으로 가지고 있어야한다고 한다

그렇다면 헤더부분에 Cookie: API_KEY=SUp3r_STr0000ng_k3y 코드를 추가한다면

끝날 것 같다

이부분을 진행하던중 저렇게 해도 풀리지 않았었는데

패킷을 보낸뒤 웹창에 개발자 도구에 들어가 cookie를 확인해 쿠키가 존재하고 있다는것을

알았고 knockon멘토분께서 오류를 해결해 주셔서 문제를 끝낼 수 있었다

 

 

 

 

 

 

 

 

이렇게 burp suite 실습을 성공적으로 마치게 되었다

처음 사용하보는것이기도 하고 웹은 사실상 처음이라 어색하기 때문에

google검색에 도움과 chat-gpt의 도움을 많이 받았다

 

하지만 요청 구조에 대해 조금은 알게된 실습이었다