pwndrop docker 한글 파일명 문제 해결법 0.2버전

 

이 글을 보고 저도 호기심에 설치를 해봤습니다

linuxserver/docker-pwndrop (github.com)

 

한글 파일명이 인코딩이 잘못 된건지 복사된 주소가 에러가 뜨네요 

 

수정은 간단할 거 같은데 소스 코드를 뜯어야 하다보니

 

어떻게 해결을 할까 고민을 하다가

 

브라우저 확장 프로그램을 사용하기로 했습니다

 

image.png.jpg

로직은 간단합니다

Tampermonkey (google.com)라는 확장 프로그램을 통해 

http 클릭 이벤트가 발생할 때 화살표 부분에 제대로 된 주소가 표시 된다는 점을 이용해서

버튼 클릭 시 가까운 곳에 위치한 한글파일명 주소를 가져옵니다

pwndrop서비스 주소 + 화살표 부분 주소 를 합쳐서 클립보드로 가져옵니다

// ==UserScript==
// @name         Pwndrop Link Korean Filename Fix
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  Pwndrop Link Korean Filename Fix
// @author       빨간물약
// @match        *://pwn.서비스.com/*
// @icon         https://pwn.서비스.com/pages/img/pwndrop.png
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    setTimeout(function() {
        // 함수를 문서에 추가하고 클릭 이벤트 리스너로 등록
        document.addEventListener('click', function(e) {
            // 클릭된 요소가 원하는 버튼인지 확인
            if (e.target.closest('.btn-copy-link')) {
                // 파일 경로 추출
                const filePathElement = e.target.closest('.upload-block').querySelector('.col-auto.grow.trans small');
                if (filePathElement) {
                    const filePath = filePathElement.textContent.trim();
                    let fullUrl = `https://pwn.서비스.com${filePath}`;

                    // WebDAV 버튼 클릭 시 특정 문자열 추가
                    if (e.target.innerText.includes('WebDAV')) {
                        fullUrl = `\\\\pwn.서비스.com@80\\${filePath}`;
                    }

                    // 클립보드에 파일 URL 복사
                    navigator.clipboard.writeText(fullUrl)
                        .catch(err => {
                            // 복사 실패시 에러 메시지 출력
                            console.error('클립보드 복사 실패:', err);
                        });
                    e.preventDefault(); // 기본 동작 방지
                }
            }
        });
    }, 100); // 0.1초 후에 실행
})();

js0.2 Pwndrop Lin
1.7 KB
 

@match 부분은 입력 된 주소에서만 스크립트가 작동 합니다.

@icon 부분은 스크립트의 아이콘을 설정 하는 부분입니다

navigator.clipboard.writeText(`https://pwn.서비스.com${filePath}`) 부분은 링크의 앞 부분을 채울 주소 입니다

Loading

fullUrl = `\\\\pwn.서비스.com@80\\${filePath}`; 이 부분은 웹 데브 버튼 클릭시 추가 될 주소 입니다

전부 다 pwndrop 주소를 적으시면 됩니다

 

코드를 본인의 주소로 수정 하시고 tempermonkey 확장 프로그램 클릭 – 대시보드

– +버튼을 클릭해서 새로운 스크립트 추가

 

image.png.jpg

수정 된 코드 복사 하시고 파일 – 저장 누르시면 됩니다

 

 

image.png.jpg

그럼 이렇게 추가가 됩니다

 

 

image.png.jpg

pwndrop 웹 페이지에서 이렇게 표시 되면 적용 되고 있는 겁니다

 

 

image.png.jpg

이제 여기서 http 버튼을 누르면

 

https://pwn서비스.com/nUmQDTue/킹스맨.jpg
이렇게 클립보드에 복사 됩니다

Loading

 

 

image.png.jpg

복사된 링크로 접속 하면 파일 잘 보이네요

 

webdav 부분도 수정 했습니다

 

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다