Subversion 저장소에서 해킹된 파일을 다시 편집 가능하게 만드는 방법은 무엇입니까?

Subversion 저장소에서 해킹된 파일을 다시 편집 가능하게 만드는 방법은 무엇입니까?

웹사이트에서 일부 해킹된 파일을 조사하고 있는데 해당 웹사이트의 버전은 Subversion 저장소에서 관리되지만 파일이 수정된 것으로 표시되지 않습니다. 깨끗한 복사본을 체크인할 수 있도록 SVN이 파일을 무시하는 것을 어떻게 중지합니까?

저는 해킹된 웹사이트(비교적 규모가 작고 일부 카지노 링크가 페이지 제목에 추가됨)를 정리하고 있으며 해당 사이트는 SVN 저장소의 작업 복사본에서 호스팅됩니다. (예, 해당 폴더에 대한 접근을 차단하는 유효한 .htaccess 파일이 있습니다 .svn.) 흥미롭게도 해킹된 파일에는 SVN 저장소의 마지막 업데이트 버전에서 수정된 날짜가 있어 svn status수정되지 않았음을 보여주며, svn log -v <hacked_file>더 새로운 버전이 없음을 보여줍니다. 마지막 커밋보다 SVN 저장소의 버전 svn diff <hacked_file>도 파일과 저장소에서 마지막으로 수정된 버전 간에 차이가 없음을 보여줍니다. 각 버전 간의 로그와 차이점을 확인하기 위해 몇 가지 스크립트를 작성했지만 파일은 수정되지 않았습니다.

그러나 파일 이름이 다음과 같이 에 나타나는 것을 확인했습니다 .svn/all-wcprops.

K 25
svn:wc:ra_dav:version-url
V 48
/<repo>/!svn/ver/97/trunk/www.example.com/<hacked_file>
END
favicon.ico

물론 svn proplist -v <hacked_file>아무것도 출력되지 않으며 svn propget 'svn:wc:ra_dav:version-url' <hacked_file>"wcprop이므로 클라이언트에 액세스할 수 없습니다"라는 오류가 반환됩니다.

"svn:ignore" 소품도 보이지 않으며, svn status --no-ignore해킹된 파일도 표시되지 않습니다.

나는 많은 연구를 해왔지만 실제로 SVN에는 'wcprops' 또는 .svn/all-wcprops.all-wcprops

작업 복사본을 삭제하고 새 복사본으로 체크인하는 것 외에 다른 가능성/옵션/제안이 있습니까(너무 큰 저장소에 있으므로 시간이 많이 걸리고 모든 것이 제대로되었는지 검토하는 데 오랜 시간이 걸립니다) ok) 특히 누락되었을 수 있는 수정된 파일이 없다는 것을 믿을 수 없기 때문에)? 이것이 기본 SVN 저장소에서 수정되었을 가능성이 있습니까?

답변1

다른 사람들이 지적했듯이 작업 복사본은 신뢰할 수 없거나 신뢰할 수 없기 때문에 어쨌든 SVN에서 저장소의 새로운 복사본을 확인하는 것이 좋습니다. 그래서 저는 다음을 수행했습니다.

  • 새 작업 복사본을 체크아웃했습니다.
  • 해킹된 파일의 내용이 저장소에 표시된 대로 정확하고 악의적으로 수정되지 않았는지 확인하세요.
  • 해킹된 파일(및 여기에 나열된 기타 파일)에 대한 수정 사항이 편집 시 .svn/all-wcprops수정된 것으로 표시되는지 확인svn status
  • 작업 복사본 교환
  • 해킹된 작업 복사본에서 실제로 어떤 파일이 변경/추가되었는지 확인하기 위해 실행했지만 diff -qrx .svn <hacked_working_copy>/ <new_working_copy>/아무것도 표시되지 않습니다.
  • 커밋되지 않은 파일의 내용을 확인하고 필요에 따라 수동으로 복사합니다.
  • 추가 조사/증거를 위해 해킹된 작업 복사본을 보관 및 삭제한 후 삭제합니다.

물론 추가 조치와 예방 조치를 취하고 있지만 재귀를 통해 diff문제가 있는 파일을 쉽게 식별할 수 있습니다.

관련 정보