webgoat XXE 강의 중 연습문제 3개에 대한 라업 입니다.
XXE assignment (4)
루트에서 디렉터리 리스팅을 해야하는 문제 입니다.
버프스위트를 활용해서 패킷을 캡쳐해보면 XML 형태로 전송되는 모습을 볼 수 있습니다.
레슨에서 배운 페이로드를 사용하면 바로 풀 수 있습니다.
XXE assignment (7)
content-type 변조 문제 입니다.
json을 xml으로 바꾸고 이전 문제와 동일하게 풀면 됩니다.
XXE assignment (11)
blind XXE Injection을 수행해야 합니다.
webwolf를 활용해 파일을 업로드하고 해당 파일을 읽어오는 방식 입니다.
(영어 해석이 안돼서 도움을 받았습니다)
dtd 파일을 업로드 한 후 XXE injection을 수행합니다.
이 때, 파라미터 엔티티를 사용하는데
dtd 문서에서만 사용하기 위해 선언한 엔티티를 파라미터 엔티티라고 하며 %를 붙여서 선언합니다.
호출할 때는 %이름; 형태로 호출합니다.
페이로드에서 파일에서 플래그 값을 가져와 %secret에 저장합니다.
그 다음에 웹울프에 업로드 했던 dtd 파일을 %dtd에 저장합니다.
%all의 경로에 secret이 대입되서 해당 파일의 내용을 send에 저장하고
send 엔티티가 %all에 저장됩니다.
그래서 &send;를 사용할 수 있습니다.
xml의 결과를 알려주지 않으므로 blind XXE를 사용하여 다른 웹 서버를 통해 기록을 남겨서 결과를 확인합니다.
dtd 파일을 작성한 후 webwolf에 업로드 해줍니다.
url의 landing? 뒤에 나오는 파라미터를 제출하면 문제가 풀립니다.