Warning: mkdir(): No space left on device in /var/www/tgoop/post.php on line 37

Warning: file_put_contents(aCache/aDaily/post/poxek/--): Failed to open stream: No such file or directory in /var/www/tgoop/post.php on line 50
Похек@poxek P.4761
POXEK Telegram 4761
🔓 Десериализация в PHP: как это эксплуатируют и как защититься
#php #десер #десериализация #deserialization

Десериализация — это процесс преобразования строки обратно в объект. В PHP для этого используются функции serialize() и unserialize(). Однако, если десериализовать данные из ненадёжных источников, это может стать серьёзной уязвимостью.

Как работает атака?
Рассмотрим пример кода, где используется класс с magic method (если и другие) __wakeup() — он автоматически вызывается при десериализации объекта:
<?php
class Injection {
public $payload;

function __wakeup() {
eval($this->payload);
}
}

if (isset($_REQUEST['data'])) {
$obj = unserialize($_REQUEST['data']);
// Дальнейшая работа с $obj
}
?>

Злоумышленник может передать специально сформированный сериализованный объект через параметр data:
O:9:"Injection":1:{s:7:"payload";s:21:"phpinfo(); // payload";}

При десериализации будет выполнена команда phpinfo(), что может открыть доступ к конфиденциальной информации о веб сервере. Более сложные payload'ы могут привести к RCE и другим атакам.

⭐️Как защититься?

➡️Избегайте использования unserialize() для входящих данных.
➡️Для обмена данными используйте более безопасные форматы, такие как JSON.
➡️Ограничьте доступные классы. Начиная с PHP 7, можно указать, какие классы разрешено десериализовать:
data = unserialize($input, ['allowed_classes' => ['SafeClass']]);

➡️Фильтруйте данные. Перед десериализацией проверяйте данные на соответствие ожидаемому формату. Не допускайте наличие кода или неожиданных объектов.
➡️Регулярно обновляйте PHP. Новые версии часто содержат исправления для известных уязвимостей. Используйте актуальную версию PHP.
➡️Проверяйте используемые библиотеки на наличие уязвимостей. К сожалению десер достаточная частая уязвимость, но не часто эксплуатируемая. На скрине вы сами видите сколько было только зарегано CVE с десериализацией. А о скольких мы не знаем?

Ваш опыт?
Сталкивались ли вы с такой багой на проектах? Какие рекомендации давали по защите? Делитесь своим опытом в комментариях)

Дополнительное чтиво
Небезопасная десериализация в PHP: Как создать собственный эксплойт - это статья от моего хорошего знакомого wr3dmast3r
Сериализация и десериализация: что это такое и как это работает - а это базовое чтиво по десеру в пыхе
PayloadsAllTheThings | PHP Deserialization - тут и так понятно что будет)

🌚 @poxek | 📺 YT | 📺 RT | 📺 VK | 🌚 Магазин мерча
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/poxek/4761
Create:
Last Update:

🔓 Десериализация в PHP: как это эксплуатируют и как защититься
#php #десер #десериализация #deserialization

Десериализация — это процесс преобразования строки обратно в объект. В PHP для этого используются функции serialize() и unserialize(). Однако, если десериализовать данные из ненадёжных источников, это может стать серьёзной уязвимостью.

Как работает атака?
Рассмотрим пример кода, где используется класс с magic method (если и другие) __wakeup() — он автоматически вызывается при десериализации объекта:

<?php
class Injection {
public $payload;

function __wakeup() {
eval($this->payload);
}
}

if (isset($_REQUEST['data'])) {
$obj = unserialize($_REQUEST['data']);
// Дальнейшая работа с $obj
}
?>

Злоумышленник может передать специально сформированный сериализованный объект через параметр data:
O:9:"Injection":1:{s:7:"payload";s:21:"phpinfo(); // payload";}

При десериализации будет выполнена команда phpinfo(), что может открыть доступ к конфиденциальной информации о веб сервере. Более сложные payload'ы могут привести к RCE и другим атакам.

⭐️Как защититься?

➡️Избегайте использования unserialize() для входящих данных.
➡️Для обмена данными используйте более безопасные форматы, такие как JSON.
➡️Ограничьте доступные классы. Начиная с PHP 7, можно указать, какие классы разрешено десериализовать:
data = unserialize($input, ['allowed_classes' => ['SafeClass']]);

➡️Фильтруйте данные. Перед десериализацией проверяйте данные на соответствие ожидаемому формату. Не допускайте наличие кода или неожиданных объектов.
➡️Регулярно обновляйте PHP. Новые версии часто содержат исправления для известных уязвимостей. Используйте актуальную версию PHP.
➡️Проверяйте используемые библиотеки на наличие уязвимостей. К сожалению десер достаточная частая уязвимость, но не часто эксплуатируемая. На скрине вы сами видите сколько было только зарегано CVE с десериализацией. А о скольких мы не знаем?

Ваш опыт?
Сталкивались ли вы с такой багой на проектах? Какие рекомендации давали по защите? Делитесь своим опытом в комментариях)

Дополнительное чтиво
Небезопасная десериализация в PHP: Как создать собственный эксплойт - это статья от моего хорошего знакомого wr3dmast3r
Сериализация и десериализация: что это такое и как это работает - а это базовое чтиво по десеру в пыхе
PayloadsAllTheThings | PHP Deserialization - тут и так понятно что будет)

🌚 @poxek | 📺 YT | 📺 RT | 📺 VK | 🌚 Магазин мерча

BY Похек




Share with your friend now:
tgoop.com/poxek/4761

View MORE
Open in Telegram


Telegram News

Date: |

During the meeting with TSE Minister Edson Fachin, Perekopsky also mentioned the TSE channel on the platform as one of the firm's key success stories. Launched as part of the company's commitments to tackle the spread of fake news in Brazil, the verified channel has attracted more than 184,000 members in less than a month. On Tuesday, some local media outlets included Sing Tao Daily cited sources as saying the Hong Kong government was considering restricting access to Telegram. Privacy Commissioner for Personal Data Ada Chung told to the Legislative Council on Monday that government officials, police and lawmakers remain the targets of “doxxing” despite a privacy law amendment last year that criminalised the malicious disclosure of personal information. In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”. How to Create a Private or Public Channel on Telegram?
from us


Telegram Похек
FROM American