ssongk
ssongk
ssongk
전체 방문자
오늘
어제

공지사항

  • resources
  • 분류 전체보기 (626)
    • CTF (24)
    • background (79)
      • fuzzing (5)
      • linux (29)
      • linux kernel (15)
      • windows (2)
      • web assembly (1)
      • embedded (0)
      • web (13)
      • crypto (9)
      • mobile (1)
      • AI (1)
      • etc.. (3)
    • write-up(pwn) (171)
      • dreamhack (102)
      • pwn.college (4)
      • pwnable.xyz (51)
      • pwnable.tw (3)
      • pwnable.kr (5)
      • G04T (6)
    • write-up(rev) (32)
      • dreamhack (24)
      • reversing.kr (8)
    • write-up(web) (195)
      • dreamhack (63)
      • LOS (40)
      • webhacking.kr (69)
      • websec.fr (3)
      • wargame.kr (6)
      • webgoat (1)
      • G04T (7)
      • suninatas (6)
    • write-up(crypto) (19)
      • dreamhack (16)
      • G04T (1)
      • suninatas (2)
    • write-up(forensic) (53)
      • dreamhack (5)
      • ctf-d (47)
      • suninatas (1)
    • write-up(misc) (13)
      • dreamhack (12)
      • suninatas (1)
    • development (31)
      • Linux (14)
      • Java (13)
      • Python (1)
      • C (2)
      • TroubleShooting (1)
    • 자격증 (8)
    • 이산수학 (1)
    • 정보보안 (0)
hELLO · Designed By 정상우.
ssongk

ssongk

[webgoat] XXE assignment write-up
write-up(web)/webgoat

[webgoat] XXE assignment write-up

2022. 8. 27. 22:44

webgoat XXE 강의 중 연습문제 3개에 대한 라업 입니다.


XXE assignment (4)

루트에서 디렉터리 리스팅을 해야하는 문제 입니다.
버프스위트를 활용해서 패킷을 캡쳐해보면 XML 형태로 전송되는 모습을 볼 수 있습니다.
레슨에서 배운 페이로드를 사용하면 바로 풀 수 있습니다.

XXE assignment (7)

content-type 변조 문제 입니다.
json을 xml으로 바꾸고 이전 문제와 동일하게 풀면 됩니다.

XXE assignment (11)

blind XXE Injection을 수행해야 합니다.
webwolf를 활용해 파일을 업로드하고 해당 파일을 읽어오는 방식 입니다.

https://github.com/vernjan/webgoat/blob/master/04-xxe.md

(영어 해석이 안돼서 도움을 받았습니다)
dtd 파일을 업로드 한 후 XXE injection을 수행합니다.
이 때, 파라미터 엔티티를 사용하는데
dtd 문서에서만 사용하기 위해 선언한 엔티티를 파라미터 엔티티라고 하며 %를 붙여서 선언합니다.
호출할 때는 %이름; 형태로 호출합니다.
페이로드에서 파일에서 플래그 값을 가져와 %secret에 저장합니다.
그 다음에 웹울프에 업로드 했던 dtd 파일을 %dtd에 저장합니다.
%all의 경로에 secret이 대입되서 해당 파일의 내용을 send에 저장하고
send 엔티티가 %all에 저장됩니다.
그래서 &send;를 사용할 수 있습니다.

xml의 결과를 알려주지 않으므로 blind XXE를 사용하여 다른 웹 서버를 통해 기록을 남겨서 결과를 확인합니다.

dtd 파일을 작성한 후 webwolf에 업로드 해줍니다.

url의 landing? 뒤에 나오는 파라미터를 제출하면 문제가 풀립니다.

    ssongk
    ssongk
    벌레 사냥꾼이 되고 싶어요

    티스토리툴바