sqlite3 популярная база, но по ней очень мало ресёчей именно по внутреностям, самый известный, пожайлуй, от чекпоинта (линк)
В нём предложены интересные примитивы для эксплуатации sqlite3 через создание своей базы, по сути они просто придумали методы по спрею кучи, перехвату любого SELECT запроса и замены его на свой, конвертации указателей в числа и обратно и через крафт базы засплоитили багу в модуле fts3 (кстати, он включен не во всех версиях sqlite3).
Сетап описанный в статье не всегда такой удачный, например у вас может не быть fts3 или версия может быть старше, где баги уже не будет. Но интересен тот факт, что при инициализации базы вызывается код который генерит таблицы и прочие структуры (в статье это описано почти в самом начале и называется DDL(Data Definition Language)). То есть по сути мы можем выполнить любой SQL запрос на момент иницализации самой базы (на самом деле на момент вызова первого SELECT запрсоа). Звучит как-то опасно, но от этого есть защита.
В новых версиях защита заключается в том, что этот запрос может начинатсья только с CREATE (в коде это выглядит как strncmp()), то есть по сути вы сможете только создать новую табличку.
А вот в старых версиях такой проверки нет, но при этом нигде в интернете нет информации про такие атаки...
Это из-за того, что в старой версии вы по сути тоже не можете выполнить произвольные запросы, потому что любой запрос в sqlite3 базу конвертируется в байткод, а во время инициализации базы выполнение VDBE кода запрещено.
Интересно, зачем они добавили ещё одну проверку, в новых версиях, если в старых уже не работали произвольные запросы или может есть какие-то байпассы, но про них нигде в паблике нет..
*На первом скрине скриншот с описанием для старой версии sqlite3, на втором для новой*
В нём предложены интересные примитивы для эксплуатации sqlite3 через создание своей базы, по сути они просто придумали методы по спрею кучи, перехвату любого SELECT запроса и замены его на свой, конвертации указателей в числа и обратно и через крафт базы засплоитили багу в модуле fts3 (кстати, он включен не во всех версиях sqlite3).
Сетап описанный в статье не всегда такой удачный, например у вас может не быть fts3 или версия может быть старше, где баги уже не будет. Но интересен тот факт, что при инициализации базы вызывается код который генерит таблицы и прочие структуры (в статье это описано почти в самом начале и называется DDL(Data Definition Language)). То есть по сути мы можем выполнить любой SQL запрос на момент иницализации самой базы (на самом деле на момент вызова первого SELECT запрсоа). Звучит как-то опасно, но от этого есть защита.
В новых версиях защита заключается в том, что этот запрос может начинатсья только с CREATE (в коде это выглядит как strncmp()), то есть по сути вы сможете только создать новую табличку.
А вот в старых версиях такой проверки нет, но при этом нигде в интернете нет информации про такие атаки...
Это из-за того, что в старой версии вы по сути тоже не можете выполнить произвольные запросы, потому что любой запрос в sqlite3 базу конвертируется в байткод, а во время инициализации базы выполнение VDBE кода запрещено.
Интересно, зачем они добавили ещё одну проверку, в новых версиях, если в старых уже не работали произвольные запросы или может есть какие-то байпассы, но про них нигде в паблике нет..
*На первом скрине скриншот с описанием для старой версии sqlite3, на втором для новой*
🤔2
ТинькоФФ просто гении про прогреву гоев, взяли и поделили на два стоимость заблокированных акций (и насколько я прочитал из комментов, некоторым людям открыли возможность продажи части этих акций).
То есть банк предложил "удобный" способ возврата заблокированных акций, выкупая их у людей. Правда вот цену поделили пополам.
На скрине показано как это отображается у меня в ЛК (например NetEra Energy за акцию стоит 83.2 на бирже, а не 40)
То есть банк предложил "удобный" способ возврата заблокированных акций, выкупая их у людей. Правда вот цену поделили пополам.
На скрине показано как это отображается у меня в ЛК (например NetEra Energy за акцию стоит 83.2 на бирже, а не 40)
💩3
Отлаживаю я бинарь под ARM64 в следующем сетапе:
1. qemu-static запускает бинарь и открывает порт
2. gdb-multiarch через gef-remote коннектится к порту
Казалось бы, обычный сетап и всё норм, но все регистры и указатели отображаются как 32-битные, хотя у меня 64-битный бинарь.
Проблема оказалась внутри GEF-а, а именно в том, что класс ARM64 унаследован от ARM, а он в свою очередь от Architecture. Во всех этих класса определяется свойство "ptrsize" которое отвечает за отображения всех значений в листингах через команды gef-a.
А вот у ARM64 не было определено это свойство, в итоге оно наследовалось от ARM (а он 32-битный) и всё ломалось/некорректно отображалось.
Достаточно просто добавить его в описание класса ARM64 и всё будет норм отображаться.
P.S. А, в актуальной версии и так оно есть, видимо у меня старый gef
1. qemu-static запускает бинарь и открывает порт
2. gdb-multiarch через gef-remote коннектится к порту
Казалось бы, обычный сетап и всё норм, но все регистры и указатели отображаются как 32-битные, хотя у меня 64-битный бинарь.
Проблема оказалась внутри GEF-а, а именно в том, что класс ARM64 унаследован от ARM, а он в свою очередь от Architecture. Во всех этих класса определяется свойство "ptrsize" которое отвечает за отображения всех значений в листингах через команды gef-a.
А вот у ARM64 не было определено это свойство, в итоге оно наследовалось от ARM (а он 32-битный) и всё ломалось/некорректно отображалось.
Достаточно просто добавить его в описание класса ARM64 и всё будет норм отображаться.
@property
def ptrsize(self) -> int:
return self._ptrsize
P.S. А, в актуальной версии и так оно есть, видимо у меня старый gef
https://vxtwitter.com/furrtek/status/1625696498078867456
Ааа, так вот как выглядит хардварный хакинг, а я то думал...
Ааа, так вот как выглядит хардварный хакинг, а я то думал...
vxTwitter / fixvx
Furrtek (@furrtek)
Voltage glitching attack illustrated
💖 2343 🔁 400
💖 2343 🔁 400
🔥2🤔1
Обзор на еду из автомата ВкусВилла, стоящего у нас в офисе.
Цена: 228 рублей
Отзыв: Прикольная шавуха. Привкус у мяса действительно как с мангала/костра, не знаю правда ли на углях было приготовлено, но похоже. Овощей маловато и соуса. Лаваш не толстый и в целом приятный. При поглощении не развалилась.
Оценка: 6/10.
Цена: 228 рублей
Отзыв: Прикольная шавуха. Привкус у мяса действительно как с мангала/костра, не знаю правда ли на углях было приготовлено, но похоже. Овощей маловато и соуса. Лаваш не толстый и в целом приятный. При поглощении не развалилась.
Оценка: 6/10.
👍2
Цена: 226 рублей
Отзыв: Яблоки кажутся лишними, а так неплохой салат. Заправлен хорошо, тунца хотелось побольше, конечно. Как перекус отлично подходит.
Оценка: 7/10.
Отзыв: Яблоки кажутся лишними, а так неплохой салат. Заправлен хорошо, тунца хотелось побольше, конечно. Как перекус отлично подходит.
Оценка: 7/10.
🤔2
Столько раз выходил за зиму на улицу, когда там был гололёд и не посыпано.
Но именно сегодня первый раз упал на жопу. Сезон падений открыт и закрыт одновременно.
Но именно сегодня первый раз упал на жопу. Сезон падений открыт и закрыт одновременно.
😢2💩1