LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Якщо ви знайшли Local File Inclusion, навіть якщо у вас немає сесії і session.auto_start
вимкнено. Якщо session.upload_progress.enabled
включено і ви надаєте PHP_SESSION_UPLOAD_PROGRESS
у multipart POST даних, PHP включить сесію для вас.
Зверніть увагу, що з PHP_SESSION_UPLOAD_PROGRESS
ви можете контролювати дані всередині сесії, тому якщо ви включите свій файл сесії, ви зможете включити частину, яку контролюєте (наприклад, php shellcode).
Хоча більшість навчальних посібників в Інтернеті рекомендують встановити session.upload_progress.cleanup
на Off
для налагодження, за замовчуванням session.upload_progress.cleanup
у PHP все ще встановлено на On
. Це означає, що ваш прогрес завантаження в сесії буде очищено якомога швидше. Отже, це буде Race Condition.
У оригінальному CTF, де коментується ця техніка, було недостатньо експлуатувати Race Condition, але вміст, що завантажується, також повинен починатися зі стрічки @<?php
.
Через налаштування за замовчуванням session.upload_progress.prefix
, наш файл SESSION почнеться з набридливого префікса upload_progress_
, наприклад: upload_progress_controlledcontentbyattacker
.
Трюк, щоб видалити початковий префікс, полягав у тому, щоб кодувати payload 3 рази в base64 і потім декодувати його за допомогою фільтрів convert.base64-decode
, це пов'язано з тим, що при декодуванні base64 PHP видалить дивні символи, тому після 3 разів залишиться тільки payload, надісланий атакуючим (а потім атакуючий може контролювати початкову частину).
Більше інформації в оригінальному описі https://blog.orange.tw/2018/10/ та фінальному експлойті https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp_for_php.py Ще одне описання в https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/
Вчіться та практикуйте Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)