일부 코드가 다수의 PHP 파일에 삽입되어 있는 웹사이트가 있는데 파일 수가 너무 많아 수동으로 삭제할 수 없습니다.
모든 파일에 삽입된 코드에서 변수 이름을 검색할 수 있고 영향을 받는 변수 목록이 제공되지만 실제 코드에는 큰따옴표, 작은따옴표 및 모든 종류의 문자가 포함되어 있기 때문에 검색에 넣을 수 없습니다.
제가 검색에 사용하는 것은 다음과 같습니다.
grep -Ril "ljdcvhg" '사이트 폴더 경로'
php 함수/주입 코드 전체를 검색해서 삭제하는 방법이 있나요? 저는 Linux를 처음 접했습니다.
여기에 해킹된 코드를 넣으려고 했는데 허용되는지는 잘 모르겠습니다.
도움을 주시면 감사하겠습니다.
답변1
PHP 기반 프론트엔드를 해킹한 누군가가 거기에 코드를 주입하고, 주입된 코드를 직접 정리하려고 했습니다(뒤쪽에프레임워크의 깨끗한 타르볼과 내가 수정한 내용으로 사이트를 복원하면 실제 전문 지식과 답변을 제공할 수 있습니다.이 문제에 대한 유일한 실제 대답은 다시 시작하는 것입니다. 코드를 정리하는 것은 매우 어려울 것입니다. 어디에나 있을 수 있지만 모두 찾을 수는 없습니다. 또한 PHP뿐만 아니라 핵심 시스템 자체가 주입되고 난독화된 코드를 통해 다운로드되는 악성 코드를 실행하고 있을 수 있으므로 시스템이 손상될 가능성이 높습니다.
일반적으로 이 상황에서 유일한 합리적인 옵션으로 간주되는 입증된 솔루션은 다음과 같습니다.Orbit * 에서 삭제 하고 깨끗한 백업(또는 버전이 지정된 코드)에서 다시 시작하세요.. 사이트 코드뿐만 아니라 서버 자체도 마찬가지입니다. PHP 사이트에 삽입된 코드는 간단한 포트 검사부터 운영 체제 자체의 전체 맬웨어 설치, 루트킷에 이르기까지 모든 것을 실행할 수 있습니다. 따라서 다시 시작하고, 사이트가 있는 서버를 지워서 사이트 코드베이스를 파괴하고, 깨끗한 버전 제어 코드나 가지고 있는 마지막 깨끗한 백업에서 복원하세요.
(TL;DR, 삽입된 코드를 모두 제거하려고 하지 말고, 깨끗한 서버에서 다시 시작하고 백업 또는 버전 제어 저장소 데이터에서 복원하세요.)
나는 또한 개인 연구실에 있는 내 웹사이트를 손상시키고 난독화된 코드를 사용하여 호스트 서버에 악성 코드를 다운로드할 수 있음을 보여주었습니다.그리고손상된 서버에 액세스하는 클라이언트의 경우...이것이 환경을 파괴하고 깨끗한 백업에서 다시 시작해야 하는 이유입니다. 그런 다음 웹 사이트에 코드를 삽입하는 데 사용되는 취약점이 패치됩니다.
* 이것이 무엇을 의미하는지 모르신다면 "궤도에서 핵을 제거한다"는 구어체 용어로 기본적으로 사이트를 종료하고, 서버를 종료하고, 전체 하드 드라이브를 지우고, 서버를 새로 설치하는 것부터 시작한다는 뜻입니다.그리고웹사이트 코드 베이스.
답변2
다음을 시도해 볼 수 있습니다.
- PHPEclipse, PHP Storm, NuSphere, Notepad++, Linux의 Kate, MacOS의 TextMate 등 코드 서식 지정 기능을 갖춘 전문 PHP 편집기를 이용하세요.
- 모든 파일에서 특정 문자열을 검색하여 삭제할 수 있습니다.
- 난독화된 콘텐츠를 볼 수 있도록 코드 형식을 다시 지정할 수도 있습니다(HTML을 포함한 코드 형식 지정 도구).
- 또한 강조 표시된 코드를 볼 수 있으면 도움이 됩니다. 예를 들어 올바르게 강조 표시되지 않은 내용은 난독화된 콘텐츠일 수 있습니다.
- 모든 코드를 올바르게 읽어야 합니다.
- 편집기는 코드가 추가로 악용되지 않도록 보호하는 데 도움이 됩니다.
- PNG 또는 JPEG 이미지에 PHP 또는 JS 코드가 없는 경우 모든 파일(사진 포함)이 경쟁하는지 확인해야 합니다.
- PHP 런타임을 최신 패치가 포함된 버전으로 업그레이드하거나 최신 PHP7로 마이그레이션하여 최신 상태로 유지해야 할 수도 있습니다.
- Cloud Flare를 사용하여 취약점으로부터 보호할 수 있습니다.
- 다른 호스팅을 사용하거나 계정을 다시 만드는 것을 고려할 수 있습니다.
- 때로는 php.ini를 조정하면 제한과 제약을 적용하여 도움이 될 수 있습니다.
- 비맞춤형 소프트웨어를 사용한 경우 최신 패치 버전을 다운로드하고 기존 소프트웨어와 병합하여 패치할 수 있습니다.
- 때로는 WordPress처럼 자동 업데이트를 활성화할 수도 있습니다.
또한 서버가 손상되어 재구축을 시도할 수도 있습니다. 예를 들어 가상 머신을 재구성합니다.
또한 사이트를 GitHub에 업로드하여 도움을 요청할 수도 있습니다. GitHub에서 나중에 삭제하고 동료 검토를 받을 수 있습니다. 데이터베이스는 필요하지 않습니다. 이것은 확실히 경쟁입니다. 로그를 읽고 그것이 어떻게 악용되었는지 이해하는 것이 가장 좋습니다.
웹사이트가 손상되었다고 해서 항상 서버가 손상된 것은 아닙니다. PHP 코드에 어리석은 버그가 있다고 해서 악용 가능한 커널 취약점이 있다는 의미는 아닙니다.
전체적으로는 에디터에서 편집해서 제대로 확인한 뒤, 정렬하고, 결국에는 패치도 하고, 뭔가 바뀔 때마다 백업을 해둬야 합니다. 명령을 통해 정렬할 수 없으며 패치가 필요합니다. 여기에는 grep을 사용하는 대신 평소처럼 소스 코드로 작업하는 것이 포함됩니다.