init
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
**XML external entity (XXE)** - уязвимость, открывающая атакующему возможность вмешиваться в обработку приложением данных XML. Обычно это открывает возможность атакующему просматривать файлы на сервере приложения и взаимодействовать с любым back-end или дополнительной системой, к которой имеет доступ само приложение.
|
||||
|
||||
## Что такое XML?
|
||||
|
||||
**XML - extensible markup language** - расширяемый язык разметки, предназначенный для хранения и транспортировки данных. Как и HTML, использует древоподобную структуру тегов и данных. Ранее был в моде как формат данных для транспортировки, но сейчас в основном используют **json**.
|
||||
|
||||
**XML сущьность** - способ представления элемента данных в ввиде XML документа, вместо использования оригинальных данных. Это значит, что < И > будут представленны как **<** и **>**
|
||||
|
||||
**DTD (Document type definition)** - содержит объявления, которые могут определить структуру XML документа, типы данных и другие элементы. Объявляется в отдельном DOCTYPE в начале документа.
|
||||
|
||||
```XML
|
||||
<!DOCTYPE foo [ <!ENTITY myentity "my entity value" > ]>
|
||||
```
|
||||
В качестве примера.
|
||||
|
||||
## Использование XML для получения файлов
|
||||
|
||||
Что бы провести XXE иньекцию, которая возвращает файлы из файловой системы, необходимо модифицировать XML. Есть два пути:
|
||||
1. Объявление или редактирование DOCTYPE элемента, который объявляет внешнюю сущность, имеющую доступ к файловой системе.
|
||||
2. Изменение данных в XML, который возвращаяется в ответе приложения, чтобы использовать определенную внешнюю сущность.
|
||||
|
||||
## Эксплуатация XXE для совершения SSRF атаки
|
||||
|
||||
Для совершения такой гибридной атаки необходимо объявить внешнюю XML сущность используя необходимую нам ссылку, и использовать объявленную переменную как данные.
|
||||
Reference in New Issue
Block a user