새로 갈아 엎은 버전(본 글은 참고만...)
Toy project - 간단 웹 프록시 서버 만들기 Remake
서론(배경)지금은 없어진(달라진?) 육군 정보보호병으로 근무할 당시, 싸지방에서 어떻게든 드림핵을 풀며 공부하려고 했다.하지만, 싸지방은 80, 8080, 443 포트 외에는 전부 차단되어 있기 때문에
filime.tistory.com
서론(배경)
Dreamhack 열광 팬으로서 Dreamhack 문제 푸는 것을 아주 좋아한다. 그런데, 종종 '어떤' 환경에서 보안을 이유로 웹 접속 포트를 8080 혹은 80, 443, 8443 같이 기본 포트만 허용해주고 나머지를 막는 경우가 있다.
예를들면.... 싸지방이라던가... 군대라던가....
Dreamhack은 워게임을 풀기 위해서 VM 요청을 보내면, 해당 환경을 구성하여 접속 port를 제공한다. 그런데. 제공되는 포트는 80과 8080을 주지 않는다. 다양한 범위의 포트를 주기 때문에 앞서 말한 환경에서는 패킷이 차단된다....
그래서 나만의 웹 프록시 서버를 만들어서 내가 서버에 port 값만 주면 서버가 dreamhack에 요청하고 받아서 나에게 전달해주는 방법을 생각해냈다.
나 -> 서버
서버 -> dreamhack -> 서버
서버 -> 나
코드
우선 웹서버로 nginx를 사용했다.
nginx에서 제공하는 기본 기능으로 구성했다.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
location ~* "^/dream/(.*)/(.*)$" {
resolver 10.1.0.2;
proxy_pass http://host3.dreamhack.games:$1/$2?${args};
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header Accept-Encoding "";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#sub_filter '<div' '<span>';
#sub_filter_types *;
#sub_filter_once off;
sub_filter 'src=\".' 'src="https://$host/dream/$1/';
sub_filter 'src=\"/' 'src="https://$host/dream/$1/';
sub_filter 'href=\"' 'href="https://$host/dream/$1/';
sub_filter 'const' 'var';
sub_filter_types *;
sub_filter_once off;
}
}
nginx를 설치하고 /etc/nginx/sites-available/default 파일을 위의 코드처럼 수정해주면된다.
어찌저찌 검색해서 알아낸 내용에 내 미천한 코딩실력을 가미해서 만들었다.
위 내용 그대로 구성하면,
http://서버주소/dream/포트주소/
이렇게 하면 원하는 dreamhack 문제페이지에 접속된다.
주의할 점은 포트주소 다음에 /를 꼭 입력해줘야 index를 불러온다. 구성하는 과정에서 포트주소 다음에 오는 주소를 불러오도록 하였더니 그렇게 된 것 같다. 단순히 불러오는 것 말고도 script 태그나 img 태그 등 태그들의 src도 적절하게 주소를 변환해준다.
마지막으로
군대나 군대 같은 열악한 환경에서도 공부하려는 사람들을 응원합니다. 꼭 도움이 되셨으면 좋겠습니다!
'Web Hacking > ETC..' 카테고리의 다른 글
Toy project - 간단 웹 프록시 서버 만들기 Remake (0) | 2025.02.05 |
---|---|
2023.09.21 웹 스터디 심화반 수업 자료 (0) | 2023.09.22 |
2023.09.01 웹 스터디 심화반 수업자료(Prototype Pollution) (0) | 2023.09.10 |
Security Factorial 23년 1학기 기초반 웹 스터디 자료 (0) | 2023.08.05 |