Code::Security/비박스(BWAPP)

비박스(bWAPP) A7 XML External Entity Attacks (XXE)

태군 코드 2022. 10. 6. 15:19
반응형

이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.

 

A7 - XML External Entity Attacks (XXE)

 

XML External Entity attack은 XML 입력을 구문 분석하는 응용 프로그램에 대한 공격 유형입니다. 이 공격은 외부 엔티티에 대한 참조를 포함하는 XML 입력이 약하게 구성된 XML 파서에 의해 처리될 때 발생합니다. 이 공격은 기밀 데이터 노출, 서비스 거부, 서버 측 요청 위조, 파서가 위치한 기계의 관점에서 포트 스캔 및 기타 시스템에 영향을 미칠 수 있습니다.

 

xxe-1.php

xxe-1.php 페이지는 xml 인젝션에 관련된 문제로 버트스위트를 이용하여 패킷을 잡고 공격 구문을 이용하여 내부에 있는 파일을 읽어 보도록 하겠습니다.

 

버프를 통한 패킷 확인

버프 스위트를 통하여 Any bugs? 버튼을 눌렀을 때 패킷을 잡은 후에 Repeater 항목으로 패킷을 보내줍니다.

 

버프스위트 Repeater

버프 스위트의 Repeater 항목에서 Go 버튼을 눌러 주면 응답 값으로 bee 계정의 비밀이 재설정되었다는 메시지를 확인할 수 있습니다. 그럼 공격 구분을 통하여 robot.txt 파일을 확인해 보도록 하겠습니다.

 

공격 구문

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [<!ENTITY XXE SYSTEM "http://localhost/bWAPP/robots.txt">]>
<reset><login>&XXE;</login><secret>blah</secret></reset>

 

공격 구문 입력

공격 구문을 입력하고 Go 버튼을 눌렀을 때 다음과 같은 에러 메시지가 나올 경우 xxe-2.php 페이지에서 소스코드를 수정해줘야 합니다.

 

소스코드 추가

$xml = simplexml_load_string($body,'SimpleXMLElement', LIBXML_NOENT);

 

xxe-2.php

기존에 설정되어 있던 부분을 주석처리한 후 위의 소스코드를 추가하여 줍니다.

 

robot.txt 파일 내용 확인

소스코드 수정후 다시 Go 버튼을 눌러 주면 위와 같이 robot.txt 파일의 내용을 확인할 수 있습니다. 여기서는 단순히 robot.txt 파일의 내용만 확인해 보았지만 테스트를 하시는 분들은 다양한 방법으로 경로를 변경하여 확인해 보시기를 추천드립니다.

반응형