Computer >> 컴퓨터 >  >> 프로그램 작성 >> HTML

파일 포함 및 임의 코드 실행이란 무엇입니까?

파일 포함 및 임의 코드 실행: 이달 초 WordPress에 구축된 비행기 티켓 웹사이트가 해킹되어 수십만 방문자의 개인 데이터가 노출되었습니다. 해커가 해킹하는 이유에 대한 이전 게시물에서 우리는 데이터 도용, 스팸 이메일 전송을 포함하여 해커가 해킹하는 모든 이유에 대해 논의했습니다. 심지어 블랙햇 SEO 기술을 사용하여 자체 제품의 순위를 매길 수도 있습니다. (권장 읽기 – 제약 해킹)

해커가 웹사이트를 해킹하는 방법을 배우는 것은 이를 방지하는 열쇠이므로 이전 기사에서 WordPress 웹사이트에서 이루어지는 가장 일반적인 해킹 공격을 나열했습니다.

일반적인 해킹 공격에 대해 이야기할 때 무차별 대입 공격에 대해 생각할 가능성이 매우 높습니다. 그러나 파일 포함 및 임의 코드 실행도 워드프레스 웹사이트에서 가장 흔한 해킹 공격 중 하나라는 것을 알고 계셨습니까? 이 게시물에서는 이러한 공격을 자세히 이해하기 위해 이러한 공격에 대해 조금 더 자세히 살펴보겠습니다.

이러한 공격이 작동하는 방식을 이해하려면 먼저 PHP 파일이 관련되어 있다는 사실을 알아야 합니다. 왜 그런지 궁금하실 텐데요? File Inclusion 공격과 Arbitrary Code Execution 공격 모두 PHP 파일을 사용하기 때문입니다.

그러나 PHP 파일이란 무엇입니까? 주방 수납장을 생각해보세요. 캐비닛 내부에는 설탕, 소금, 향신료, 기구 등과 같은 여러 품목이 있습니다. 이러한 품목 각각은 주방에서 사용하는 용도가 있습니다. PHP 파일은 캐비닛이고 파일 내부의 코드는 해커가 원하는 특정 기능을 실행할 수 있는 항목입니다. 이것이 해커가 JPEG 또는 PDF 파일과 같은 다른 파일보다 PHP 파일 업로드를 선호하는 이유입니다. JPEG 및 PDF 파일은 실행할 수 없습니다. 즉, 해커는 이러한 파일을 사용하여 기능을 실행할 수 없습니다. 읽기(보기)만 가능합니다. 해킹된 사이트를 변경하는 데 사용할 수 없습니다.

웹사이트 서버에 PHP 파일을 업로드한 해커는 이 파일을 사용하여 웹사이트에서 무엇이든 할 수 있습니다. 이것이 PHP 파일을 사용하여 파일 포함 및 임의 코드 실행 공격을 실행하는 이유입니다.

파일 포함 공격이란 무엇입니까?

이와 같은 복잡한 웹사이트 공격을 이해하는 가장 좋은 방법은 실제 시나리오를 예시하는 것입니다. 귀하가 소속 기관의 웹사이트를 운영하고 있으며 사이트 이름이 college.com이라고 가정해 보겠습니다. 몇몇 학생들이 최근 대학 행사에서 찍은 사진을 게시할 수 있도록 사이트에 액세스하도록 허용합니다. 누군가가 귀하가 부여한 액세스 권한을 오용하고 웹사이트에 악성 PHP 파일(hack.php라는 이름)을 업로드합니다. 목표는 대학 웹사이트를 제어하는 ​​것입니다. 학생이 악성 PHP 파일을 업로드하면 기본적으로 업로드 폴더에 저장됩니다. 아는 사람 워드프레스의 기본 구조 업로드된 파일이 어디로 가는지 알고 있습니다.

파일 포함 및 임의 코드 실행이란 무엇입니까?
테마 또는 플러그인은 업로드 폴더에 저장됩니다. WordPress의 구조를 아는 사람은 Upload 폴더가 어디에 있는지 알고 있습니다. 모르시는 분들을 위해 Upload 폴더가 있는 곳입니다. 웹 호스팅 cPanel에서 파일 관리자를 연 다음 Public_html> wp-content> 업로드로 이동합니다.

파일은 해커가 원격으로 파일과 상호 작용할 수 있도록 하는 문과 같은 역할을 합니다. 해커는 여전히 사이트를 제어할 수 없으며 통신 창만 있습니다. 이해를 돕기 위해 A라는 사람이 허락되지 않는 나라에 가고 싶어한다고 상상해 보세요. 그래서 그는 에이전트 B를 보냅니다. A라는 해커, country는 대학 웹사이트, B는 hack.php 파일입니다.

대학 웹사이트에 업로드된 PHP 파일 —-> 파일이 웹사이트 서버에 저장됨

B라는 사람은 몇 가지 일에 대해서만 훈련을 받았고 그만큼만 할 수 있습니다. 따라서 사람 A는 다음에 무엇을 해야 하는지 지시해야 합니다. 같은 맥락에서 PHP 파일은 통신 창을 만든 다음 해커의 추가 명령을 기다립니다.

웹사이트에 더 많은 파일을 업로드할 수 있는 방식으로 hack.php가 생성되었다고 가정해 봅시다. 해커는 웹사이트 서버에 이미 있는 hack.php를 사용하여 업로드할 파일(control.php라는 이름)을 만듭니다. 새 파일인 control.php를 사용하면 해커가 웹사이트에 대한 전체 액세스 권한을 가질 수 있습니다. 그는 hack.php 파일에서 제공하는 창을 사용하여 control.php 파일을 사이트에 업로드합니다. 이미 웹사이트 서버에 있는 파일(hack.php)을 사용하여 control.php 파일을 업로드하는 과정을 Local File Inclusion이라고 합니다. .

로컬 파일 실행의 좋은 예는 Easy Forms for MailChimp WordPress 플러그인(v 6.0.5.5)에서 관찰된 취약점입니다. MailChimp 플러그인을 사용하여 웹사이트 소유자는 WordPress 사이트에 다양한 유형의 양식을 추가할 수 있습니다. 해커는 취약점으로 인해 MailChimp 양식을 사용하여 웹사이트 서버에 PHP 파일을 업로드할 수 있습니다. 파일이 웹사이트 서버에 저장되면 해커는 그들과 통신하고 코드를 실행하여 서버를 제어하거나 다양한 방식으로 사이트를 손상시킬 수 있습니다.

시나리오는 다음과 같습니다. 대학 웹사이트에 방화벽이 설치되어 있어 해커가 control.php를 업로드할 수 없습니다. 그는 다른 별도의 파일을 업로드할 수 없지만 파일을 '포함'할 수 있습니다. 그것은 그가 대학 웹사이트 서버에 이미 존재하는 hack.php 파일 안에 파일을 삽입할 수 있다는 것을 의미합니다. 해커가 control.php 파일을 업로드할 수 있다면 웹사이트 서버는 파일을 읽고 해커가 원하는 모든 작업을 수행할 수 있도록 내부 코드를 실행합니다. 그러나 그는 파일을 업로드할 수 없기 때문에 서버가 control.php 파일을 읽게 하는 다른 방법을 찾아야 합니다. 해커가 만든 경로는 온라인에서 사용할 수 있으며 대학 웹 사이트의 서버에서 읽을 수 있어야 합니다. 따라서 해커는 경로를 만들어 온라인에서 사용할 수 있도록 하여 대학 웹사이트 서버에서 읽을 수 있도록 합니다. 그런 다음 서버는 경로에서 획득한 코드를 실행하기 시작하고 해커가 사이트를 완전히 제어할 수 있는 방식으로 코드가 작성되었으므로 이제 해킹이 대학 웹사이트를 제어합니다. 서버가 원격 파일을 읽게 하는 이러한 과정을 원격 파일 포함이라고 합니다.

파일 포함 및 임의 코드 실행이란 무엇입니까?
TimThumb 공격이 어떻게 발생했는지 보여주는 예시

TimThumb 취약점 사례는 원격 파일 포함의 인기 있는 예입니다. TimThumb은 WordPress 사이트에서 이미지를 쉽게 편집할 수 있는 WordPress 플러그인입니다. imgur.com 및 flickr.com과 같은 이미지 공유 웹사이트에서 가져온 이미지를 누구나 사용할 수 있게 되었습니다. TimThumb은 imgur를 유효한 사이트(또는 화이트리스트)로 인식합니다. 이 기준을 이용하는 해커는 https://www.imgur.com.badsite.com과 같은 유효한 사이트를 언급하는 URL이 있는 파일을 생성합니다. 위에서 언급한 것과 같은 URL이 포함된 악성 파일을 업로드하면 플러그인이 해당 파일이 유효한 웹사이트에서 온 것으로 믿게 만듭니다. 그리고 웹사이트의 서버에 악성 파일을 업로드할 수 있습니다. 플러그인의 취약점을 이용하여 웹사이트 서버 외부에서 악성 파일을 포함시키는 이 모든 과정이 원격 파일 포함입니다. 악성 PHP 파일이 웹사이트 서버에 저장된 후 해커는 이 파일과 통신하여 원하는 작업을 실행할 수 있습니다.

임의 코드 실행 공격이란 무엇입니까?

이제 원격 및 로컬 파일 포함이 무엇인지 알았으므로 임의 코드 실행이 무엇인지 이해하고 시도해 보겠습니다. 파일 포함과 임의 코드 포함은 서로 관련되어 있습니다. 파일 포함의 경우 해커의 목표는 웹 사이트에서 임의의 코드를 실행하는 것입니다. 해커가 대학 웹사이트에 hack.php를 업로드한 다음 hack.php의 도움으로 control.php를 업로드한 Local File Inclusion의 예로 돌아가 보겠습니다. 임의의 코드 실행이라는 문구는 해킹된 웹사이트에서 해커가 원하는 명령을 실행할 수 있는 능력에 대한 설명입니다. PHP 파일(hack.php 및 control.php)이 웹사이트 서버에 올라오면 해커는 원하는 코드를 실행할 수 있습니다. 업로드한 파일에서 코드를 실행하는 이 프로세스를 임의 코드 실행이라고 합니다.
해킹은 복잡합니다. 이번 포스트에서는 간단하게 설명하려고 노력했지만 이해가 되지 않는 부분이 있다면 독자 여러분의 글을 부탁드립니다. 다음 게시물에서는 XSS(Cross-Site Scripting)라는 WordPress 사이트에 대한 또 다른 일반적인 해킹 공격에 대해 논의합니다. 구경하다.