PHPunit 원격코드: eval-stdin.php 취약점

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

■ PHPunit 원격코드 – eval-stdin.php 취약점 공격

PHPunit 원격코드


‘PHPunit 원격코드’ 공격으로 리눅스 서버 load average가 기하 급수적으로(10 이상을 넘어 20까지도 올라가 있는 상태를 확인함.) 올라 갔다.

‘PHPunit’  : 프로그래밍 언어를 위한 유닛 테스트 프레임워크 / Sebastian Bergmann에서 개발함.

Sebastian Bergmann 에서 제공하는 펌웨어 설치


 

uknew.co 138.199.14.143 - - [25/Jan/2021:03:18:16 +0900] "GET //vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1" 200 500 "-" "python-requests/2.24.0"

 
1초 마다 2~3 개의 로그가 계속 로드되면서 서버 과부하를 일으킴.

□ PHPunit 원격코드 – eval-stdin.php  취약점 원인

확인된 취약점은 ‘eval-stdin.php’ 의 페이지 요청이 되면서 제대로 된 인증이 존재하지 않아 발생하는 것임.

□ eval-stdin.php 취약점 해결

PHPunit9를 사용하기 위해 다운로드 후 실행 가능하도록 설정. phpunit 지원 페이지에서 서버의 php 버전에 맞는 PHPunit 을 다운로드 받아 설치해야 함.
일부 접속은 막는 것을 확인했지만 전체를 막지는 못함. 이럴 때 서버의 기본 URL을 빈 칸으로 리턴하도록 설정하여 공격 방어가 가능함. 아이피 리턴 또는 메인 도메인 주소 등으로 리턴하는걸 추천함. 개인 서버일 경우. 퍼블릭 IP로 들어온다면 리턴 설정이 가능하지만.. 외부 IP면 방화벽 차단을 하고, 공용서버의 경우 일일이 도메인마다 설정이 어려울 수도 있다. 이렇게 해야 들어오는 공격을 막을 수 있음. 도메인보다는 IP 위주로 ServerName 값을 설정하는 걸 권장함.
이 글에 올린 내용과 서버에서의 해결이 어렵다면 개발자의 영역임.

구글 크롬 노트북(PC) google-chrome-notebook

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

Similar Posts

  • 리눅스 퍼미션(4,2,1)과 소유권 | chmod, chown, umask 명령어 | 스티키 비트

    리눅스 퍼미션(Permission)은 권한(&허가)을 의미합니다. 유닉스 계열 운영 체제들은 MS-DOS 계열의 운영 체제들은 멀티 테스킹 시스템이 아니며 멀티 유저 시스템 역시 아닙니다. 보통 컴퓨터는 하나의 키보드와 모니터를 가지고 한 명이 사용하지만 멀티 유저 시스템인 리눅스는 한 명 이상이 사용할 수 있다는 것을 의미합니다. 유닉스 계열의 멀티 유저 시스템은 운영 체제 설계 초기부터 깊게 내장된…

  • [Ubuntu] 우분투 설치(22.04.5) | 우분투 root 초기 비밀번호 생성

    오라클의 VitualBox로 우분투 설치를 진행해 보겠습니다. 먼저 IOS 파일을 다운로드 받기 위해 구글에서 [우분투 서버 다운로드]를 검색해서 설치하고자 하는 우분투 버전을 확인 후 다운로드를 진행합니다. 저의 경우는 22.04.5 버전을 설치하기로 했기에 예전 버전을 찾은 후 진행하였습니다. ✅ VitualBox 우분투 ISO 설정 다운로드가 완료 되었다면, VitualBox에서 [새로 만들기] 버튼을 누릅니다. 가상 머신 이름 입력…

  • 로그 파일 삭제 쉘 스크립트 만들기(날짜 20xx, 용량)

    httpd.conf 파일에 access_log 및 error_log를 설정 했을 때 logrotate 설정이 아닌 경우 로그 파일 삭제 쉘 스크립트가 필요할 때가 있습니다. ✅ 로그 파일 삭제 쉘 스크립트 ✅ crontab 설정하기 크론탭 설정을 진행 해 줍니다. 리눅스 스크립트는 리눅스 운영 체제에서 해석하는 스크립트 언어로 작성된 명령 또는 명령 집합입니다. 리눅스 시스템에서 반복 작업을 자동화 할 때…

  • 리눅스 CPU/RAM/디스크 및 OS 정보 확인하기

    리눅스에서 사용 중인 서버의 정보 확인이 필요한 경우가 있습니다. 간단하게 리눅스 CPU/RAM/디스크 정보를 확인할 수 있는 방법을 명령어를 이용해서 알아 보겠습니다. ✅ 리눅스 CPU 정보 확인 명령어 1. cat /proc/cpuinfo 2. CPU 전체 개수와 물리 CPU 갯수 확인하기 3. 하이퍼 스레딩(Hyper Threading) 적용 확인 CPU 코어 개수 대비 siblings 값이 2배로 표시될 경우…

  • 리눅스 killall 명령어: 설치, 사용 방법과 옵션

    리눅스 killall 명령어는 특정 프로세스를 한번에 종료 시키는 명령어입니다. kill과 killall은 단순 종료가 아닌 프로세스에 지정한 시그널(Signal)을 보내는 명령어로 시그널에서 액션이 종료일 때 프로세스가 종료됩니다. ✅ 리눅스 killall 명령어 설치 대부분의 유닉스 시스템에서는 killall 명령어가 설치되어 있지만 설치되어 있지 않은 경우 psmisc 패키지를 설치해서 사용할 수 있습니다. ✅ killall 명령어 사용 방법 보통…

  • 리눅스 Load Average란?

    리눅스에서 top 명령어 또는 uptime 명령어로 1분, 5분, 15분의 시스템의 평균 로드 지표인 Load Average를 통해 평균 부하 정도를 알 수 있습니다. Load Average는 CPU에 어느 정도의 일이 쌓이는지를 나타내는 것으로 정의 내릴 수 있습니다. ✅ 리눅스 Load Average의 이해 세 개의 숫자 (2.03, 20.17, 15.09)는 시스템에서의 1분,5분,15분 동안의 평균 부하를 나타 냅니다….

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 0   +   5   =