phar:// deserialization
Bug bounty wenk: teken aan vir Intigriti, 'n premium bug bounty platform geskep deur hackers, vir hackers! Sluit by ons aan by https://go.intigriti.com/hacktricks vandag, en begin om belonings te verdien tot $100,000!
Phar lêers (PHP Archive) lêers bevat meta data in geserializeerde formaat, dus, wanneer dit geïnterpreteer word, word hierdie metadata gedeserializeer en jy kan probeer om 'n deserialisasie kwesbaarheid binne die PHP kode te misbruik.
Die beste ding oor hierdie eienskap is dat hierdie deserialisasie selfs sal plaasvind as PHP funksies gebruik word wat nie PHP-kode evalueer nie, soos file_get_contents(), fopen(), file() of file_exists(), md5_file(), filemtime() of filesize().
Stel jou dus 'n situasie voor waar jy 'n PHP-webwerf kan laat die grootte van 'n willekeurige lêer kry deur die phar://
protokol te gebruik, en binne die kode vind jy 'n klas soortgelyk aan die volgende:
Jy kan 'n phar-lêer skep wat, wanneer dit gelaai word, hierdie klas misbruik om willekeurige opdragte uit te voer met iets soos:
Merk op hoe die sielkundige bytes van JPG (\xff\xd8\xff
) by die begin van die phar-lêer gevoeg word om moontlike lêer oplaai beperkings te vermy.
Kompileer die test.phar
lêer met:
En voer die whoami
bevel uit deur misbruik te maak van die kwesbare kode met:
Verwysings
Foutjagtip: teken aan vir Intigriti, 'n premium foutjagplatform geskep deur hackers, vir hackers! Sluit vandag by ons aan by https://go.intigriti.com/hacktricks en begin om belonings tot $100,000 te verdien!
Last updated