Рубрики
Без рубрики

Настройте свои Java XML-анализаторы, чтобы предотвратить XXE

С включенной внешней сущностью XML (XXE) можно создать вредоносный XML, как показано ниже, и… С тегами java, security, xml, xxe.

При включенной внешней сущности XML (XXE) можно создать вредоносный XML-файл, как показано ниже, и прочитать содержимое произвольного файла на компьютере. Неудивительно, что атаки XXE входят в топ-10 уязвимостей OWASP. Библиотеки Java XML особенно уязвимы для внедрения XXE, поскольку большинство анализаторов XML по умолчанию имеют включенные внешние объекты.



]>

   &xxe
   Bohemian Rhapsody
   A Night at the Opera

Наивная реализация обработчика по умолчанию и синтаксического анализатора Java SAX, подобная приведенной ниже, анализирует этот XML-файл и раскрывает содержимое файла passwd. В качестве основного примера здесь используется синтаксический анализатор Java SAX, но другие анализаторы, такие как DocumentBuilder и DOM4J, имеют аналогичное поведение по умолчанию.

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();

DefaultHandler handler = new DefaultHandler() {

    public void startElement(String uri, String localName,String qName,Attributes attributes) throws SAXException {
        System.out.println(qName);
    }

    public void characters(char ch[], int start, int length) throws SAXException {
        System.out.println(new String(ch, start, length));
    }
};

Изменение настроек по умолчанию для запрета внешних объектов и типов документов для xerces 1 или xerces 2 , соответственно, предотвращает подобные атаки.

...
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();

factory.setFeature("https://xml.org/sax/features/external-general-entities", false);
saxParser.getXMLReader().setFeature("https://xml.org/sax/features/external-general-entities", false);
factory.setFeature("https://apache.org/xml/features/disallow-doctype-decl", true); 
...

Для получения дополнительной практической информации о предотвращении вредоносной инъекции XXE, пожалуйста, ознакомьтесь со шпаргалкой OWASP XXE

Это был всего лишь 1 из 10 рекомендаций по безопасности Java. Взгляните на полные 10 и простые доступные для печати одностраничные

Оригинал: “https://dev.to/brianverm/configure-your-java-xml-parsers-to-prevent-xxe-213c”