Новый ресурс
Перебрался с античата на https://rdot.org/ . Всем рекомендую ознакомиться с ресурсом, мусора пока мало, и есть что почитать.
З.Ы.
Для входа на форум нажмите на красный кружок в центре экрана, либо по ссылке: https://rdot.org/forum/ .
| Подписаться на RSS
Перебрался с античата на https://rdot.org/ . Всем рекомендую ознакомиться с ресурсом, мусора пока мало, и есть что почитать.
З.Ы.
Для входа на форум нажмите на красный кружок в центре экрана, либо по ссылке: https://rdot.org/forum/ .
Добиться утечки памяти в Java (равно как и .Net) конечно не так просто, как в C++, но всё же возможно. Недавно при написании нужного мне парсера наткнулся на утечку в jTidy.
Эта библиотека нужна для того, чтобы переводить невалидный HTML в валидный XHTML (который вполне соответствует стандарту XML). Дальше из полученного XHTML документа, при помощи XPath получаю нужные мне элементы. Это удобнее, чем разбирать документ при помощи регекспов, хотя и накладнее по памяти.
В общем, столкнулся я с проблемой, приложение падает с java.lang.OutOfMemoryError примерно через 3-4 часа работы. Сходу проблему обнаружить не удалось, пришлось запускать профайлер (в моём случае YourKit). Увидел такю картину:
Метки: garbage collector, java, jtidy, программированиеНесмотря на то, что интернет активно развивается уже более десяти лет, развитие сети пока так и не перешло на новый уровень. Почти все процессы которые легко можно было автоматизировать так или иначе должны выполняться при помощи человека, к примеру:
Метки: webservice, заметки, сеоНе уверен, что этот метод может быть где либо полезным, поэтому просто публикую как исследование ради исследований, может кто усовершенствует или найдёт СУБД, для которой подобное будет актуально.
Допустим у нас есть слепая скуля (но такая, что хоть какой-то вывод возможен), на что можем влиять:
Метки: Blind SQL injection, SQL Injection, исследованияВыпишу в блог все старые методы, ранее описанные на античате и в журнале «Хакер». В будущем подшаманю даты постов, чтобы более старые методы оказались ниже чем более новые.
Итак, поехали:
При работе MySQL выдаёт два типа ошибок: ошибки синтаксиса, которые можно отловить на этапе разбора строки и ошибки рантайма (времени выполнения) – те, которые можно выявить только во время выполнения запроса.
Типичной ошибкой синтаксиса является, к примеру ошибка:
ERROR 1146 (42S02): Table ‘lalala’ doesn’t exist
Наиболее известной в хакерской среде ошибкой времени выполнения является ошибка:
ERROR 1242: Subquery returns more than 1 row
Некоторое время назад мной была продемонстрирована методика получения значения поля в тексте выводимой ошибки, при слепой SQL инъекции. Методика была основана на использовании функции name_const(). Всё бы ничего, но смущает то, что эта функция полностью работоспособна только в MySQL версий 5.0.12-5.0.64.
Затем Дмитрием Евтеевым была продемонстрирована схожая методика основанная на использовании функции ExtractValue(), которая доступна начиная с MySQL 5.1.5.
В итоге получаем неплохое покрытие для MySQL 5й ветки. Для 4й ветки пока схожего варианта не было.
В связи с открытием блога, достаю из недр античата ещё один обнаруженный мной метод, который работает для MySQL всех версий начиная с 4.1 .
Метки: Blind SQL injection, MySQL, MySQL4, MySQL5, SQL Injection, исследования, палю приватВот традиция создавать технические блоги докатилась и до меня. В первую очередь создал ради эксперимента. Через несколько месцев постараюсь оценить результат