이 URL이 어떻게 작동할 수 있을까요?

이 URL이 어떻게 작동할 수 있을까요?

수정을 위해 리버스 엔지니어링하려는 시스템을 물려받았습니다.

녹음을 들을 수 있는 URL을 생성하는 프로그램이 있습니다. 다음과 같습니다:

http://recordings.myserver.com/archive/http://127.0.0.1/completed/MP3/2019-12-23/recording_file_name.mp3

URL이 작동하고 녹음 내용을 들을 수 있지만 어떻게 작동하는지 이해가 되지 않습니다. URL 내의 URL처럼 보입니다. 내가 아는 한, "아카이브"는 Recordings.myserver.com의 링크나 별칭이 아닙니다. 확실히 없어 "http://127.0.0.1" 서버의 디렉토리입니다.

이 링크도 작동합니다:

http://recordings.myserver.com/completed/MP3/2019-12-23/recording_file_name.mp3

또한 기존 프로그램이 테이블에 쓰는 내용이 아니라 더 의미가 있습니다.

.htaccess에 있습니다:

RewriteEngine On
RewriteCond %{HTTPS}  !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

그러나 URL은 HTTP이며 다시 작성한 후에도 그대로 유지됩니다. 녹음을 듣기 위해 클릭한 링크가 포함된 페이지에는 방금

보관 링크나 폴더가 없는데 첫 번째 링크는 어떻게 작동하나요? 는http://127.0.0.1첫 번째 URL 내에서 작동하게 하시겠습니까?

답변1

이를 달성하는 방법에는 여러 가지가 있습니다. 하나는 추측한 대로 HTTP 재작성을 사용하는 것입니다. /archive/*예를 들어 재작성한 /archive/redirect.php다음 나머지 URL을 읽고 역방향 프록시 요청을 수행합니다.

이를 수행하는 또 다른 방법은 애플리케이션(404) 처리를 조작하는 것입니다. 404가 발생하는 경우 웹 서버는 이를 클라이언트에 보내기 전에 이를 가로채고 역방향 프록시 요청을 수행하여 결과를 클라이언트에 전달합니다.

어느 쪽이든 외부에서 회사 네트워크 내부 리소스에 액세스하는 데 탁월한 악용 사례인 것처럼 보입니다. 해당 URL을 말 그대로 다른 것으로 바꾸면 http://127.0.0.1/해당 URL의 내용이 반환될 것이라고 확신합니다.

관련 정보