PHP Object Inj

Discussion in 'Песочница' started by Filipp, 16 Jan 2016.

  1. Filipp

    Filipp Elder - Старейшина

    Joined:
    10 May 2015
    Messages:
    257
    Likes Received:
    57
    Reputations:
    31
    Народ, объясните в чем суть php-inj в сериализации (serialize, unserialize). Удобная вещь, часто ней пользуюсь. Вьехал всего лишь в один пример:
    PHP:
    $data unserialize($autologin);
    if (
    $data['username'] == $adminName && $data['password'] == $adminPassword) {
        
    $admin true;
    } else {
        
    $admin false;
    }  
    Получается что можно задать переменной в массиве булевское значение, и в итоге получиться true. Но вот саму суть валнераблы никак понять не могу.
    Нашел хороший man: https://rdot.org/forum/showthread.php?t=950
    Добрые люди, объясните пожалуйста, интересно же)
     
  2. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Большая часть вариаций эксплуатации уязвимости заключается в том, что помимо передачи значений стандартных типов данных, можно передавать объекты, что опасно из-за наличия у них каких-либо реализованных свойств.

    Ещё часто в реализации unzerialize в интерпретаторе допускают ошибки, ведущие к DOS или RCE.