문제 화면입니다.
힌트를 보니 플래그는 /flag.txt에 있습니다.
1번 문제처럼 시도해보니 success 라고만 나오고 결과를 주지 않습니다.
이렇게 결과가 나오지 않을 때 blind xxe injection을 활용할 수 있습니다.
(base64로 인코딩해주지 않으면 값이 나오지 않습니다)
content type을 text/xml로 바꿔주고
response body에 그림과 같이 넣어줍니다.
payload는 위 그림과 같이 작성해주면 됩니다.
먼저 file 엔티티에 플래그가 저장됩니다.
다음으로 dtd에 공격자의 webhook의 url을 저장하고 실행합니다. -> 웹훅의 첫 번째 리퀘스트에 저장
data 태그에서 send를 호출하면 웹훅의 response body에 저장된 send가 실행된다.
send에 저장되는 url 중 %file;이 플래그 값으로 바뀌면서 요청된다. -> 웹훅의 두 번째 리퀘스트에 저장
첫 번째 리퀘스트는 페이로드로 전달한 dtd파일입니다.
두 번째 리퀘스트는 웹훅 URL을 바꿔줘서 지정한 파라미터에 플래그가 같이 나옵니다.
이 값을 base64 디코딩 해주면
플래그가 나왔습니다~
'write-up(web) > G04T' 카테고리의 다른 글
[G04T] Simple XSS 1 (0) | 2022.09.10 |
---|---|
[G04T] Simple SSRF 2 (0) | 2022.09.08 |
[G04T] Simple SSRF 1 (0) | 2022.09.07 |
[G04T] Simple XXE 2 (0) | 2022.09.01 |
[G04T] Simple XXE 1 (0) | 2022.09.01 |