서버 / IT 어떻게 해야 이 디렉토리 아래의 모든 파일들을 다운로드 받을 수 있을까요?
2021.02.07 00:03
특정 게임에 대한 이야기이긴 합니다만, 최대한 이해할 수 있게 써보겠습니다.
FastDL이라는 것을 이용해서 클라이언트로 하여금 파일을 다운로드 받게 하는 방식의 게임 서버가 있습니다. FastDL에는 몇가지 기능이 있는데, 그 중 하나가 적용된 모양인지, http://www.example.com/downloads/example1/example.vmt 와 같은 경로를 직접 입력하거나, 게임 클라이언트에서 서버에 연결할 때 자동으로 다운로드 되는 경우 이외에는 서버에 접근하기 힘들더군요.
http://www.example.com/downloads/example1/example.vmt 와 같이 파일명을 전부 입력해서 파일을 다운로드 받을 수 있지만,
http://www.example.com/downloads/ 와 같이 디렉토리명을 입력하면 403 Forbidden 오류를 반환합니다. 접근이 차단되었다는거죠.
와이어샤크로 패킷을 까보았는데, 대충 이런 모양으로 나왔습니다. IP 주소나 도메인 등은 적당히 편집했습니다.
Internet Protocol Version 4, Src: 123.456.789.0, Dst: 111.222.333.444
Transmission Control Protocol, Src Port: 12545, Dst Port: 80, Seq: 12038, Ack: 3004495, Len: 205
Hypertext Transfer Protocol
GET /downloads/example1/somefile.vmt HTTP/1.1\r\n
Referer: hl2://111.222.333.444:27015\r\n
User-Agent: Half-Life 2\r\n
Host: www.example.com\r\n
Connection: Keep-Alive\r\n
Cache-Control: no-cache\r\n
\r\n
[Full request URI: http://www.example.com/downloads/example1/somefile.vmt]
[HTTP request 59/61]
[Prev request in frame: 3416]
[Response in frame: 3420]
[Next request in frame: 3422]
이걸 보고 '아, HTTP 헤더를 적당히 편집하면 되지 않을까?' 하여 다음과 같은 배치 스크립트를 짜 실험해보았습니다.
@echo off
wget --recursive --no-parent -l2 -d -e robots=off --header="Referer: hl2://111.222.333.444:27015" --header="User-Agent: Half-Life 2" --header="Host: www.example.com" --header="Connection: Keep-Alive" --header="Cache-Control: no-cache" http://www.example.com/downloads/example1/
pause
여전히 403 Forbidden 코드를 반환하더군요.
어떻게 해야 특정 디렉토리 아래에 있는 모든 파일들을 원래 구조에 맞추어 다운로드 받을 수 있을까요?
테스트용 주소 (HTTP 200 OK): http://rssgo.co.케이알/ze_download/materials/rss/sprays/76561198055683832_1.vmt
테스트용 디렉토리: http://rssgo.co.케이알/ze_download/materials/
댓글 [5]
-
들풀 2021.02.07 01:10 -
ViArPl 2021.02.07 01:12
게임 클라이언트가 사전에 파일 목록을 받는건 아닌거로 아는데, 그러면 게임 클라이언트는 그 '디렉토리 리스팅'이 가능하다는 의미 아닌가요?
-
들풀 2021.02.07 01:24 게임클라이언트가 웹서버에 요청을 하면 서버는 요청시 받은 정보로
허용된 클라이언트임을 확인 후 그만큼 접근을 허용해주는 겁니다.
원하시는 작업을 하려면
게임 클라이언트와 서버의 패킷을 분석해서 주고 받는 정보를 분석해내고
실제 응용을 위해선 알아낸 정보를 서버로 보내야 하는데
그러려면 프로그램을 새로 짜야할 수준입니다.
물론 클라이언트와 서버가 주고받는 정보는 암호화가 되어 있습니다.
알아내려면 복호화해야하고
알아낸걸 전송시에는 또 암호화해서 보내야 합니다.
-
DarknessAngel 2021.02.07 09:36
가장 먼저 전체 목록을 받아오고, 거기 있는 URL대로 순차적으로 받는걸 수 도 있습니다
-
ViArPl 2021.02.07 14:07
결국 두 분 말을 종합하면, 서버와 통신할 때 먼저 서로 암호화된 데이터를 서로 교환해서 클라이언트가 유효한 클라이언트임을 확인받고 그 후에 그 인증한 정보를 갖고 파일을 받는다는거네요...
패킷을 까보았을 때 Application Data 뭐시기가 있기는 했는데 게임 서버와 관련 없는 다른 IP였던지라 이건 아니겠거니 하고 넘겼는데, 아마 여기서 암호화 관련 교환이 생겼을 수도 있겠네요. 서버 IP 주소와 관련된 기록에서는 특별히 암호화 관련 교환이 일어난 흔적을 못찾았던지라...
두분 모두 정보 감사합니다.
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
87930 | 윈 도 우| 익스에 생기는 불필요한 탭 안생기게 하기 | billy | 169 | 02-08 |
87929 | 기 타| alt + tap 기능 단축키로 프로그램 지정할 수 없나요? [6] | nadaeri | 273 | 02-08 |
87928 | 윈 도 우| 게하니니스님의 RSPartition사용법 강의에 관하여 질문합니다. [4] | 破緣 | 302 | 02-08 |
87927 | 소프트웨어| 갑자기 드라이버가없답니다 [3] | her123 | 370 | 02-08 |
87926 | 윈 도 우| 저용량 PE 에 드라이버 통합않되나요? | 져지해골 | 184 | 02-07 |
87925 | 하드웨어| 특정 USB포트가 느린 현상 [5] | 메리아 | 437 | 02-07 |
87924 | 윈 도 우| ventoy-1.0.3X 사용중입니다. [5] | 불형 | 391 | 02-07 |
87923 | 하드웨어| 디램리스 ssd질문요 [4] | 놀랐네 | 418 | 02-07 |
87922 | 소프트웨어| 여러분은 파티션을 몇개 만드시나요?&배치파일 관리자 ... [7] | 레덕후 | 500 | 02-07 |
87921 | 윈 도 우| 트리플부팅 메뉴 순서 변경방법없을까요? [1] | 컴알못러 | 219 | 02-07 |
87920 | 하드웨어| 메인보드 powr led 꼽는곳좀 봐주세요 [2] | 행인쓰리 | 247 | 02-07 |
87919 | 윈 도 우| PE를 VHDX 파일로 만들기가 어렵네요 [6] | 맨주먹정신 | 430 | 02-07 |
87918 | 윈 도 우| 나스로 쓰던 4T 하드 인식문제와 저용량문제 ㅠㅠ [5] | 키트 | 495 | 02-07 |
87917 | 소프트웨어| 노트북 소리 문제 [8] | 안정 | 356 | 02-07 |
87916 | 윈 도 우| 마이크 On/Off 우클릭 레지 [2] | 읍민Kaine | 295 | 02-07 |
87915 | 소프트웨어| 윈포님들은 백업,복구유틸 어떤걸 쓰시나요? [17] | IMG | 649 | 02-07 |
87914 | 윈 도 우| 복구 영역이 포함된 SSD를 다른 컴퓨터에서 부팅할때? [2] | 타나 | 407 | 02-07 |
87913 | 모 바 일| 핸드폰으로 PC폰트 그냥 복사하면 안 되나요? [2] | nadaeri | 300 | 02-07 |
87912 | 윈 도 우| C드라이브 파티션 구성 문제 [6] | 명기리 | 416 | 02-07 |
» | 서버 / IT| 어떻게 해야 이 디렉토리 아래의 모든 파일들을 다운로드 ... [5] | ViArPl | 507 | 02-07 |
안될수밖에 없는게 해당 웹서버에서 보안 설정을 그렇게 한겁니다.
디렉토리 리스팅 취약점에 대한 조치를 한거죠.