Я пытаюсь воспроизвести сценарий XXE, который размещен по следующей ссылке
https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.md
Как я читал из документации, следующий блок кода не должен загружать DTD, когда он запускается с целевой версией платформы 4.5.2+, когда XMLResolver не установлен явно. Однако я вижу содержание файла. Если я установлю для XMLResolver значение null, содержимое не будет загружаться должным образом.
Почему целевая структура не влияет на результат? Моя цель - проверить этот сценарий здесь и применить решение в моем проекте.
static void LoadXML()
{
string xxePayload = "<!DOCTYPE doc [<!ENTITY win SYSTEM 'file:///C:/Users/testdata2.txt'>]>"
+ "<doc>&win;</doc>";
string xml = "<?xml version='1.0' ?>" + xxePayload;
XmlDocument xmlDoc = new XmlDocument();
// Setting this to NULL disables DTDs - Its NOT null by default.
// xmlDoc.XmlResolver = null;
xmlDoc.LoadXml(xml);
Console.WriteLine(xmlDoc.InnerText);
Console.ReadLine();
}