House of Lore | Small bin Attack
Reading time: 3 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Основна інформація
Код
- Перевірте той, що з https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- Це не працює
- Або: https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- Це не працює, навіть якщо намагається обійти деякі перевірки, отримуючи помилку:
malloc(): unaligned tcache chunk detected
- Цей приклад все ще працює: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Мета
- Вставити фальшивий малий шматок у малий бін, щоб потім його можна було виділити.
Зверніть увагу, що доданий малий шматок є фальшивим, який створює зловмисник, а не фальшивим у довільній позиції.
Вимоги
- Створити 2 фальшивих шматки та зв'язати їх разом і з легітимним шматком у малому біні:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(вам потрібно змінити вказівник у звільненому малому бін шматку через якусь іншу уразливість)legit.bk
->fake0
Тоді ви зможете виділити fake0
.
Атака
- Малий шматок (
legit
) виділяється, потім виділяється ще один, щоб запобігти консолідації з верхнім шматком. Потімlegit
звільняється (переміщуючи його в список незасортованих бінів), і виділяється більший шматок, переміщуючиlegit
у малий бін. - Зловмисник генерує пару фальшивих малих шматків і робить необхідне зв'язування, щоб обійти перевірки:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(вам потрібно змінити вказівник у звільненому малому бін шматку через якусь іншу уразливість)legit.bk
->fake0
- Виділяється малий шматок, щоб отримати легітимний, роблячи
fake0
верхнім у списку малих бінів - Виділяється ще один малий шматок, отримуючи
fake0
як шматок, що потенційно дозволяє читати/записувати вказівники всередині нього.
Посилання
- https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- https://heap-exploitation.dhavalkapil.com/attacks/house_of_lore
- https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.