{"id":484,"date":"2021-07-01T12:11:56","date_gmt":"2021-07-01T17:11:56","guid":{"rendered":"https:\/\/www.searchevolution.com\/security\/?p=484"},"modified":"2023-04-22T09:22:27","modified_gmt":"2023-04-22T14:22:27","slug":"vulnerabilite-xxe","status":"publish","type":"post","link":"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/","title":{"rendered":"Comprendre une vuln\u00e9rabilit\u00e9 XXE"},"content":{"rendered":"\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code>La <a href=\"https:\/\/owasp.org\/www-community\/vulnerabilities\/XML_External_Entity_(XXE)_Processing\">vuln\u00e9rabilit\u00e9 XXE<\/a> (XML External Entity) est une faille de s\u00e9curit\u00e9 qui permet \u00e0 un attaquant d'exploiter une application Web qui utilise une entr\u00e9e XML en vue d'injecter du code malveillant. L'exploitation de cette vuln\u00e9rabilit\u00e9 peut conduire \u00e0 des attaques par injection de code ou \u00e0 des fuites d'informations sensibles.\n\nL'une des m\u00e9thodes courantes d'exploitation de la vuln\u00e9rabilit\u00e9 XXE est l'inclusion d'un fichier. Cette technique consiste \u00e0 exploiter la capacit\u00e9 d'un document XML \u00e0 inclure des entit\u00e9s externes dans sa structure. En utilisant une entit\u00e9 externe bien con\u00e7ue, un attaquant peut inclure un fichier malveillant dans le document XML et l'envoyer \u00e0 l'application Web.<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple d&#8217;exploitation d&#8217;une vuln\u00e9rabilit\u00e9 XXE<\/h2>\n<\/div><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE menu &#91; \n&lt;!ENTITY badReference SYSTEM \"file:\/\/\/etc\/passwd\" &gt; ]&gt;\n&lt;menu&gt;\n&amp;badReference;\n\n\t&lt;food&gt;\n\t\t&lt;name&gt;Belgian Waffles&lt;\/name&gt;\n\t\t&lt;price&gt;$ 5,95&lt;\/price&gt;\n\t\t&lt;description&gt;Two of our famous Belgian Waffles with plenty of real maple syrup&lt;\/description&gt;\n\t\t&lt;calories&gt;65&lt;\/calories&gt;\n\t&lt;\/food&gt;\n\t&lt;food&gt;\n\t\t&lt;name&gt;French Toast&lt;\/name&gt;\n\t\t&lt;price&gt;$ 4,50&lt;\/price&gt;\n\t\t&lt;description&gt;Thick slices made from our homemade sourdough bread&lt;\/description&gt;\n\t\t&lt;calories&gt;60&lt;\/calories&gt;\n\t&lt;\/food&gt;\n\t&lt;food&gt;\n\t\t&lt;name&gt;Homestyle Breakfast&lt;\/name&gt;\n\t\t&lt;price&gt;$ 6.95&lt;\/price&gt;\n\t\t&lt;description&gt;Two eggs, bacon or sausage and toast&lt;\/description&gt;\n\t\t&lt;calories&gt;95&lt;\/calories&gt;\n\t&lt;\/food&gt;\n&lt;\/menu&gt;\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"808\" height=\"367\" src=\"https:\/\/www.searchevolution.com\/security\/wp-content\/uploads\/2023\/04\/1682171920-2.png\" alt=\"\" class=\"wp-image-1154\"\/><\/figure>\n\n\n\n<p>Lorsque l&#8217;application traite le document XML, elle tente d&#8217;analyser les entit\u00e9s externes et de les incorporer dans sa structure. Si l&#8217;entit\u00e9 externe inclut un fichier malveillant, l&#8217;application peut l&#8217;ex\u00e9cuter, provoquant ainsi une attaque par injection de code ou une fuite d&#8217;informations sensibles.<\/p>\n\n\n\n<p>Pour \u00e9viter l&#8217;exploitation de cette vuln\u00e9rabilit\u00e9, il est recommand\u00e9 de restreindre l&#8217;acc\u00e8s aux fichiers externes et de valider soigneusement les entr\u00e9es XML de l&#8217;application. Les d\u00e9veloppeurs doivent \u00e9galement utiliser des biblioth\u00e8ques XML s\u00fbres et \u00e0 jour qui prennent en charge les derni\u00e8res fonctionnalit\u00e9s de s\u00e9curit\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code s\u00e9curitaire en php<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"418\" src=\"https:\/\/www.searchevolution.com\/security\/wp-content\/uploads\/2023\/04\/php-xxe-securitaire.png\" alt=\"code php s\u00e9curitaire pour \u00e9viter les failles XXE\" class=\"wp-image-1159\"\/><\/figure>\n\n\n\n<p>Dans cet exemple, le contenu XML est r\u00e9cup\u00e9r\u00e9 depuis une entr\u00e9e utilisateur, puis analys\u00e9 \u00e0 l&#8217;aide de la biblioth\u00e8que XML de PHP, <a href=\"https:\/\/www.php.net\/manual\/fr\/class.domdocument.php\">DOMDocument<\/a>. Avant l&#8217;analyse, la fonction <code><strong>libxml_disable_entity_loader<\/strong><\/code> est appel\u00e9e pour d\u00e9sactiver l&#8217;analyse des entit\u00e9s externes, ce qui emp\u00eache toute exploitation de la vuln\u00e9rabilit\u00e9 XXE.<\/p>\n\n\n\n<p>En d\u00e9sactivant l&#8217;analyse des entit\u00e9s externes, la biblioth\u00e8que XML ne chargera pas de fichiers externes ni n&#8217;ex\u00e9cutera de code malveillant inclus dans le contenu XML. Cela permet de traiter en toute s\u00e9curit\u00e9 le contenu XML sans risque de vuln\u00e9rabilit\u00e9 XXE.<\/p>\n\n\n\n<p>Il est important de noter que cette technique ne doit \u00eatre utilis\u00e9e que lorsque l&#8217;application Web n&#8217;a pas besoin d&#8217;analyser les entit\u00e9s externes. Si les entit\u00e9s externes sont n\u00e9cessaires \u00e0 l&#8217;application, il est recommand\u00e9 d&#8217;utiliser une m\u00e9thode de validation et de filtrage pour \u00e9viter toute exploitation de la vuln\u00e9rabilit\u00e9 XXE.<\/p>\n\n\n\n<p>En outre, les administrateurs syst\u00e8me doivent surveiller de pr\u00e8s les journaux d&#8217;activit\u00e9 de l&#8217;application Web pour d\u00e9tecter toute tentative d&#8217;exploitation de la vuln\u00e9rabilit\u00e9 XXE. En cas de d\u00e9tection d&#8217;une telle tentative, il est recommand\u00e9 de prendre des mesures imm\u00e9diates pour bloquer l&#8217;attaque et pour corriger la vuln\u00e9rabilit\u00e9 dans l&#8217;application.<\/p>\n\n\n\n<p>En conclusion, l&#8217;exploitation de la vuln\u00e9rabilit\u00e9 XXE par l&#8217;inclusion d&#8217;un fichier est une technique courante utilis\u00e9e par les attaquants pour injecter du code malveillant ou pour acc\u00e9der \u00e0 des informations sensibles. Pour se prot\u00e9ger contre cette vuln\u00e9rabilit\u00e9, les d\u00e9veloppeurs doivent restreindre l&#8217;acc\u00e8s aux fichiers externes, valider soigneusement les entr\u00e9es XML et utiliser des biblioth\u00e8ques XML s\u00fbres et \u00e0 jour. Les administrateurs syst\u00e8me doivent \u00e9galement surveiller les journaux d&#8217;activit\u00e9 de l&#8217;application Web pour d\u00e9tecter toute tentative d&#8217;exploitation de cette vuln\u00e9rabilit\u00e9.<\/p>\n\n\n\n<p>Les vuln\u00e9rabilit\u00e9s XXE sont une des m\u00e9thodes fr\u00e9quemment utilis\u00e9es pour <a href=\"https:\/\/www.searchevolution.com\/security\/2023\/04\/22\/comment-attaquer-les-rest-api\/\">attaquer les REST apis<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Exemple d&#8217;exploitation d&#8217;une vuln\u00e9rabilit\u00e9 XXE Lorsque l&#8217;application traite le document XML, elle tente d&#8217;analyser les entit\u00e9s externes et de les incorporer dans sa structure. Si l&#8217;entit\u00e9 externe inclut un fichier malveillant, l&#8217;application peut l&#8217;ex\u00e9cuter, provoquant ainsi une attaque par injection de code ou une fuite d&#8217;informations sensibles. Pour \u00e9viter l&#8217;exploitation de cette vuln\u00e9rabilit\u00e9, il est recommand\u00e9 de restreindre l&#8217;acc\u00e8s aux fichiers externes et de valider soigneusement les entr\u00e9es XML de l&#8217;application. Les d\u00e9veloppeurs doivent \u00e9galement utiliser des biblioth\u00e8ques XML s\u00fbres et \u00e0 jour qui prennent en charge les derni\u00e8res fonctionnalit\u00e9s de s\u00e9curit\u00e9. Code s\u00e9curitaire en php Dans cet exemple, le <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comprendre une vuln\u00e9rabilit\u00e9 XXE - S\u00e9curiser votre site<\/title>\n<meta name=\"description\" content=\"Exemple d&#039;attaque par l&#039;exploitation d&#039;une vuln\u00e9rabilit\u00e9 XXE par la d\u00e9finition et le r\u00e9f\u00e9rencement d&#039;une entit\u00e9 XML\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comprendre une vuln\u00e9rabilit\u00e9 XXE - S\u00e9curiser votre site\" \/>\n<meta property=\"og:description\" content=\"Exemple d&#039;attaque par l&#039;exploitation d&#039;une vuln\u00e9rabilit\u00e9 XXE par la d\u00e9finition et le r\u00e9f\u00e9rencement d&#039;une entit\u00e9 XML\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/\" \/>\n<meta property=\"og:site_name\" content=\"S\u00e9curiser votre site\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-01T17:11:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-22T14:22:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.searchevolution.com\/security\/wp-content\/uploads\/2023\/04\/1682171920-2.png\" \/>\n<meta name=\"author\" content=\"Germain\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Germain\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimation du temps de lecture\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/\",\"url\":\"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/\",\"name\":\"Comprendre une vuln\u00e9rabilit\u00e9 XXE - S\u00e9curiser votre site\",\"isPartOf\":{\"@id\":\"https:\/\/www.searchevolution.com\/security\/#website\"},\"datePublished\":\"2021-07-01T17:11:56+00:00\",\"dateModified\":\"2023-04-22T14:22:27+00:00\",\"author\":{\"@id\":\"https:\/\/www.searchevolution.com\/security\/#\/schema\/person\/e1318e0782dc5a7d6b03471347f881d8\"},\"description\":\"Exemple d'attaque par l'exploitation d'une vuln\u00e9rabilit\u00e9 XXE par la d\u00e9finition et le r\u00e9f\u00e9rencement d'une entit\u00e9 XML\",\"breadcrumb\":{\"@id\":\"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.searchevolution.com\/security\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comprendre une vuln\u00e9rabilit\u00e9 XXE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.searchevolution.com\/security\/#website\",\"url\":\"https:\/\/www.searchevolution.com\/security\/\",\"name\":\"S\u00e9curiser votre site\",\"description\":\"Conna\u00eetre son ennemi\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.searchevolution.com\/security\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.searchevolution.com\/security\/#\/schema\/person\/e1318e0782dc5a7d6b03471347f881d8\",\"name\":\"Germain\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\/\/www.searchevolution.com\/security\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6a203854efbec130dd49471ccbba1abc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6a203854efbec130dd49471ccbba1abc?s=96&d=mm&r=g\",\"caption\":\"Germain\"},\"sameAs\":[\"https:\/\/www.searchevolution.com\/security\"],\"url\":\"https:\/\/www.searchevolution.com\/security\/author\/germain\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comprendre une vuln\u00e9rabilit\u00e9 XXE - S\u00e9curiser votre site","description":"Exemple d'attaque par l'exploitation d'une vuln\u00e9rabilit\u00e9 XXE par la d\u00e9finition et le r\u00e9f\u00e9rencement d'une entit\u00e9 XML","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/","og_locale":"fr_CA","og_type":"article","og_title":"Comprendre une vuln\u00e9rabilit\u00e9 XXE - S\u00e9curiser votre site","og_description":"Exemple d'attaque par l'exploitation d'une vuln\u00e9rabilit\u00e9 XXE par la d\u00e9finition et le r\u00e9f\u00e9rencement d'une entit\u00e9 XML","og_url":"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/","og_site_name":"S\u00e9curiser votre site","article_published_time":"2021-07-01T17:11:56+00:00","article_modified_time":"2023-04-22T14:22:27+00:00","og_image":[{"url":"https:\/\/www.searchevolution.com\/security\/wp-content\/uploads\/2023\/04\/1682171920-2.png"}],"author":"Germain","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Germain","Estimation du temps de lecture":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/","url":"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/","name":"Comprendre une vuln\u00e9rabilit\u00e9 XXE - S\u00e9curiser votre site","isPartOf":{"@id":"https:\/\/www.searchevolution.com\/security\/#website"},"datePublished":"2021-07-01T17:11:56+00:00","dateModified":"2023-04-22T14:22:27+00:00","author":{"@id":"https:\/\/www.searchevolution.com\/security\/#\/schema\/person\/e1318e0782dc5a7d6b03471347f881d8"},"description":"Exemple d'attaque par l'exploitation d'une vuln\u00e9rabilit\u00e9 XXE par la d\u00e9finition et le r\u00e9f\u00e9rencement d'une entit\u00e9 XML","breadcrumb":{"@id":"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.searchevolution.com\/security\/2021\/07\/01\/vulnerabilite-xxe\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.searchevolution.com\/security\/"},{"@type":"ListItem","position":2,"name":"Comprendre une vuln\u00e9rabilit\u00e9 XXE"}]},{"@type":"WebSite","@id":"https:\/\/www.searchevolution.com\/security\/#website","url":"https:\/\/www.searchevolution.com\/security\/","name":"S\u00e9curiser votre site","description":"Conna\u00eetre son ennemi","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.searchevolution.com\/security\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-CA"},{"@type":"Person","@id":"https:\/\/www.searchevolution.com\/security\/#\/schema\/person\/e1318e0782dc5a7d6b03471347f881d8","name":"Germain","image":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/www.searchevolution.com\/security\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6a203854efbec130dd49471ccbba1abc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6a203854efbec130dd49471ccbba1abc?s=96&d=mm&r=g","caption":"Germain"},"sameAs":["https:\/\/www.searchevolution.com\/security"],"url":"https:\/\/www.searchevolution.com\/security\/author\/germain\/"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/posts\/484"}],"collection":[{"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/comments?post=484"}],"version-history":[{"count":9,"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/posts\/484\/revisions"}],"predecessor-version":[{"id":1160,"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/posts\/484\/revisions\/1160"}],"wp:attachment":[{"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/media?parent=484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/categories?post=484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.searchevolution.com\/security\/wp-json\/wp\/v2\/tags?post=484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}