XML Injection
[Description]
XML Injection은 서버로부터 전달되는 XML문을 중간에 가로채서 코드를 수정하는 것입니다. WebGoat t-shirt , WebGoat Secure Kettle 등 구매 가능한 물품이 5개가 존재하며
자신의 account ID 를 입력하여 물건을 구매할수가 있습니다.
우리의 목표는 위 존재하는 5개의 물건 모두 구매를 하는것입니다.
[그림1]
[그림1] 자신의 account ID 를 입력한 그림.
자신의 account ID 를 입력 시 구매가능한 물품이 출력되지만,
구매해야할 5개의 물품이 아닌 3개의 물품만 출력됩니다.
[그림2]
[그림2] 구매가능한 물품 3개를 체크한 후 , Submit 을 누른 그림.
현재 구매 가능한 물품 3개를 모두 체크한 후 , Submit 을 누르면
따라서 ,
[그림3]
[그림3] 임의로
[그림4]
[그림4] 코드 수정이 가능하여 성공적으로 물품을 구매가 가능한 그림.
[그림5]
[그림5] XML Injection 에 취약한 Content-Type : text/xml 사용 여부 그림.
Content-Type : text/xml 경우 공격자는 XML주입이 시도가 가능합니다. 따라서 공격자는 중간에 코드를 가로채서 공격자가 의도한 대로 코드 추가하여 공격이 가능합니다.
[impact]
공격자는 XML 주입을 통해 공격자가 원하는 코드를 삽입함으로써 외부 코드 호출 및 시스템 변조 등 악영향을 미칠수있습니다.
[Description]
XML Injection은 서버로부터 전달되는 XML문을 중간에 가로채서 코드를 수정하는 것입니다. WebGoat t-shirt , WebGoat Secure Kettle 등 구매 가능한 물품이 5개가 존재하며
자신의 account ID 를 입력하여 물건을 구매할수가 있습니다.
우리의 목표는 위 존재하는 5개의 물건 모두 구매를 하는것입니다.
[그림1]
[그림1] 자신의 account ID 를 입력한 그림.
자신의 account ID 를 입력 시 구매가능한 물품이 출력되지만,
구매해야할 5개의 물품이 아닌 3개의 물품만 출력됩니다.
[그림2]
[그림2] 구매가능한 물품 3개를 체크한 후 , Submit 을 누른 그림.
현재 구매 가능한 물품 3개를 모두 체크한 후 , Submit 을 누르면
check
라는 매개변수를 통해 순서대로 값을 전달하고 있습니다.따라서 ,
check
매개변수를 임의로 추가하여 보낼 시 구매가 가능한지에 대한 취약점 진을 시도합니다.[그림3]
[그림3] 임의로
check
를 추가하여 값을 전달하는 그림.check
변수를 임의로 추가하여 값을 전달하여 코드 수정이 가능한지 진단합니다.[그림4]
[그림4] 코드 수정이 가능하여 성공적으로 물품을 구매가 가능한 그림.
check
매개변수를 임의로 추가해줌으로써 [그림4] 와 같이 구매할수없던 물품을 구매가 가능합니다.[그림5]
[그림5] XML Injection 에 취약한 Content-Type : text/xml 사용 여부 그림.
Content-Type : text/xml 경우 공격자는 XML주입이 시도가 가능합니다. 따라서 공격자는 중간에 코드를 가로채서 공격자가 의도한 대로 코드 추가하여 공격이 가능합니다.
[impact]
공격자는 XML 주입을 통해 공격자가 원하는 코드를 삽입함으로써 외부 코드 호출 및 시스템 변조 등 악영향을 미칠수있습니다.
댓글
댓글 쓰기