Пляскане PayPal 73 секунди

Пляскане PayPal 73 секунди

подробности уязвимост
При тестване сайт manager.paypal.com сигурност оригване апартамент до вниманието ми необичайна обстановка "oldFormData", който приличаше на сложен Java-обект е кодиран в base64:

Пляскане PayPal 73 секунди


В шестнадесетичен започна с подписа «ACED 0005", с което аз разбрах, че тя е поредица от Java обектно-класа "java.util.HashMap" без каквато и подпис. Това означава, че към момента на подаване на формуляра, ние можем да го замени на обекта напълно различен клас - и методът на сървъра се нарича "readObject" (или "readResolve") на нов клас.

За операцията трябваше да намеря в приложението източник (или в библиотеките, че той използва) клас, който има нещо интересно в readObject на метод или readResolve, като например създаване или изпълнение на система команди с параметрите, които могат да повлияят на файл.

подвиг
Аз веднага изтеглили полезността на проекта им за GitHub и генерира обект клас «sun.reflect.annotation.AnnotationInvocationHandler». което води до прилагането на deserialization «къдри x.s.artsploit.com/paypal» екип. ако сървърът е на разположение библиотека Commons колекции.


Изпълнение на команди къдри изпраща към моите собствени външни искания за DNS сървър протоколи и HTTP, което е добро за откриването на така наречените слепи уязвимости, в които резултатът от командата не се показва в отговор на сървъра.

След това аз изпратих получената кодирана обекта към сървъра в параметъра "oldFormData" и буквално не можех да повярвам на очите си, когато вляза в за достъп до моята Nginx беше подчертано ред:

Бих свалите задната врата, за да получат достъп до базите данни, която използва приложението, или се скитат през вътрешната мрежа. Вместо това, аз само да чете файла "/ и т.н. / ако съществува", за да го изпратите на вашия сървър като потвърждение за уязвимост:

Пляскане PayPal 73 секунди

Във всеки случай, PayPal ми плати добри пари награда, за която са ви благодаря много.