PHP 기반 웹사이트 해킹 – PHP 취약점 및 수정
PHP는 오늘날 거의 모든 인기 있는 CMS의 중추입니다. 단순성과 라이선스가 필요 없는 특성 덕분에 PHP는 동적 웹사이트 개발에 선호되는 선택입니다. 그러나 열악한 코딩 표준으로 인해 PHP 사이트를 손상시키는 것이 상대적으로 쉬워졌습니다. 인터넷은 사용자가 사용자 정의 PHP 웹사이트 해킹 또는 PHP 웹사이트 리디렉션 해킹에 대해 불평하는 도움말 스레드로 가득합니다. 이로 인해 PHP 자체에 대한 많은 부정적인 홍보가 이루어졌으며 이에 대해 책임을 질 곳이 없습니다.
따라서 PHP가 비난받지 않는다면 PHP 웹 사이트 리디렉션 해킹의 원인은 무엇입니까? 이 기사에서는 PHP 웹사이트를 손상시키는 보안 결함과 이를 방지하는 방법에 대해 설명합니다.
해킹된 맞춤 PHP 웹사이트:예
대부분의 사이트 소유자는 보안 측면이 아닌 개발 부분에만 집중합니다. 따라서 PHP로 설계된 웹사이트가 해킹을 당하면 사이트 소유자는 개발자에게 개발비만 지불하므로 갈 곳이 없습니다. 문제가 있는 사용자는 온라인 포럼에서 도움을 찾고 이와 같은 기사를 읽을 수 있습니다. 다음은 그러한 몇 가지 예입니다.
사용자 정의 PHP 웹사이트 해킹됨:증상
- 사용자를 속여 민감한 정보를 입력하도록 하는 피싱 페이지가 PHP 사이트에 나타납니다.
- 사용자가 사이트의 특정 링크를 클릭하여 다른 도메인으로 이동합니다. 잘못된 구성이나 PHP 웹사이트 리디렉션 해킹으로 인해 발생할 가능성이 가장 높습니다.
- Adblocker는 암호화폐 채굴을 위해 사이트의 특정 요소에 레이블을 지정하고 차단합니다.
- 알 수 없는 PHP 파일 관리자가 사이트에 나타나고 PHP 사이트에 악성 광고가 표시됩니다.
- PHP 파일이 리디렉션을 유발하거나 수상한 사이트에 대한 백링크를 생성하는 알 수 없는 코드로 수정되었습니다.
- 일본어 키워드 해킹 또는 Pharma Hack 등으로 인해 발생할 수 있는 사용자 정의 PHP 웹사이트에 횡설수설한 콘텐츠가 나타납니다.
- 사용자 정의 PHP 사이트에 타사 호스팅을 사용하는 동안 계정 정지에 대한 경고 메시지가 나타납니다.
- 맞춤형 PHP 사이트는 Google 및 기타 검색 엔진에서 악성코드 스팸 등을 차단할 경우 경고 메시지를 표시합니다.
- phpMyAdmin은 새롭고 알려지지 않은 데이터베이스 관리자를 보여줍니다.
- PHP 웹사이트 도메인에서 보낸 이메일이 스팸으로 분류되었습니다.
- 사이트 및 PHP 사이트에서 예기치 않은 오류 메시지가 느려지고 응답하지 않습니다.
사용자 지정 PHP 웹사이트 해킹:13가지 이유
서버 구성 오류
1. 약한 파일 권한
파일 권한은 특정 유형의 사용자에게 특정 PHP 파일을 수정할 수 있는 권한을 부여합니다. 따라서 PHP 파일 권한이 제대로 설정되지 않으면 공격자가 PHP 파일에 악성 스팸 등을 주입할 수 있습니다.
2. 기본 비밀번호
취약하거나 일반적으로 사용되는 비밀번호를 사용하는 것은 사용자 정의 PHP 웹사이트가 해킹되는 일반적인 이유입니다. 사용자 정의 사전을 사용하여 가능한 모든 암호 조합을 시도할 수 있습니다. 공격 벡터(예:FTP 무차별 대입 또는 cPanel 무차별 대입)에 따라 손상되면 공격자는 사용자 정의 PHP 사이트의 관리 영역에 액세스할 수 있습니다. 그런 다음 공격자는 PHP 멀웨어 또는 백도어를 업로드할 수 있습니다.
관련 기사 – WordPress 백도어를 제거하는 방법
3. 디렉토리 인덱싱 사용
디렉토리 인덱싱을 활성화하면 공격자가 민감한 PHP 파일을 읽을 수 있습니다. 이것은 공격자에게 서버에 관한 민감한 정보를 제공할 수 있습니다. 공격자는 이 정보를 사용하여 사용자 지정 PHP 사이트에 대한 사이버 공격을 수행할 수 있습니다.
4. 포트 열기
열린 포트로 인해 사용자 정의 PHP 웹 사이트가 해킹될 수 있습니다. 또한 공격자가 PHP 사이트의 백엔드 서비스에 지문을 묻기 위해 열린 포트를 사용할 수 있습니다. 이 정보를 사용하여 공격자는 익스플로잇을 사용하여 백엔드 서비스 또는 열린 포트 자체를 손상시킬 수 있습니다.
5. 열악한 호스팅
일반적으로 값싼 PHP 호스팅에는 보안에 대한 높은 대가가 따릅니다. 열악한 호스팅은 보안 작업을 줄여 서비스를 더 저렴하게 만듭니다. 따라서 이러한 서버에서 감염이 확산되기 시작하면 PHP 사이트를 포함한 여러 사이트가 손상될 수 있지만 직접적인 대상은 아닙니다.
취약한 PHP 코드
6. PHP SQL 주입
PHP에서 SQL 주입은 주로 정제되지 않은 사용자 입력의 부족으로 인해 발생합니다. 열악한 코딩 표준으로 인해 정제되지 않은 입력은 데이터베이스 서버에 직접 도달하여 실행됩니다. 사용자 정의 PHP 페이지에서 SQLi의 주요 원인은 다음과 같습니다.
- 공백 문자에 대한 필터링 부족
- 따옴표를 사용하여 문자열을 구분합니다.
- 위생되지 않은 사용자 입력을 데이터베이스에 전달합니다.
- 유니코드 인코딩의 부적절한 구현.
- 코드와 데이터의 상호 혼합.
- 부적절한 유형 처리.
7. PHP 사이트 간 스크립팅
XSS는 SQL 주입 후 해킹된 사용자 정의 PHP 사이트의 또 다른 일반적으로 발견되는 원인입니다. 이 두 가지 공격 모두 웹에서 널리 퍼져 있어 매년 OWASP 상위 10위 안에 들 정도입니다. XSS는 사용자 입력 삭제가 부족하기 때문에 발생하기도 합니다. PHP 사이트와 일반적으로 XSS 공격은 주로 세 가지 유형으로 나뉩니다.
- 저장된 XSS: 이러한 종류의 XSS는 웹 관리자가 특정 링크를 클릭한 다음 쿠키를 훔치는 악성 스크립트를 로드하는 데 의존합니다.
- 반사된 XSS: 이것은 꽤 심각한 XSS이며 일반적으로 포럼, 토론 등이 있는 PHP 사이트에서 찾을 수 있습니다. 이러한 유형의 XSS의 악성 코드는 서버에 저장되고 사용자가 해당 PHP 페이지를 방문할 때마다 실행됩니다.
- DOM 기반 XSS: 이러한 종류의 XSS는 위에 제공된 두 가지 중 하나일 수 있습니다. 그러나 이러한 유형의 XSS를 감지하는 것은 매우 어렵고 코드 감사 후에도 벗어날 수 있습니다.
XSS에 취약한 사이트는 일반적으로 PHP 웹사이트 리디렉션 해킹 또는 관리자 쿠키를 훔치는 대상이 됩니다.
8. PHP 사이트 간 요청 위조
CSRF 공격은 PHP 사이트 사용자가 원치 않는 작업을 수행하도록 속이기 위한 것입니다. 사용자 정의 PHP 사이트가 가입을 허용하는 경우 CSRF는 사람들이 임의의 계정을 삭제하거나 다른 작업을 수행하도록 허용할 수 있습니다. 작업의 의미는 공격자가 직접 볼 수 없지만 CSRF는 PHP 사이트의 사용자를 삭제하여 사이트 트래픽을 줄일 수 있습니다.
9. PHP 로컬 파일 포함
파일 포함 취약점은 공격자가 루트 'www 외부의 파일에 액세스할 수 있을 때 발생합니다. ' 디렉토리. 이 취약점의 주요 원인은 파일 이름을 매개변수로 사용하는 잘못 코딩된 스크립트입니다. 이 취약점을 통해 공격자는 사용자 지정 PHP 사이트의 민감한 구성 및 암호 파일을 읽을 수 있습니다. 이 파일에서 얻은 정보는 공격자가 관리자 권한으로 로그인하는 데 사용할 수 있으므로 PHP 웹사이트가 해킹될 수 있습니다.
PHP의 제로데이 결함
10. 버그가 있는 플러그인 또는 테마
PHP의 잘못 코딩된 플러그인이나 테마는 서버에 바로 악용되기를 기다리고 있는 취약점입니다. 공격자가 PHP 사이트에 대한 대규모 공격을 수행하기 위해 버그가 있는 플러그인을 특별히 표적으로 삼은 경우가 있었습니다. PHP 웹사이트가 해킹된 경우 잘못 코딩된 플러그인 또는 테마일 가능성이 높습니다.
11. 손상된 PHP 패키지
PHP 라이브러리와 패키지가 취약할 가능성도 있습니다. 다른 언어에서도 마찬가지입니다. 최근 PHP PEAR 패키지 관리자가 공격자에 의해 손상되었습니다. 공격자는 순진한 사용자가 다운로드한 주입된 코드로 원본을 대체했습니다. 그런 다음 이 패키지는 PHP 프로그래밍 언어로 작성된 무료 라이브러리를 검색하고 다운로드하기 위해 사이트에서 사용되었습니다. 이러한 경우는 드물지만 제로 데이 결함으로 인해 사용자 정의 PHP 웹 사이트가 해킹될 가능성을 완전히 무시할 수는 없습니다.
사회 공학 공격
12. 피싱
사용자 정의 PHP 사이트의 관리자가 최근에 나이지리아 왕자로부터 메일을 받았습니까? 이와 같은 공격은 웹 관리자를 속여 PHP 웹사이트의 민감한 정보를 제공하여 PHP 웹사이트를 해킹하도록 설계되었습니다. 따라서 피싱 필터 이메일로부터 PHP 사이트 도메인으로 보안을 유지하십시오!
13. 테일게이팅
테일게이팅은 피싱 공격의 또 다른 변종일 뿐입니다. 이 공격에서 공격자는 먼저 낮은 수준의 사용자 계정을 손상시킨 다음 이를 사용하여 권한을 상승시킵니다. 테일게이팅은 우리 연구원의 사례 연구 중 하나에서 확인되었으며 일반적으로 탐지를 회피하는 데 사용됩니다. 테일게이팅의 결과는 정보 도용에서 PHP 사이트 해킹에 이르기까지 다양합니다.
사용자 정의 PHP 웹사이트 해킹됨:사이트 보안
올바른 권한 설정
PHP에는 파일 권한을 확인하는 다음 세 가지 기능이 있습니다.
- 읽을 수 있는(): 이 함수는 사용자가 PHP 파일을 읽을 수 있는 경우 true의 부울 값을 반환합니다.
- 쓰기 가능(): 이 함수는 사용자가 PHP 파일에 쓸 수 있는 경우 true의 부울 값을 반환합니다.
- is_executable(): 이 함수는 사용자가 PHP 파일을 실행할 수 있는 경우 true의 부울 값을 반환합니다.
마찬가지로 PHP의 chmod() 함수를 사용하여 파일 권한을 편집할 수 있습니다. 권한과 함께 파일 이름을 입력하기만 하면 됩니다. 즉, "chmod($RandomFile, 0644);". 아래 이미지에는 파일 권한의 전체 목록과 그 역할이 나와 있습니다. 또한, 입력이 8진인 PHP 인터프리터를 지정하려면 파일 권한 앞에 '0'을 추가해야 합니다.
보안 암호 설정
사용자 정의 PHP 사이트에 대한 비밀번호가 안전한지 확인하십시오. 숫자, 알파벳, 기호를 잘 조합하세요. 또한 비밀번호를 설정하기 전에 Rockyou.txt와 같은 인기 있는 비밀번호 사전을 살펴보고 설정 중인 비밀번호가 없는지 확인하는 것이 예방 조치입니다. Linux 사용자의 경우 Grep 명령은 이러한 대용량 파일을 검색하는 데 유용할 수 있습니다. grep -i '*YourNewpass*' rockyou.txt를 검색하기만 하면 됩니다. 또한 새 비밀번호를 만드는 번거로움을 피하기 위해 다른 온라인 도구를 사용하여 안전하고 긴 임의의 비밀번호를 얻을 수도 있습니다.
디렉토리 인덱싱 비활성화
특정 디렉토리에서 인덱싱을 비활성화하려면 .htaccess 파일에 다음 코드를 추가합니다(.htaccess가 없는 경우 새로 생성).
옵션 -색인
보안 호스팅 사용
일반적으로 호스팅 서비스를 찾는 동안 Astra Security가 통합 호스팅 파트너와 함께하는 것처럼 방화벽 또는 보안 솔루션을 제공하는지 확인하십시오. 또한 동일한 서버에서 실행되는 다른 사이트와 귀하의 사이트를 분리하기 위해 서브넷을 사용하십시오.
PHP 코드 감사
사용자 정의 PHP 사이트가 일단 만들어지면 처음부터 다른 사이트를 구축하는 것은 경제적으로 불가능합니다. 따라서 코드 감사는 공격자가 하기 전에 PHP 웹사이트의 취약점을 포착하는 가장 좋은 방법입니다. Astra Security에는 사이트 보안을 감사하고 침투할 수 있는 훌륭한 해커 커뮤니티가 있습니다.