• XSS.stack #1 – первый литературный журнал от юзеров форума

Интерфейс.

t0xIc

HDD-drive
Пользователь
Регистрация
05.02.2006
Сообщения
39
Реакции
0
php скрипт который собирает ники с форумов.
Вроде всё нормально, но парит каждый раз лезть в код и менять настройки. Как прикрутить интерфейс что бы данные вводить в браузере а не менять в коде??? Вобщем :help: сам я в пхп не очень,знаний не хватит.
вот код:
Код:
<?
## © k1b0rg ##
$host="Сайт";
$papka="Папка с форумом";
$port=80;
$number_users=2050;
$start=1;
set_time_limit(0);
$file="user.txt";
$file=fopen($file,*w*);
for($i=$start;$i<=$number_users;$i++)
{$request="GET http://$host/$papka/profile.php?mode=viewprofile&u=$i HTTP/1.0\r\n";
$request.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, *\/*\r\n";
$request.="Accept-Language: ru\r\n";
$request.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$request.="Host: $host\r\n";
$request.="Proxy-Connection: Keep-Alive\r\n\r\n";
$sock=fsockopen("$host",$port,$errno,$errstr);
fputs($sock,$request);
while(!feof($sock))
{$str=fgets($sock);
if(preg_match("/nowrap=\"nowrap\">Профиль пользователя (.*)<\/th>/i",$str,$return))
{if(trim($return[1])!=**)
{fputs($file,"$return[1]\n");
}}}}
fclose($file);
fclose($sock);
?>
 
Толком не проверял,но с маленькими изменениями должно работать нормально:

Код:
<form action=<?php echo $PHP_SELF;?> method="get">
<input type="text" name="host_name" size="25" maxlength="256">

<input type="text" name="path" size="25" maxlength="256">

<input type="submit" value="Старт">
</form>

<?  	
######################################################################
#Проверка данных из формы,если они отсутствуют,то вывод самой формы
######################################################################
if($host_name == '' || $path == '')
   {
    die('<b>Не введены все параметры поиска</b>');
   }



######################
## © k1b0rg ##
$host = $host_name;    ###!!!###
$papka= $path;     ###!!!###
$port=80;
$number_users=2050;
$start=1;
set_time_limit(0);
$file="user.txt";
$file=fopen($file,'w');
for($i=$start;$i<=$number_users;$i++)
{$request="GET http://$host/$papka/profile.php?mode=viewprofile&u=$i HTTP/1.0\r\n";
$request.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, *\/*\r\n";
$request.="Accept-Language: ru\r\n";
$request.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$request.="Host: $host\r\n";
$request.="Proxy-Connection: Keep-Alive\r\n\r\n";
$sock=fsockopen("$host",$port,$errno,$errstr);
fputs($sock,$request);
while(!feof($sock))
{$str=fgets($sock);
if(preg_match("/nowrap=\"nowrap\">Профиль пользователя (.*)<\/th>/i",$str,$return))
{if(trim($return[1])!='')
{fputs($file,"$return[1]\n");
}}}}
fclose($file);
fclose($sock);
?>

Небольшое пояснение,здесь просто добавил форму,в которой указал, что она должна передать параметры той же странице на которой находиться методом гет

<form action=<?php echo $PHP_SELF;?> method="get">
В $PHP_SELF находиться имя запущенного скрипта.

Код:
if($host_name == '' || $path == '')
   {
    die('<b>Не введены все параметры поиска</b>');
   }
Тоже все понятно проверка соответствующих переменных,в которых находяться соответствующие значения полей формы(смотри их имена).... Я сам особо на пхп не кодю,но это должно работать, по крайне мере у меня скрипт траф гнал,только вот ников не находил,хз я на phpBB проверля.... Ты кстати что словарик решил себе сделать? :lol:
 
На сколько я вижу работает только по phpBB форумам
Код:
{$request="GET http://$host/$papka/profile.php?mode=viewprofile&u=$i
и ещё вопрос, если форум не www.site.com/forum а forum.site.com то как быть в данном случае?

ну и вот код где можно вводить и количество юзверей (для порта наверно лишнее было бы)
Код:
<html><head><title>Nick</title></head>
<body bgcolor="#C9C9C9">

<form action=<?php echo $PHP_SELF;?> method="get">
<input type="text" name="host_name" size="25" maxlength="256"> Url

<input type="text" name="path" size="25" maxlength="256"> Path

<input type="text" name="user" size="25"  maxlength="256"> Quantity of users

<input type="submit" value="Старт">
</form>
<?  
######################################################################
#Проверка данных из формы,если они отсутствуют,то вывод самой формы
######################################################################
if($host_name == '' || $path == '' || $user == '')
  {
   die('<b>Не введены все параметры поиска</b>');
  }



######################
## © k1b0rg ##
$host = $host_name;    ###!!!###
$papka= $path;     ###!!!###
$port=80;
$number_users= $user;
$start=1;
set_time_limit(0);
$file="user.txt";
$file=fopen($file,"w");
for($i=$start;$i<=$number_users;$i++)
{$request="GET http://$host/$papka/profile.php?mode=viewprofile&u=$i HTTP/1.0\r\n";
$request.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, *\/*\r\n";
$request.="Accept-Language: ru\r\n";
$request.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$request.="Host: $host\r\n";
$request.="Proxy-Connection: Keep-Alive\r\n\r\n";
$sock=fsockopen("$host",$port,$errno,$errstr);
fputs($sock,$request);
while(!feof($sock))
{$str=fgets($sock);
if(preg_match("/nowrap=\"nowrap\">Профиль пользователя (.*)<\/th>/i",$str,$return))
{if(trim($return[1])!="")
{fputs($file,"$return[1]\n");
}}}}
fclose($file);
fclose($sock);
?>
</body></html>
 
ammok
Спасибо! Тогда нужно убрать вот это
Код:
$path == '' ||
И последнее,хотелось бы сделать скрипт универсальным что бы ники выдирал не только с phpBB но и с IPB , ну и других популярных форумов. Сам я пока этого не добился :bang: Может у кого есть желание помоч?!
 
Вот собрал на скорую руку.
Поддерживает IPB и phpBB на русском языке, позже добавлю поддержку других форумов, других языков и автоматический подщет количества юзеров, юзайте...

Код:
<?php
// Дополненно и модифицированно ammok'om...
Error_Reporting(E_ALL & ~E_NOTICE);
if ($action == "") {
	echo "<form name=\"mainform\" method=\"get\">
	<table>
  <tr>
  	<td>
  	Хост:
  	</td>
  	<td>
  	<input name=\"host\" type=\"text\">
  	</td>
  </tr>
  <tr>
  	<td>
  	Порт:
  	</td>
  	<td>
  	<input name=\"port\" type=\"text\">
  	</td>
  </tr>
  <tr>
  	<td>
  	Папка:
  	</td>
  	<td>
  	<input name=\"papka\" type=\"text\">
  	</td>
  </tr>
  <tr>
  	<td>
  	Количество юзеров:
  	</td>
  	<td>
  	<input name=\"number_users\" type=\"text\">
  	</td>
  </tr>
  <tr>
  	<td>
  	Тип форума:
  	</td>
  	<td>
  	<select class=\"forminput\" name=\"forum\">
      <option value=\"ipb\">IPB</option>
      <option value=\"phpbb\">phpBB</option>
      </select>
  	</td>
  </tr>
  <tr>
  	<td>
  	</td>
  	<td>
  	<input value=\"Поехали\" class=\"button\" type=\"submit\">
  	<input name=\"action\" value=\"go\" type=\"hidden\">
  	</td>
  </tr>
	</table>
</form>";
}

if ($action == "go") {
	if ($_GET['host'] == "") { $err = "1"; }
	if ($_GET['port'] == "") { $port_v = "80"; }
  else { $port_v = $_GET['port']; }
	if ($_GET['papka'] == "") { $papka_v = ""; }
  else { $papka_v = $_GET['papka']."/"; }
	if ($_GET['number_users'] == "") { $err = "1"; }
	if ($_GET['forum'] == "ipb") { 
  $url_end = "index.php?showuser=";
  $fnd_str = "/Просмотр профиля: (.*)<\/div>/i";
	}
	if ($_GET['forum'] == "phpbb") { 
  $url_end = "profile.php?mode=viewprofile&u=";
  $fnd_str = "/nowrap=\"nowrap\">Профиль пользователя (.*)<\/th>/i";
	}
	
	if ( $err == "1" ) { print "Ошибочка..."; exit(); }
	
	$url = "http://".$_GET['host']."/".$papka_v.$url_end;
	$start=1;
	set_time_limit(0);
	$file="users.txt";
	$file=fopen($file,w);
	for($i=$start;$i<=$number_users;$i++)
	{
  $request="GET ".$url.$i." HTTP/1.0\r\n";
  $request.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, *\/*\r\n";
  $request.="Accept-Language: ru\r\n";
  $request.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
  $request.="Host: $host\r\n";
  $request.="Proxy-Connection: Keep-Alive\r\n\r\n";
  $sock=fsockopen($_GET['host'],$port_v,$errno,$errstr);
  fputs($sock,$request);
  while(!feof($sock))
  {
  	$str=fgets($sock);
  	if(preg_match($fnd_str,$str,$return))
  	{
    if(trim($return[1]))
    {
    	fputs($file,"$return[1]\n");
    }
  	}
  }
	}
	fclose($file);
	fclose($sock);
	echo "Все ништяк...";
}
?>
 
ammok
Респектище тебе огромный! :yahoo: Именно так я его себе и представлял,тольк реализовать не смог :fie: Немного потестил, вроде всё работает!
Отдельно спасибо Psixo!
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх