공격설명
HTTP 요청 데이터를 검사하여 웹 어플리케이션의 취약점 공격 시도가 탐지되었습니다.
웹 어플리케이션에서 쿼리가 전송되는 곳에 시스템 명령어를 허용하여 삽입되는 공격 기법으로 취약한 어플리케이션의
경우 서버의 시스템 명령어가 웹상에서 실행될 수 있습니다.
공격자는 취약한 어플리케이션을 공격 대상으로 하여 임의의 명령어를 시스템상에 입력하여 결과값을 얻을 수 있습니다.
공격 성공할 경우 서버에 연계된 악의적인 공격을 시도할 가능성이 있습니다.
공격구문
POST /adminlnso/login.php HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Content-Length: 28
<?php echo md5("123456"); ?>
요청 구조 분석
POST 요청: 이 요청은 login.php 파일로 POST 요청을 보내고 있으며, Content-Length는 28 byte이다.
- 본문 내용: 본문에는 PHP 코드가 포함되어 있다.
- <?php echo md5("123456"); ?>
주요 취약점
- PHP 코드 삽입 시도:
요청의 본문에 PHP 코드를 삽입하려는 시도가 있습니다. 웹 서버가 이 요청을 받았을 때, 이 코드를 그대로 실행할 수 있다면 이는 원격 코드 실행(RCE) 취약점으로 이어질 수 있습니다. 그러나 대부분의 경우, PHP 코드는 서버 측에서 실행되며, 클라이언트(사용자)에서 보내는 POST 요청에 포함된 PHP 코드는 단순한 문자열로 처리됩니다. 하지만 만약 서버가 잘못 설정되어 있거나, 입력된 PHP 코드를 실행하도록 구성된 경우, 이는 매우 심각한 보안 위협이 됩니다.
- 웹 애플리케이션 보안 구성 문제:
이와 같은 입력을 제대로 처리하지 않고 서버에서 실행하게 되는 경우, 시스템 전체가 공격자의 제어 하에 놓일 수 있다.
정상적인 서버라면 PHP 코드는 클라이언트 측에서 전달되는 데이터로 처리되지 않고 무시되거나, 단순히 텍스트로
저장되어야 한다.
3. MD5 해싱:
md5("123456")는 MD5 해시 값을 생성하는 PHP 코드입니다. 앞서 설명했듯이, MD5는 더 이상 보안 목적으로
사용하기에 적합하지 않다. 만약 이 코드가 의도적으로 서버에서 실행되어 해시 값을 생성하고, 그 결과를 기반으로
인증 등을 수행하려 한다면, 이는 보안적으로 매우 취약하다.
대응 방법
- 서버 구성 확인: 서버가 외부로부터 전달된 데이터(특히 PHP 코드)를 실행하지 않도록 확실히 구성되어 있는지 확인해야 한다.
- 입력 검증 및 필터링: 모든 사용자 입력을 철저히 검증하고, 예상치 못한 코드나 명령이 서버에 전달되지 않도록 필터링해야 한다.
- PHP 코드 실행 방지: 서버에서 코드 실행을 차단하고, 서버 측에서 실행되는 모든 코드는 신뢰할 수 있는 출처에서만 제공되도록 해야 한다.
- 보안 점검: 웹 애플리케이션에 대한 정기적인 보안 점검을 통해 이러한 잠재적 취약점을 미리 식별하고 해결하는 것이 중요하다.
'보안관제 이벤트 분석' 카테고리의 다른 글
[보안관제] 정수타입 SQL 인증우회 공격 탐지 (0) | 2024.09.12 |
---|---|
[보안관제] 코드 인젝션 공격 탐지(PHP-CGI CVE-2024-4577 Argument Injection) (0) | 2024.09.06 |
[보안관제] 비정상 HTTP 요청 탐지(Invalid HTTP) (0) | 2024.08.30 |
[보안관제] Code Injection (0) | 2024.08.30 |
[보안관제] 원격코드실행 취약점 공격 시도 (0) | 2024.08.30 |