PHP는 오늘날 거의 모든 인기 있는 CMS의 중추입니다. 단순성과 라이선스가 필요 없는 특성 덕분에 PHP는 동적 웹사이트 개발에 선호되는 선택입니다. 그러나 열악한 코딩 표준으로 인해 PHP 사이트를 손상시키는 것이 상대적으로 쉬워졌습니다. 인터넷은 사용자가 해킹된 사용자 정의 PHP 웹 사이트 또는 해킹을 리디렉션하는 PHP 웹 사이트에 대해 불평하는 도움말 스레드로 가득합니다. 이로 인해 PHP 자체에 대한 많은 부정적인 홍보가 이루어졌으며, 이에 대한 책임은 어디에도 없습니다.
그렇다면 PHP가 책임이 없다면 PHP 웹 사이트 리디렉션 해킹의 원인은 무엇입니까? 이 문서에서는 PHP 웹사이트를 손상시키는 보안 취약점과 이를 방지하는 방법에 대해 설명합니다.
해킹된 맞춤 PHP 웹사이트:예
대부분의 사이트 소유자는 보안 측면이 아닌 개발 부분에만 집중합니다. 따라서 PHP로 구축된 웹사이트가 해킹을 당하면 개발자에게 개발비만 지급해 사이트 소유자가 갈 곳이 없다. 문제가 있는 사용자는 온라인 포럼에서 도움을 찾고 이와 같은 기사를 읽을 수 있습니다. 다음은 그러한 예입니다.
사용자 정의 PHP 웹사이트 해킹됨:증상
- 피싱 페이지가 PHP 사이트에 나타나 사용자를 속여 민감한 정보를 입력하도록 합니다.
- 사용자가 사이트의 특정 링크를 클릭하여 다른 도메인으로 이동합니다. 잘못된 구성이나 PHP 웹사이트 리디렉션 해킹 때문일 수 있습니다.
- Adblockers는 암호화폐 채굴을 위해 사이트의 특정 요소에 태그를 지정하고 차단합니다.
- 알 수 없는 PHP 파일 핸들러가 사이트에 나타나고 PHP 사이트에 악성 광고가 표시됩니다.
- PHP 파일이 알 수 없는 코드로 수정되어 낚시 사이트로 리디렉션되거나 백링크가 생성되었습니다.
- 사용자 정의 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 페이지를 방문할 때마다 실행됩니다.
- XSS 기반 DOM: 이 유형의 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 웹사이트 해킹됨:사이트 보안
올바른 권한 설정
PHP에는 파일 권한을 확인하는 다음 세 가지 기능이 있습니다.
- 읽을 수 있는(): 이 함수는 사용자가 PHP 파일을 읽을 수 있는 권한이 있으면 부울 true를 반환합니다.
- 쓰기 가능(): 이 함수는 사용자가 PHP 파일에 쓸 수 있는 경우 부울 true를 반환합니다.
- is_executable(): 이 함수는 사용자가 PHP 파일을 실행할 권한이 있는 경우 부울 true를 반환합니다.
마찬가지로 PHP의 chmod() 함수를 사용하여 파일 권한을 변경할 수 있습니다. 권한이 있는 파일 이름을 입력하기만 하면 됩니다. 즉, "chmod($RandomFile,0644);". 아래 이미지에서 파일 권한의 전체 목록과 해당 권한이 수행하는 작업을 찾을 수 있습니다. 또한 PHP 인터프리터에 입력이 8진수임을 알리기 위해 파일 권한 앞에 "0"을 추가해야 합니다.
보안 비밀번호 설정
사용자 정의 PHP 사이트의 비밀번호가 안전한지 확인하십시오. 숫자, 알파벳 및 기호를 잘 조합하세요. 또한 비밀번호를 설정하기 전에 Rockyou.txt와 같은 인기 있는 비밀번호 사전을 검색하여 설정한 비밀번호가 없는지 확인하는 것이 좋습니다. Linux 사용자의 경우 Grep 명령은 이러한 대용량 파일을 검색하는 데 유용할 수 있습니다. grep -i '*YourNewpass*' rockyou.txt를 검색하기만 하면 됩니다. 또한 새 암호를 생성하지 않아도 되도록 다른 온라인 도구를 사용하여 안전하고 긴 임의의 암호를 얻을 수도 있습니다.
디렉토리 인덱싱 비활성화
특정 디렉토리에서 인덱싱을 비활성화하려면 .htaccess 파일에 다음 코드를 추가하십시오(.htaccess가 없는 경우 생성):
옵션 -색인
보안 호스팅 사용
일반적으로 호스팅 서비스를 찾는 동안 통합 호스팅 파트너와 함께 Astra와 같은 방화벽 또는 보안 솔루션을 제공하는지 확인하십시오. 또한 서브넷이 동일한 서버에서 실행되는 다른 사이트로부터 귀하의 사이트를 격리하는지 확인하십시오.
PHP 코드 감사
사용자 정의 PHP 사이트가 생성되면 처음부터 다른 사이트를 구축하는 것은 경제적으로 불가능합니다. 따라서 코드 감사는 공격자보다 먼저 PHP 웹사이트 취약점을 탐지하는 가장 좋은 방법입니다. Astra에는 사이트의 보안을 감사하고 테스트하는 대규모 해커 커뮤니티가 있습니다. 코드 감사뿐만 아니라 Astra는 PHP 웹사이트가 해킹당했을 때 정리하는 데도 도움이 됩니다.
지금 Astra를 데모하세요!