
코더들이 보안을 정복하다: 셰어 앤 런 시리즈 - XML 인젝션
XML 인젝션 공격은 해커가 XML 데이터베이스를 호스팅하는 시스템을 손상시키기 위해 고안한 아주 작은 익스플로잇입니다.여기에는 의약품부터 영화에 이르기까지 모든 것에 대한 정보를 자세하게 저장하는 기존 데이터베이스를 생각할 때 떠오르는 것들이 포함됩니다.일부 XML 데이터스토어는 인증된 사용자를 확인하는 용도로도 사용되므로 새 XML 코드를 해당 데이터스토어에 삽입하면 해당 시점부터 호스트 시스템에서 받아들일 새 사용자가 생성될 수 있습니다.
공격자가 XML 주입을 구현하려면 XML 데이터베이스에 의존하거나 적어도 XML 데이터베이스에 액세스하는 애플리케이션이 있어야 합니다.이러한 상황이 발생하고 사용자 입력이 제대로 확인되지 않을 때마다 데이터스토어에 새 XML 코드를 추가할 수 있습니다.공격자의 기술에 따라 새 XML 코드를 추가하면 상당한 피해를 입히거나 전체 데이터베이스에 액세스할 수 있게 될 수도 있습니다.
계속 읽다 보면 XML 인젝션이 앞에서 다룬 SQL 인젝션 공격과 밀접하게 관련되어 있다는 것을 알게 될 것입니다.이는 서로 다른 유형의 데이터베이스를 대상으로 하지만 매우 유사하기 때문입니다.다행스럽게도 수정 사항도 비슷합니다.한 가지 유형의 공격을 물리치는 방법을 배우면 다른 유형의 공격을 막기 위해 노력할 때 게임에서 앞서 나갈 수 있습니다.
이 에피소드에서는 다음을 배우게 됩니다.
- XML 인젝션 작동 방식
- 왜 그렇게 위험한가요?
- 어떻게 하면 그들을 완전히 막을 수 있는 방어 시설을 마련할 수 있을까요?
공격자는 어떻게 XML 인젝션을 트리거하나요?
권한 없는 사용자가 XML 코드를 작성하여 기존 XML 데이터베이스에 삽입할 수 있을 때마다 XML 삽입이 성공합니다.이를 위해 필요한 작업은 두 가지뿐입니다. 하나는 XML 데이터베이스를 사용하거나 XML 데이터베이스에 연결하는 응용 프로그램이고, 다른 하나는 공격자가 공격을 시작할 때 사용할 보안되지 않은 데이터 경로입니다.
XML 인젝션은 처리를 위해 서버로 전송되기 전에 사용자 입력이 삭제되거나 다른 방식으로 제한되지 않는 경우 거의 항상 성공합니다.이를 통해 공격자는 코드를 직접 작성하거나 일반 쿼리 문자열 끝에 삽입할 수 있습니다.성공하면 서버가 XML 코드를 실행하도록 속여 레코드를 추가 또는 삭제하거나 전체 데이터베이스를 드러낼 수 있습니다.
해커는 일반 쿼리에 XML 코드를 추가하여 XML 인젝션 공격을 구현합니다.이는 검색 필드부터 로그인 페이지까지 무엇이든 될 수 있습니다.쿠키나 헤더와 같은 항목도 포함될 수 있습니다.
예를 들어, 등록 양식에서 사용자는 사용자 이름 또는 암호 필드 뒤에 다음 코드를 추가할 수 있습니다.
<user></user>
<role>관리자</role>
<username>존_스미스</username> <password>점프783!탱고 @12</password>
이 예에서는 관리자 액세스 권한을 가진 John_Smith라는 새 사용자를 생성합니다.적어도 새 사용자는 적절한 암호 밀도 규칙을 사용하고 있습니다.안타깝게도 이들이 실제로 공격자인 것은 사실입니다.
해커가 XML 인젝션에 성공하기 위해 항상 그런 홈런을 칠 필요는 없습니다.쿼리를 조작하고 서버가 반환하는 다양한 오류 메시지를 기록하면 XML 데이터베이스의 구조를 파악할 수 있습니다.그리고 이 정보는 다른 유형의 공격을 강화하는 데 사용될 수 있습니다.
XML 인젝션이 왜 그렇게 위험한가요?
XML 삽입 공격과 관련된 위험 수준은 대상 XML 데이터베이스에 저장되는 정보 또는 해당 정보가 사용되는 방식에 따라 다릅니다.예를 들어 사용자 인증에 XML 데이터베이스를 사용하는 경우 XML 주입을 통해 공격자는 시스템에 액세스할 수 있습니다.이를 통해 공격자가 대상 네트워크의 관리자가 될 수도 있는데, 이는 매우 위험한 상황입니다.
기존 데이터베이스에 대해 XML 인젝션을 부과하는 경우, 정보가 도난당하거나, 저장소에 잘못된 데이터가 추가되거나, 양호한 데이터를 덮어쓸 위험이 있습니다.XML 코드는 배우기가 그리 어렵지 않으며 일부 명령은 매우 강력하여 전체 정보 필드를 덮어쓰거나 데이터스토어의 콘텐츠를 표시할 수도 있습니다.
일반적으로 데이터베이스에 저장된 정보가 가치를 가지지 않는 한 아무도 데이터베이스를 구축하지 않습니다.해커들은 이 사실을 알고 있기 때문에 종종 해커들을 표적으로 삼습니다.해당 데이터에 직원이나 고객의 개인 정보 등이 포함되어 있는 경우 데이터가 손상되면 평판을 잃거나 재정적 손실, 무거운 벌금 또는 소송으로 이어질 수 있습니다.
XML 인젝션 공격 중지
XML 인젝션은 인젝션의 난이도가 낮고 XML 데이터베이스가 널리 보급되어 있기 때문에 상당히 흔합니다.하지만 이러한 공격은 이미 오래전부터 존재해 왔습니다.따라서 이러한 공격이 실행되지 않도록 하는 몇 가지 강력한 수정 사항이 있습니다.
공격을 차단하는 가장 좋은 방법 중 하나는 사전 컴파일된 XML 쿼리만 사용하도록 애플리케이션을 설계하는 것입니다.이렇게 하면 쿼리 기능이 승인된 활동 하위 집합으로 제한됩니다.사전 컴파일된 쿼리 함수와 일치하지 않는 추가 인수나 명령과 함께 들어오는 모든 항목은 실행되지 않습니다.너무 제한적으로 사용하고 싶지 않다면 파라미터화를 사용할 수도 있습니다.이렇게 하면 사용자 입력이 특정 유형의 쿼리와 데이터로 제한됩니다 (예: 정수만 사용).이러한 매개 변수를 벗어나는 모든 항목은 유효하지 않은 것으로 간주되어 쿼리가 실패하게 됩니다.
사전 컴파일되거나 매개변수화된 쿼리를 사용자 지정 오류 메시지와 함께 사용하는 것도 좋습니다.애플리케이션은 실패한 쿼리에서 설명이 포함된 기본 오류 메시지를 다시 보내는 대신 해당 응답을 가로채서 보다 일반적인 메시지로 대체해야 합니다.이상적으로는 사용자에게 쿼리가 실패한 이유를 알려주고 데이터베이스 자체에 대한 정보는 제공하지 않는 것이 좋습니다.이러한 사용자 지정 메시지를 몇 가지 선택으로 제한하면 해커는 실패한 쿼리를 바탕으로 유용한 정찰 정보를 컴파일할 수 없게 됩니다.
XML 인젝션은 처음 개발되었을 때 큰 성공을 거두었습니다.하지만 이 기술이 얼마나 오래 전이었는지 생각해보면 오늘날에는 더 이상 뚫을 수 없는 방어 수단을 쉽게 구축할 수 있습니다.
XML 인젝션에 대한 추가 정보
자세한 내용은 OWASP를 참조하십시오. 에 글을 쓰다 XML 인젝션.또한 다음을 사용하여 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.


XML 인젝션 공격은 해커가 XML 데이터베이스를 호스팅하는 시스템을 손상시키기 위해 고안한 아주 작은 익스플로잇입니다.여기에는 의약품부터 영화에 이르기까지 모든 것에 대한 정보를 자세하게 저장하는 기존 데이터베이스를 생각할 때 떠오르는 것들이 포함됩니다.
Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Secure Code Warrior está aquí para ayudar a las organizaciones a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura que priorice la ciberseguridad. Ya seas administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudarte a reducir los riesgos asociados al código inseguro en tu organización.
Reserva de demostraciónJaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.


XML 인젝션 공격은 해커가 XML 데이터베이스를 호스팅하는 시스템을 손상시키기 위해 고안한 아주 작은 익스플로잇입니다.여기에는 의약품부터 영화에 이르기까지 모든 것에 대한 정보를 자세하게 저장하는 기존 데이터베이스를 생각할 때 떠오르는 것들이 포함됩니다.일부 XML 데이터스토어는 인증된 사용자를 확인하는 용도로도 사용되므로 새 XML 코드를 해당 데이터스토어에 삽입하면 해당 시점부터 호스트 시스템에서 받아들일 새 사용자가 생성될 수 있습니다.
공격자가 XML 주입을 구현하려면 XML 데이터베이스에 의존하거나 적어도 XML 데이터베이스에 액세스하는 애플리케이션이 있어야 합니다.이러한 상황이 발생하고 사용자 입력이 제대로 확인되지 않을 때마다 데이터스토어에 새 XML 코드를 추가할 수 있습니다.공격자의 기술에 따라 새 XML 코드를 추가하면 상당한 피해를 입히거나 전체 데이터베이스에 액세스할 수 있게 될 수도 있습니다.
계속 읽다 보면 XML 인젝션이 앞에서 다룬 SQL 인젝션 공격과 밀접하게 관련되어 있다는 것을 알게 될 것입니다.이는 서로 다른 유형의 데이터베이스를 대상으로 하지만 매우 유사하기 때문입니다.다행스럽게도 수정 사항도 비슷합니다.한 가지 유형의 공격을 물리치는 방법을 배우면 다른 유형의 공격을 막기 위해 노력할 때 게임에서 앞서 나갈 수 있습니다.
이 에피소드에서는 다음을 배우게 됩니다.
- XML 인젝션 작동 방식
- 왜 그렇게 위험한가요?
- 어떻게 하면 그들을 완전히 막을 수 있는 방어 시설을 마련할 수 있을까요?
공격자는 어떻게 XML 인젝션을 트리거하나요?
권한 없는 사용자가 XML 코드를 작성하여 기존 XML 데이터베이스에 삽입할 수 있을 때마다 XML 삽입이 성공합니다.이를 위해 필요한 작업은 두 가지뿐입니다. 하나는 XML 데이터베이스를 사용하거나 XML 데이터베이스에 연결하는 응용 프로그램이고, 다른 하나는 공격자가 공격을 시작할 때 사용할 보안되지 않은 데이터 경로입니다.
XML 인젝션은 처리를 위해 서버로 전송되기 전에 사용자 입력이 삭제되거나 다른 방식으로 제한되지 않는 경우 거의 항상 성공합니다.이를 통해 공격자는 코드를 직접 작성하거나 일반 쿼리 문자열 끝에 삽입할 수 있습니다.성공하면 서버가 XML 코드를 실행하도록 속여 레코드를 추가 또는 삭제하거나 전체 데이터베이스를 드러낼 수 있습니다.
해커는 일반 쿼리에 XML 코드를 추가하여 XML 인젝션 공격을 구현합니다.이는 검색 필드부터 로그인 페이지까지 무엇이든 될 수 있습니다.쿠키나 헤더와 같은 항목도 포함될 수 있습니다.
예를 들어, 등록 양식에서 사용자는 사용자 이름 또는 암호 필드 뒤에 다음 코드를 추가할 수 있습니다.
<user></user>
<role>관리자</role>
<username>존_스미스</username> <password>점프783!탱고 @12</password>
이 예에서는 관리자 액세스 권한을 가진 John_Smith라는 새 사용자를 생성합니다.적어도 새 사용자는 적절한 암호 밀도 규칙을 사용하고 있습니다.안타깝게도 이들이 실제로 공격자인 것은 사실입니다.
해커가 XML 인젝션에 성공하기 위해 항상 그런 홈런을 칠 필요는 없습니다.쿼리를 조작하고 서버가 반환하는 다양한 오류 메시지를 기록하면 XML 데이터베이스의 구조를 파악할 수 있습니다.그리고 이 정보는 다른 유형의 공격을 강화하는 데 사용될 수 있습니다.
XML 인젝션이 왜 그렇게 위험한가요?
XML 삽입 공격과 관련된 위험 수준은 대상 XML 데이터베이스에 저장되는 정보 또는 해당 정보가 사용되는 방식에 따라 다릅니다.예를 들어 사용자 인증에 XML 데이터베이스를 사용하는 경우 XML 주입을 통해 공격자는 시스템에 액세스할 수 있습니다.이를 통해 공격자가 대상 네트워크의 관리자가 될 수도 있는데, 이는 매우 위험한 상황입니다.
기존 데이터베이스에 대해 XML 인젝션을 부과하는 경우, 정보가 도난당하거나, 저장소에 잘못된 데이터가 추가되거나, 양호한 데이터를 덮어쓸 위험이 있습니다.XML 코드는 배우기가 그리 어렵지 않으며 일부 명령은 매우 강력하여 전체 정보 필드를 덮어쓰거나 데이터스토어의 콘텐츠를 표시할 수도 있습니다.
일반적으로 데이터베이스에 저장된 정보가 가치를 가지지 않는 한 아무도 데이터베이스를 구축하지 않습니다.해커들은 이 사실을 알고 있기 때문에 종종 해커들을 표적으로 삼습니다.해당 데이터에 직원이나 고객의 개인 정보 등이 포함되어 있는 경우 데이터가 손상되면 평판을 잃거나 재정적 손실, 무거운 벌금 또는 소송으로 이어질 수 있습니다.
XML 인젝션 공격 중지
XML 인젝션은 인젝션의 난이도가 낮고 XML 데이터베이스가 널리 보급되어 있기 때문에 상당히 흔합니다.하지만 이러한 공격은 이미 오래전부터 존재해 왔습니다.따라서 이러한 공격이 실행되지 않도록 하는 몇 가지 강력한 수정 사항이 있습니다.
공격을 차단하는 가장 좋은 방법 중 하나는 사전 컴파일된 XML 쿼리만 사용하도록 애플리케이션을 설계하는 것입니다.이렇게 하면 쿼리 기능이 승인된 활동 하위 집합으로 제한됩니다.사전 컴파일된 쿼리 함수와 일치하지 않는 추가 인수나 명령과 함께 들어오는 모든 항목은 실행되지 않습니다.너무 제한적으로 사용하고 싶지 않다면 파라미터화를 사용할 수도 있습니다.이렇게 하면 사용자 입력이 특정 유형의 쿼리와 데이터로 제한됩니다 (예: 정수만 사용).이러한 매개 변수를 벗어나는 모든 항목은 유효하지 않은 것으로 간주되어 쿼리가 실패하게 됩니다.
사전 컴파일되거나 매개변수화된 쿼리를 사용자 지정 오류 메시지와 함께 사용하는 것도 좋습니다.애플리케이션은 실패한 쿼리에서 설명이 포함된 기본 오류 메시지를 다시 보내는 대신 해당 응답을 가로채서 보다 일반적인 메시지로 대체해야 합니다.이상적으로는 사용자에게 쿼리가 실패한 이유를 알려주고 데이터베이스 자체에 대한 정보는 제공하지 않는 것이 좋습니다.이러한 사용자 지정 메시지를 몇 가지 선택으로 제한하면 해커는 실패한 쿼리를 바탕으로 유용한 정찰 정보를 컴파일할 수 없게 됩니다.
XML 인젝션은 처음 개발되었을 때 큰 성공을 거두었습니다.하지만 이 기술이 얼마나 오래 전이었는지 생각해보면 오늘날에는 더 이상 뚫을 수 없는 방어 수단을 쉽게 구축할 수 있습니다.
XML 인젝션에 대한 추가 정보
자세한 내용은 OWASP를 참조하십시오. 에 글을 쓰다 XML 인젝션.또한 다음을 사용하여 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

XML 인젝션 공격은 해커가 XML 데이터베이스를 호스팅하는 시스템을 손상시키기 위해 고안한 아주 작은 익스플로잇입니다.여기에는 의약품부터 영화에 이르기까지 모든 것에 대한 정보를 자세하게 저장하는 기존 데이터베이스를 생각할 때 떠오르는 것들이 포함됩니다.일부 XML 데이터스토어는 인증된 사용자를 확인하는 용도로도 사용되므로 새 XML 코드를 해당 데이터스토어에 삽입하면 해당 시점부터 호스트 시스템에서 받아들일 새 사용자가 생성될 수 있습니다.
공격자가 XML 주입을 구현하려면 XML 데이터베이스에 의존하거나 적어도 XML 데이터베이스에 액세스하는 애플리케이션이 있어야 합니다.이러한 상황이 발생하고 사용자 입력이 제대로 확인되지 않을 때마다 데이터스토어에 새 XML 코드를 추가할 수 있습니다.공격자의 기술에 따라 새 XML 코드를 추가하면 상당한 피해를 입히거나 전체 데이터베이스에 액세스할 수 있게 될 수도 있습니다.
계속 읽다 보면 XML 인젝션이 앞에서 다룬 SQL 인젝션 공격과 밀접하게 관련되어 있다는 것을 알게 될 것입니다.이는 서로 다른 유형의 데이터베이스를 대상으로 하지만 매우 유사하기 때문입니다.다행스럽게도 수정 사항도 비슷합니다.한 가지 유형의 공격을 물리치는 방법을 배우면 다른 유형의 공격을 막기 위해 노력할 때 게임에서 앞서 나갈 수 있습니다.
이 에피소드에서는 다음을 배우게 됩니다.
- XML 인젝션 작동 방식
- 왜 그렇게 위험한가요?
- 어떻게 하면 그들을 완전히 막을 수 있는 방어 시설을 마련할 수 있을까요?
공격자는 어떻게 XML 인젝션을 트리거하나요?
권한 없는 사용자가 XML 코드를 작성하여 기존 XML 데이터베이스에 삽입할 수 있을 때마다 XML 삽입이 성공합니다.이를 위해 필요한 작업은 두 가지뿐입니다. 하나는 XML 데이터베이스를 사용하거나 XML 데이터베이스에 연결하는 응용 프로그램이고, 다른 하나는 공격자가 공격을 시작할 때 사용할 보안되지 않은 데이터 경로입니다.
XML 인젝션은 처리를 위해 서버로 전송되기 전에 사용자 입력이 삭제되거나 다른 방식으로 제한되지 않는 경우 거의 항상 성공합니다.이를 통해 공격자는 코드를 직접 작성하거나 일반 쿼리 문자열 끝에 삽입할 수 있습니다.성공하면 서버가 XML 코드를 실행하도록 속여 레코드를 추가 또는 삭제하거나 전체 데이터베이스를 드러낼 수 있습니다.
해커는 일반 쿼리에 XML 코드를 추가하여 XML 인젝션 공격을 구현합니다.이는 검색 필드부터 로그인 페이지까지 무엇이든 될 수 있습니다.쿠키나 헤더와 같은 항목도 포함될 수 있습니다.
예를 들어, 등록 양식에서 사용자는 사용자 이름 또는 암호 필드 뒤에 다음 코드를 추가할 수 있습니다.
<user></user>
<role>관리자</role>
<username>존_스미스</username> <password>점프783!탱고 @12</password>
이 예에서는 관리자 액세스 권한을 가진 John_Smith라는 새 사용자를 생성합니다.적어도 새 사용자는 적절한 암호 밀도 규칙을 사용하고 있습니다.안타깝게도 이들이 실제로 공격자인 것은 사실입니다.
해커가 XML 인젝션에 성공하기 위해 항상 그런 홈런을 칠 필요는 없습니다.쿼리를 조작하고 서버가 반환하는 다양한 오류 메시지를 기록하면 XML 데이터베이스의 구조를 파악할 수 있습니다.그리고 이 정보는 다른 유형의 공격을 강화하는 데 사용될 수 있습니다.
XML 인젝션이 왜 그렇게 위험한가요?
XML 삽입 공격과 관련된 위험 수준은 대상 XML 데이터베이스에 저장되는 정보 또는 해당 정보가 사용되는 방식에 따라 다릅니다.예를 들어 사용자 인증에 XML 데이터베이스를 사용하는 경우 XML 주입을 통해 공격자는 시스템에 액세스할 수 있습니다.이를 통해 공격자가 대상 네트워크의 관리자가 될 수도 있는데, 이는 매우 위험한 상황입니다.
기존 데이터베이스에 대해 XML 인젝션을 부과하는 경우, 정보가 도난당하거나, 저장소에 잘못된 데이터가 추가되거나, 양호한 데이터를 덮어쓸 위험이 있습니다.XML 코드는 배우기가 그리 어렵지 않으며 일부 명령은 매우 강력하여 전체 정보 필드를 덮어쓰거나 데이터스토어의 콘텐츠를 표시할 수도 있습니다.
일반적으로 데이터베이스에 저장된 정보가 가치를 가지지 않는 한 아무도 데이터베이스를 구축하지 않습니다.해커들은 이 사실을 알고 있기 때문에 종종 해커들을 표적으로 삼습니다.해당 데이터에 직원이나 고객의 개인 정보 등이 포함되어 있는 경우 데이터가 손상되면 평판을 잃거나 재정적 손실, 무거운 벌금 또는 소송으로 이어질 수 있습니다.
XML 인젝션 공격 중지
XML 인젝션은 인젝션의 난이도가 낮고 XML 데이터베이스가 널리 보급되어 있기 때문에 상당히 흔합니다.하지만 이러한 공격은 이미 오래전부터 존재해 왔습니다.따라서 이러한 공격이 실행되지 않도록 하는 몇 가지 강력한 수정 사항이 있습니다.
공격을 차단하는 가장 좋은 방법 중 하나는 사전 컴파일된 XML 쿼리만 사용하도록 애플리케이션을 설계하는 것입니다.이렇게 하면 쿼리 기능이 승인된 활동 하위 집합으로 제한됩니다.사전 컴파일된 쿼리 함수와 일치하지 않는 추가 인수나 명령과 함께 들어오는 모든 항목은 실행되지 않습니다.너무 제한적으로 사용하고 싶지 않다면 파라미터화를 사용할 수도 있습니다.이렇게 하면 사용자 입력이 특정 유형의 쿼리와 데이터로 제한됩니다 (예: 정수만 사용).이러한 매개 변수를 벗어나는 모든 항목은 유효하지 않은 것으로 간주되어 쿼리가 실패하게 됩니다.
사전 컴파일되거나 매개변수화된 쿼리를 사용자 지정 오류 메시지와 함께 사용하는 것도 좋습니다.애플리케이션은 실패한 쿼리에서 설명이 포함된 기본 오류 메시지를 다시 보내는 대신 해당 응답을 가로채서 보다 일반적인 메시지로 대체해야 합니다.이상적으로는 사용자에게 쿼리가 실패한 이유를 알려주고 데이터베이스 자체에 대한 정보는 제공하지 않는 것이 좋습니다.이러한 사용자 지정 메시지를 몇 가지 선택으로 제한하면 해커는 실패한 쿼리를 바탕으로 유용한 정찰 정보를 컴파일할 수 없게 됩니다.
XML 인젝션은 처음 개발되었을 때 큰 성공을 거두었습니다.하지만 이 기술이 얼마나 오래 전이었는지 생각해보면 오늘날에는 더 이상 뚫을 수 없는 방어 수단을 쉽게 구축할 수 있습니다.
XML 인젝션에 대한 추가 정보
자세한 내용은 OWASP를 참조하십시오. 에 글을 쓰다 XML 인젝션.또한 다음을 사용하여 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está aquí para ayudar a las organizaciones a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura que priorice la ciberseguridad. Ya seas administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudarte a reducir los riesgos asociados al código inseguro en tu organización.
Ver informeReserva de demostraciónJaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.
XML 인젝션 공격은 해커가 XML 데이터베이스를 호스팅하는 시스템을 손상시키기 위해 고안한 아주 작은 익스플로잇입니다.여기에는 의약품부터 영화에 이르기까지 모든 것에 대한 정보를 자세하게 저장하는 기존 데이터베이스를 생각할 때 떠오르는 것들이 포함됩니다.일부 XML 데이터스토어는 인증된 사용자를 확인하는 용도로도 사용되므로 새 XML 코드를 해당 데이터스토어에 삽입하면 해당 시점부터 호스트 시스템에서 받아들일 새 사용자가 생성될 수 있습니다.
공격자가 XML 주입을 구현하려면 XML 데이터베이스에 의존하거나 적어도 XML 데이터베이스에 액세스하는 애플리케이션이 있어야 합니다.이러한 상황이 발생하고 사용자 입력이 제대로 확인되지 않을 때마다 데이터스토어에 새 XML 코드를 추가할 수 있습니다.공격자의 기술에 따라 새 XML 코드를 추가하면 상당한 피해를 입히거나 전체 데이터베이스에 액세스할 수 있게 될 수도 있습니다.
계속 읽다 보면 XML 인젝션이 앞에서 다룬 SQL 인젝션 공격과 밀접하게 관련되어 있다는 것을 알게 될 것입니다.이는 서로 다른 유형의 데이터베이스를 대상으로 하지만 매우 유사하기 때문입니다.다행스럽게도 수정 사항도 비슷합니다.한 가지 유형의 공격을 물리치는 방법을 배우면 다른 유형의 공격을 막기 위해 노력할 때 게임에서 앞서 나갈 수 있습니다.
이 에피소드에서는 다음을 배우게 됩니다.
- XML 인젝션 작동 방식
- 왜 그렇게 위험한가요?
- 어떻게 하면 그들을 완전히 막을 수 있는 방어 시설을 마련할 수 있을까요?
공격자는 어떻게 XML 인젝션을 트리거하나요?
권한 없는 사용자가 XML 코드를 작성하여 기존 XML 데이터베이스에 삽입할 수 있을 때마다 XML 삽입이 성공합니다.이를 위해 필요한 작업은 두 가지뿐입니다. 하나는 XML 데이터베이스를 사용하거나 XML 데이터베이스에 연결하는 응용 프로그램이고, 다른 하나는 공격자가 공격을 시작할 때 사용할 보안되지 않은 데이터 경로입니다.
XML 인젝션은 처리를 위해 서버로 전송되기 전에 사용자 입력이 삭제되거나 다른 방식으로 제한되지 않는 경우 거의 항상 성공합니다.이를 통해 공격자는 코드를 직접 작성하거나 일반 쿼리 문자열 끝에 삽입할 수 있습니다.성공하면 서버가 XML 코드를 실행하도록 속여 레코드를 추가 또는 삭제하거나 전체 데이터베이스를 드러낼 수 있습니다.
해커는 일반 쿼리에 XML 코드를 추가하여 XML 인젝션 공격을 구현합니다.이는 검색 필드부터 로그인 페이지까지 무엇이든 될 수 있습니다.쿠키나 헤더와 같은 항목도 포함될 수 있습니다.
예를 들어, 등록 양식에서 사용자는 사용자 이름 또는 암호 필드 뒤에 다음 코드를 추가할 수 있습니다.
<user></user>
<role>관리자</role>
<username>존_스미스</username> <password>점프783!탱고 @12</password>
이 예에서는 관리자 액세스 권한을 가진 John_Smith라는 새 사용자를 생성합니다.적어도 새 사용자는 적절한 암호 밀도 규칙을 사용하고 있습니다.안타깝게도 이들이 실제로 공격자인 것은 사실입니다.
해커가 XML 인젝션에 성공하기 위해 항상 그런 홈런을 칠 필요는 없습니다.쿼리를 조작하고 서버가 반환하는 다양한 오류 메시지를 기록하면 XML 데이터베이스의 구조를 파악할 수 있습니다.그리고 이 정보는 다른 유형의 공격을 강화하는 데 사용될 수 있습니다.
XML 인젝션이 왜 그렇게 위험한가요?
XML 삽입 공격과 관련된 위험 수준은 대상 XML 데이터베이스에 저장되는 정보 또는 해당 정보가 사용되는 방식에 따라 다릅니다.예를 들어 사용자 인증에 XML 데이터베이스를 사용하는 경우 XML 주입을 통해 공격자는 시스템에 액세스할 수 있습니다.이를 통해 공격자가 대상 네트워크의 관리자가 될 수도 있는데, 이는 매우 위험한 상황입니다.
기존 데이터베이스에 대해 XML 인젝션을 부과하는 경우, 정보가 도난당하거나, 저장소에 잘못된 데이터가 추가되거나, 양호한 데이터를 덮어쓸 위험이 있습니다.XML 코드는 배우기가 그리 어렵지 않으며 일부 명령은 매우 강력하여 전체 정보 필드를 덮어쓰거나 데이터스토어의 콘텐츠를 표시할 수도 있습니다.
일반적으로 데이터베이스에 저장된 정보가 가치를 가지지 않는 한 아무도 데이터베이스를 구축하지 않습니다.해커들은 이 사실을 알고 있기 때문에 종종 해커들을 표적으로 삼습니다.해당 데이터에 직원이나 고객의 개인 정보 등이 포함되어 있는 경우 데이터가 손상되면 평판을 잃거나 재정적 손실, 무거운 벌금 또는 소송으로 이어질 수 있습니다.
XML 인젝션 공격 중지
XML 인젝션은 인젝션의 난이도가 낮고 XML 데이터베이스가 널리 보급되어 있기 때문에 상당히 흔합니다.하지만 이러한 공격은 이미 오래전부터 존재해 왔습니다.따라서 이러한 공격이 실행되지 않도록 하는 몇 가지 강력한 수정 사항이 있습니다.
공격을 차단하는 가장 좋은 방법 중 하나는 사전 컴파일된 XML 쿼리만 사용하도록 애플리케이션을 설계하는 것입니다.이렇게 하면 쿼리 기능이 승인된 활동 하위 집합으로 제한됩니다.사전 컴파일된 쿼리 함수와 일치하지 않는 추가 인수나 명령과 함께 들어오는 모든 항목은 실행되지 않습니다.너무 제한적으로 사용하고 싶지 않다면 파라미터화를 사용할 수도 있습니다.이렇게 하면 사용자 입력이 특정 유형의 쿼리와 데이터로 제한됩니다 (예: 정수만 사용).이러한 매개 변수를 벗어나는 모든 항목은 유효하지 않은 것으로 간주되어 쿼리가 실패하게 됩니다.
사전 컴파일되거나 매개변수화된 쿼리를 사용자 지정 오류 메시지와 함께 사용하는 것도 좋습니다.애플리케이션은 실패한 쿼리에서 설명이 포함된 기본 오류 메시지를 다시 보내는 대신 해당 응답을 가로채서 보다 일반적인 메시지로 대체해야 합니다.이상적으로는 사용자에게 쿼리가 실패한 이유를 알려주고 데이터베이스 자체에 대한 정보는 제공하지 않는 것이 좋습니다.이러한 사용자 지정 메시지를 몇 가지 선택으로 제한하면 해커는 실패한 쿼리를 바탕으로 유용한 정찰 정보를 컴파일할 수 없게 됩니다.
XML 인젝션은 처음 개발되었을 때 큰 성공을 거두었습니다.하지만 이 기술이 얼마나 오래 전이었는지 생각해보면 오늘날에는 더 이상 뚫을 수 없는 방어 수단을 쉽게 구축할 수 있습니다.
XML 인젝션에 대한 추가 정보
자세한 내용은 OWASP를 참조하십시오. 에 글을 쓰다 XML 인젝션.또한 다음을 사용하여 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.
Índice
Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Secure Code Warrior está aquí para ayudar a las organizaciones a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura que priorice la ciberseguridad. Ya seas administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudarte a reducir los riesgos asociados al código inseguro en tu organización.
Reserva de demostraciónDescargarRecursos útiles para empezar
Temas y contenidos de la formación sobre códigos de seguridad
El mejor contenido del sector evoluciona constantemente para adaptarse al entorno de desarrollo de software en constante cambio, teniendo en cuenta el papel de los clientes. Se ofrecen temas que abarcan desde la inteligencia artificial hasta la inyección de XQuery, para diversas funciones, desde arquitectos e ingenieros hasta gestores de productos y control de calidad. Eche un vistazo al contenido que ofrece el catálogo por temas y funciones.
La Cámara de Comercio establece el estándar para la seguridad impulsada por desarrolladores a gran escala
Kamer van Koophandel comparte cómo ha integrado la codificación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de Trust Score y una cultura de responsabilidad compartida en materia de seguridad.
Modelado de amenazas con IA: convertir a cada desarrollador en un modelador de amenazas
Saldrá mejor equipado para ayudar a los desarrolladores a combinar ideas y técnicas de modelado de amenazas con las herramientas de IA que ya utilizan para reforzar la seguridad, mejorar la colaboración y crear software más resistente desde el principio.
Recursos útiles para empezar
Cybermon ha vuelto: la misión de IA para derrotar al jefe ahora está disponible bajo demanda.
Cybermon 2025 Bit the Boss ya está disponible en SCW durante todo el año. Implemente tareas de seguridad avanzadas de IA/LLM para impulsar el desarrollo de IA de seguridad a gran escala.
Explicación de la Ley de Resiliencia Cibernética: El significado del diseño de seguridad en el desarrollo de software
Descubra los requisitos y el ámbito de aplicación de la Ley de Resiliencia Cibernética (CRA) de la UE, y cómo el equipo de ingeniería puede prepararse de forma segura mediante el diseño, las prácticas, la prevención de vulnerabilidades y la creación de un entorno de desarrollo.
Factor de éxito 1: Criterios de éxito definidos y medibles
El habilitador 1 ofrece una serie de 10 partes sobre los habilitadores del éxito, mostrando cómo la codificación segura puede mejorar los resultados empresariales, como la reducción de riesgos y costes y la aceleración de la madurez de los programas a largo plazo.




%20(1).avif)
.avif)
