Witam,
Mam dosc stara strone napisana w PHP 7.3. Zauwazylem, ze formularz, ktorzy przyjmuje XML pliki tj csv czy xls, nie jest odporny na atak XXE. Czy ktos moze napotkal sie na podobny problem. Jak temu zapobiec?
Witam,
Mam dosc stara strone napisana w PHP 7.3. Zauwazylem, ze formularz, ktorzy przyjmuje XML pliki tj csv czy xls, nie jest odporny na atak XXE. Czy ktos moze napotkal sie na podobny problem. Jak temu zapobiec?
Zmienić PHP na inny język :)
To nie dziala. To juz mam. I to jest troche za malo. libxml_disable_entity_loader(true);
XXE ma kilka form kilka form ataku. I te zabazpieczenie jest bardzo podstawowe. Dalej przepuszcza np przeformatowane z utf-8 to uft-32 pliki. Jakos idzie to obejsc. Tak samo filtrowanie <!DOCTYPE
tez slabo dziala.
Masz przykład pliku jaki Ci wywołuje tego XXE? Możesz wrzucić?
Tak, tutaj jest przyklad xlsx https://file.io/x1tnI74CtsHc
Ale to jest plik xlsx nie xml, gdzie tu podatność na XXE?
Patrzyłem w kodzie źródłowym PHPspredsheet i tam pod spodem jest wykorzystywana simplexml tym samym libxml do wczytania danych. https://github.com/PHPOffice/PhpSpreadsheet/blob/1f32fa489ac1ad3a4bb51be05f37734be7b81300/src/PhpSpreadsheet/Reader/Xlsx.php#L139
Czyli nawet w takim przypadku XEE powino być zablokowane przy podawaniu flagi dla libxml.
Jeszcze raz wrzucilem plik https://fastupload.io/hP55I42gK65xTom/file
PK ! bîhO [Content_Types].xmlUT PìÎPìÎux õ ”MnÂ0…÷•z‡È[”º¨ªŠÀ¢?Ë©ô n<!Žmy
·ïÄPTU”¨‚M¬xæ½ïÙÑd<Ý´6[CDã])FÅPdà*¯[”â}þœß‰I9¬wPŠ- ˜N®¯Æóm ÌXí°
Q¸—«Z……à¸RûØ*â׸AUKµ y3ÞÊÊ;G9ub2~„Z,eOÞÞ%‰`Qd»ÆŽU
‚5•"®ËµÓ¿(ùžP°2õ`c¸AÈ£„®ò7`¯{嫉FC6S‘^TË]rcå§Ëï—Åi“#)}]›
´¯V-K
”Æ€Z[¤µh•qƒ~~jF™–Ñ…ƒü{roØ=Ïlz€H[xékO¦}äFEÐoy2.à§÷©¬ŸE'(ÂÿC|H§ÎA$súä"[Ÿ}jè¦Oƒ>–é2ùPK
…‚8V _rels/UT ‰KÐcNLÐcux õ PK ! µU0#ë L _rels/.relsUT PìÎPìÎux õ ’ÍjÃ0€ïƒ½ƒÑ½QÚÁ£N/cÐÛÙh¶òCËØn—¾ý¼ÃØ]éaGËÒ§OBÛÝ<êÈ!öâ4¬‹;#¶w†·úyõ *&r–Fq¬áÄvÕíÍö•GJ¹(v½*S\ÔÐ¥ä£éx¢Xˆg— ¥ü-z2µŒ›²¼Çð›Õ‚©öVCØÛ;PõÉó5lišÞð“˜ÃÄ.i<'v–íʇ\RŸ§Q5…–“+æ%‡#’÷EFž7Ú\oô÷´8q"K‰ÐHàË>_—„Öÿ¹¢eÆÍ<⇄á]døvÁÅ
TŸPK
…‚8V docProps/UT ‰KÐcNLÐcux õ PK ! äîaUŽ 3 docProps/app.xmlUT PìÎPìÎux õ “AoÛ0…ïöÝÙÝP¬¢H7ô°bâ¶gV¦c¡²dˆ¬‘ì×ONÇYwÚí‘|xúLÉêv×¹lÀH6øR‹\dèM¨ß–â©úqõMdÄàkpÁc)öHâVþ¤Ö1ôÙ"e)ÂS)Zæ~)%™; Eû4iBì€S·245xÌ{‡žåužßHÜ1úë«~
ÇÄåÀÿZ3òÑsµïSžVU`p•íPçJžu×÷ÎàôõúÑš(4œ=‚±žµÙ÷A§äܦÒQ4ïÑò~L›—jcÀá*p„Jžêa\ël$^h8ÄŒìï´Øk‘½á\Š¢Ïâh;ízâ¨_B|£‘IÉ©ysï\Û¯º8’¸4Ê $éKÄʲCúÕ¬!ò?ˆ‹9ñAÌ7#_ñïtÒ_Ù«ÐõàÓå¤~ZÿFO}îñ´Î˦ڴ±N70{j¨‡ÄÝè_µà·XŸ<ã3x>þº¸Yä_òüp秞’ç×®ÿ PK ! ;œ·b È docProps/core.xmlUT PìÎPìÎux õ ’ÁnÂ0†ï“öUî%MAªJ¶‰Ó&M‚iÓnYb [›D‰Gáí—( qØÍöÿû«c·œnë*Ù€Úš aƒŒ$`¤UÚ¬&äu1KÇ$ (Œ•50!;dÊooJé
i=¼xëÀ£†D’ …t²Ft¥A®¡a&ŠKëk1õ+ê„ü+ y–ÝÑP(‚¶ÀÔõDr@*Ù#ݯ:€’*¨Á` lÀèÉ‹àëpµ¡SÎœµÆƒ«Ö£Ø»·A÷ƦiÍ°³Æù}~šwOMµiw%ðRÉ5VÀKz
c~>¿@â¾Ü'1–ZÏçµ+ÛÉÇR++Òk‡ñNûÞ‹B¼F%>ÇÃ-5¨ûßh´ISÒ¿Jkö°ÑíÉyÖ9ú´<ìoÿiPI|w±ßÒQy><.f„çY>L3–æ£EΊl\0öÑvÑÖ‡þMdãb4<#¼›øòßã¿PK
ä‚8V xl/UT <LÐcNLÐcux õ PK ! S:'| xl/workbook.xmlUT PìÎPìÎux õ T]oÛ }Ÿ´ÿ€xO
nâ¬Vªi-Ò:Uý|¬&1*p’ªêßʼn“¶éC×
ÙÀåâù÷s|²*Zë¤Ñ¦#¡¹É¥žgøæzÜù†‘óLçL-2ü(>|ýr¼4öajÌ í2\x_¥Qäx!JæL%4xfƖ̃iç‘«¬`¹+„ð¥ŠbB’¨dRã5Bj?‚af3ÉÅÈðºÚ¯A¬PÌ}WÈʵh%ÿ\ÉìC]u¸)+€˜J%ýcŠQÉÓÉ\˦
Â^ÑZYxx).nO×ÞQ¥äÖ83ó ½!½?%¥¯R°ÚÏÁǺ„…5ÜA%ŸÄJ¶XÉŒ’F£d·E‹ñàx&•¸]K±ªúÅÊP)…‘bÎÏ¥y†û`š¥xµ`ëjXK%”&8lå|aQ.f¬Vþˆµð°1IŽâ^Ø Â8U^Xͼ83Úƒÿ“æì³Â@èèRü®¥®‘x g<eSwÁ|j«2Ý8`-¤7ÑÈ,µ2«è…,Ù>Ÿ¿&ã!ÚhKi=:0³i[”oÌ'£ŸP€+¶€r@ÑóÍß: ù>¼×ܦôþ)†6vG£aï´sHº‡£~|ÖÓ.'ãS2Šé3\Ê
«}±)E€Îp·ÿŽëœZ%i-ó'²iwº¶=‡€ƒn¥Xº&‚‰VwRçfÙDôØÎ{¬ecÜÉÜŽû4Ù®ýr^øu?†EϦ—ᦂ]4\6$ßy¡5Ý+rÑvM½ÚéFüWaNáÆc“o{ΰ“œ6ígœ)bCØHgñàPK
…‚8V xl/worksheets/UT ‰KÐcNLÐcux õ PK ! "Àdr‚ ‡ xl/worksheets/sheet1.xmlUT PìÎPìÎux õ VÛ’â6}OUþA¥‡<Œl3Ø20d&Ù™f7y¶Àª±,GÌekÿ}[27Û¤jv\`ËÒésZÝí¶‡ŸE†vLi.ó&íF,eÂóÍù<oõ0Ò†æ ÍdÎFø…iüqüóOÃ'©uʘAÀëN)ž§ã” ªÛ²`9¬¬¥ÔÀÚxºPŒ&ÎHdžßé\y‚ò—õ¹^ó˜Íd¼,7%‰b5à¿Ny¡l"~ êq[´b)
XñŒ›GŠ‘ˆ·›\*ºÊ`ßÏ$¤1zVðóádÜ|CIðXI-צ
Ì{Ÿ›Ûï{}ÆG¦æþßDCBÀŽÛž¨üwru\þ‰,x'ÙՑ̆K
¶<á¯ýÑ‚?iFåép|ÃãaÂ!ÃÖ)¶áˆ–>öÆC'ðgOúlŒ]=°ŒÅ†ÁèUJñÓŒÝÛlg0×Ò¶E»’òњܰ:Ú™Y
—›²àw°ýŸS¾s²ÞQë||ðaîjj¡ÐŠj6•Ù¿<1©Å(akºÍÌR>Ý0¾I
ÌBu¹º$/3¦c(dp¥MºV'–™vg$xî¶"è³eòCðOKÚë•`çÁŒ:*ù„”³ÒµO%x‚jðª g"kålaAÃìnÜz;+³GLšREL›¿Š˜5AqÝD„Uļ‰èV¿7WUÄMñ¡Š¸m"zUÄMD¿ŠøóBÄjAýtR‹êÝH-¬÷ µ¸þuRìâ¤Ù¿/@j¡]^€œbëAÕW¡úŽß?ç¯Å}RY¬¥mz¾è×Ò1«,Öq]Y¬¥`îï ƒn·Kü ¬mÙ;{NÓ—‚©Œçúl¼ot ¡¶UªÛ„œ5ÎnH®£IßoQ8iöZQ-òaözý¨G"hœ¶-œ³tÃî¨Úð\£Œ](» P¶"76²pÙZIc¤pÃ:9Sûõµ”æpã•ŒÌlTPÐyà¯ÌvR¤m»u#©8$ͽ“G¸Ê(Ê
F[ÍŠçÀ5+{¢vh˜žs¥Íxï·bÅÊ–Ë«šlVp„ÏÃãÓ},ÎxUz<w®Ž‡2InÜÄø*Šß¦îŒ?Ã+E£{x],¥ ù¯K¶ÙfTa·J|w‰†ÞÉØòì)€Çn¹ñ‘œòª>zÇO¨ñwPK ! 0þ‘Vå ú
xl/styles.xmlUT PìÎPìÎux õ U[o›0~Ÿ´ÿ`ùdITMS´J]U©™´WLbÕdLF6í¿Ï†$^vÉö‚}Ž}¾ó}>>&ºl8[¢**E½"2™S±ŽáçeêL ¨49fRîH/“÷ï¢JïyÜ¢U7Z—3„ªlC8®.dI„Y)¤âXSQU*‚óÊq†|×#Ž©€ÂŒg±zªK'“¼Äš®(£z×bAÀ³ÙíZH…WÌPm¼ g ñÆÊ:$i½/òpš)YÉB_\$‹‚fä%Ý)š"œõHù<$/D®¢½Qg"H‘-µåƒITH¡+ÉZèúÛŠ= ùU¤vÉTx¿+‰ªo`‹™ñ¸%‘Àœtö•¢˜YW9e»Îé[G¶Áª2õî¬uPÝ·FÏA3ɤÚÈ!ÿ%O;T&‚26Ù9’ÈÜM”Höóå®4©…¹ºL»ï7»×
ï<?´ƒÉ»’*7rÈlϲs%#…6Š®7vÔ²DvQkSº$Ê)^K™…<Dì'6#Œ=ÚvúRœ¨j
jžr}›ÇÐ4¦U˜BûiÓèí ïÍ €Ë’íîk¾"*m÷ÚÓéyÕÛWŒ®'bð ¤&™n_“–ªë´dŽÎ’ šâu½Áô¯Â_Sîyˆ¦w”|TÛj?©ëÑl7Äð£¹vŠQñÔ£€UM™¦ÂZ“¶'žÅÜ[ºl eðìÜ
¼é¼]Õö‰<ef0rRàšéåq1†ýüÉiÍý㮺•z¿«ŸßÙðÆ6iô]¥ÛÔŠÆðûÍüÃtq“úÎÄOœ`DBgÎN\Ï‹têúîõÁCýÏtû¶šBzÁ¬bf—Ú‹Ý“ì}1ýöüí!÷©?v¯BÏuÒ‘ë9ÁOœÉx:ièù‹q0¿ ÓpÀ=<ó9w‘çõäÙ¦œ˜«ANé/‡^S$cþB:Tõ?íä'PK
…‚8V xl/_rels/UT ‰KÐcNLÐcux õ PK ! >”—ì º xl/_rels/workbook.xml.relsUT PìΊKÐcux õ RËjÃ0¼úbïµì´”R"ç
¹¶îim™Ø’Ðnþûª
m¡Ÿ–±3£Ý]o>ÇA¼c¢>xUQ‚@o‚í}§àµyºy A¬½ÕCð¨`B‚M}}µ~ÆAsn"×GYÅ“Ç¥$ãpÔT„ˆ>¿´!š3LŒÚìu‡rU–÷2Í5 >Ñ;« íì-ˆfŠøíж½Ám0o#z>c!‰§!@4:uÈ
¸È: ÏÛ¯–´çÜ‹G÷x «Kª%3|„´'‡ÈÇTÐw¹ænÑ}8оpÊç6_Ëœþ
#O.®þPK Ú‚8V0=¶= Ô xl/sharedStrings.xmlUT ,LÐc,LÐcux õ ÍWÛNAí§¬<}‹&Æ(¢5jMÀ5> »¢Qt…åïmãi¦¬àm—ÀÃIv†Î9m§3ˆ¨HD;ŒwF‡ñÄðFÀè2zŒÆã™±ÍÈ0
Œ,#±‡5bÓ‚½µ2×6k/uÆ!c…±a8D/b4°ÎÇ÷“ñ!0\CŒ{K<%úŒm±Ï8c”¡yÅ8g@OùUSænÌz±«bí±áð`ŸÇw\/Æ/æËO\õhø·RgþèËê_
1îÿŽÕ—[ãSÜÞ‹®Égü¦{~;AÈØdä ±kÁ& GóYìOH®VÎ~ïšuQlüÖ6Z!æØû˜Wý ª‘CnóÀ:æTOÏ‹Öž¥>æ#“áY3¶j#¯‹~ù—v/Ì8Â÷AÌO½/ö·or¡ûYD|‘áËј¤yˆy½‹´>ªð£½¤:ru2-
ÝáÉÝqøOÀÝ„ïuØEا4ü¿$w¡#wé=ÞÍIuNM,ZgÁõ$Wo&_¹þ'šG4ÚÒÊg…Üy×ø´,MÈ÷wgmyJ>i/˜'ŸÖfìS™\½gìKÜûEkWÖŸCOü˜¶ŒÍ¸Þ0ëx®1š8ô]¥qjïQÿ}rµ1Ëšˆç²;ùÔÞ¦ïð>ÆmJç«"&½4ú~
~6ɽéºäê"¢Ñÿ%}=ý”|i$åjì"_ïäÞ›ö—,¹÷_'í–AR.ß )—þ?>³õ>Ó{¡ôPK
…‚8V xl/worksheets/_rels/UT ‰KÐcNLÐcux õ PK ! ÊîËûÊ A # xl/worksheets/_rels/sheet1.xml.relsUT PìΊKÐcux õ ϱjÃ0à=Ðw·×r2”,§C[ÈÐ¥¤pHg[Dº’Rœ·¯–B2?ÿ÷sÃaA}S.^ØÀ¶ëA[qžg_§÷ÇgP¥";ÂdàJãÃfø¤€µ•ÊâSQMáb`©5íµ.v¡ˆ¥“DÜ’IrÄÚÎ<ë„öŒ3é]ß?éü×€ñÆTGg ÝÔéšè[¦É[z{‰ÄõŸ ½4)Ïç†bž©ˆèC•="¾ÐŠ1ê¬ÄßüC\›~[+eÆ zôÍããPK
…‚8V xl/theme/UT ‰KÐcNLÐcux õ PK ! Á¾’ Æ xl/theme/theme1.xmlUT PìÎPìÎux õ íYÍoÛ6¿Øÿ èîJ¶%u
[¶û•4Aãvè‘–i‹1%$•Ä(
íi—ºa—»í0+°+vÙ ÅÖý{’¿D›j“6-:,`“Ôï=þøÞãã‹xõÚIH#ÌaQÃ,^±MG>hÔ0ïõº…ši‰¢¢,Â
sŠ…ymûóÏ®¢-à ‰-Ô0)'[–%|Fâ
›àž
‘„.YŽŽAoH’mW¬‘È4"‚Ú½áøØè%*Íí…ò…¯HŠdÀ§üÀOgÌJ¤ØÁ¸˜üˆ©ð(7Žm˜0Ï€÷ð‰4
Š„„
ÓN?¦µ}ÕZ
Q™#›‘릟¹Ü\`0.¥r|Ô_
:ŽëTšKý¥™þM\§Ú©t*K}) ù>¬´¨ÑY-yΛ͚Ýíj»\Tðýå
|ÓMþ|y…w6ðÝ®·²a4kºx·UoµUýî
_ÙÀWífÛ©*øP7ж[){‹Õ.!CFoháu×éVKsø
ee¢k&ɼXÑ!ã] ¤ÎE’D†œNðù€ó%}NŒ2
ð&(b†í’ݵËðü9i+õ(ÚÂ(#=òÅÆPÂÇ>'Ù0oV3yùâÅéãç§?}òäôñ¯ó¹7ån h”•{ýÓ7ÿüð¥ñ÷o?¾~ú/²øW¿|õê?ߤ^*´¾{öêù³—ßý×ÏO5ð&Gý,¼GB,Œ;øظËBX fÜçç“èˆ(( ¤Ø‘¼3ET‡kaÕ„÷9d
ðz|¨p=x,‰x;à.c´Å¸v9·“¹²Ë‰£‘~rgqw:ÒÍí9¸O ä‰N¥`…æ>o£Ž°4’glŒ±Fì!Š]w‰Ï™`Ci< FIz¤/õB7H~™ê‚«ÛìÞ7ZŒêÔ·ñ‘Š„m¨N%¦Š¯£X¢PË…4‹ÜA2Б<˜r_1¸àé¦Ìè°:™=>UèÞ†£wû.†*’K2Ö!wcYd›½ …-gYìM1†EÆ>“ZLÝ!Iü€¢\wß'Xžo[߃¤äIÌu[3u?Néaò&•ìÚäDx¤„öÆ£Æƽ›:<›0=é[d•Xg›[HÕ¤aeRR×hK„²xÄrøìN×ÏE!âyšïŒÕéÀ)§M¥{Ô+©”ðdÓêIì‰Ië~€”°JúB¯SwÌá;ÈàsË@b?³mzˆb}Àôºt"±^$ÙN©X¬•ª›våkÞ IôÖâgìq?NÙóÁ
ž‹/uòRÊz“‡û–5mGûN’˪沪ù?V5y{ù²–¹¬e.k™VˬÊ+û–'Õæ¾òJä”â‘>öþ ƒi'Z¾ašÐœO§àF¥mƒ3ù‘ÁA€&0M1a$æªG˜0¥“™«;-½âp—
f£Åââ¥& ¹‡Òk1…šœVª«·wKõio$²ÜTéÙId&SI”5$ªå³‘(ÚÅ¢®aQ+¾‰…•ñ
NJÞ‡»ÎŒ„„ô ñÓL~áÝ÷tž1Õe—4Ë«;æi…D&ÜT™0àðX¾`_×ëzW—´4ªµákk37ÐHíÇ°çÊ.¨ñѤaáŸ&h†Ð'’L…è(j˜¾œú]2Ë„ÙF"˜ÁÒG³õ‡DbnPB¬gÝ@£·b©jºäêö§g9kÝÉx8ľÌYuáÙL‰öé{‚“‹ôA086ú4æwʈKkÏ÷ÊŠkéj¾•Ë–ÕEt ù‰’Mæ3xÚ^Òɬ#eº¾*KgÂþ¨{§îÛ…Ö’fÎRÍÍbîÏ°*ëY¹Ú\W¯Ùo>%Þÿ@ÈP«é©•õÔòÎŽ,2ÓUrìVÊõæ{žëQkeêÊ´·q«Íú‡ùm¨Vc*ÅìåØ ”ßÞâ>r– ÒÑEv9‘FÌIÃ|h»MÇ+¹^Á®¹‚SvìBÍm–M×-;nÑn·JÀ(2‹îlî.ü³O§óKût|ãâ>\”ÚW|Z,ƒT8½¸/–ò/î
–yX)uëåz«R¨—›Ý‚ÓnÕ
u¯Ò*´+^µÝm{nÞ}dG)Øi–=§Ò©*EÏ+8;¡_«ªN©ÔtªÍZÇi>šÛV¾ø]˜7åµý/PK ! bîhO ¤ [Content_Types].xmlUT PìÎux õ PK
…‚8V íAœ _rels/UT ‰KÐcux õ PK ! µU0#ë L ¤Ü _rels/.relsUT PìÎux õ PK
…‚8V íA docProps/UT ‰KÐcux õ PK ! äîaUŽ 3 ¤O docProps/app.xmlUT PìÎux õ PK ! ;œ·b È ¤' docProps/core.xmlUT PìÎux õ PK
ä‚8V íAÔ xl/UT <LÐcux õ PK ! S:'| ¤ xl/workbook.xmlUT PìÎux õ PK
…‚8V íAÖ xl/worksheets/UT ‰KÐcux õ PK ! "Àdr‚ ‡ ¤
xl/worksheets/sheet1.xmlUT PìÎux õ PK ! 0þ‘Vå ú
¤ò
xl/styles.xmlUT PìÎux õ PK
…‚8V íA xl/_rels/UT ‰KÐcux õ PK ! >”—ì º ¤a xl/_rels/workbook.xml.relsUT PìÎux õ PK Ú‚8V0=¶= Ô ¤¡ xl/sharedStrings.xmlUT ,LÐcux õ PK
…‚8V íA, xl/worksheets/_rels/UT ‰KÐcux õ PK ! ÊîËûÊ A # ¤z xl/worksheets/_rels/sheet1.xml.relsUT PìÎux õ PK
…‚8V íA¡ xl/theme/UT ‰KÐcux õ PK ! Á¾’ Æ ¤ä xl/theme/theme1.xmlUT PìÎux õ PK Ã
Ale w czym masz problem? Xlsx to archiwum ZIP i samo w sobie nie niesie niebezpieczeństw związanych z xxe. Więc może opisz o co tak naprawdę chodzi.