Перехват выполнения чужого скрипта

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Перехват выполнения чужого скрипта

Jevgenij » 15 сен 2004, 02:47

Sorry, 4to na latinice, s laptja pishu...

Vot ono, reshenije! es4o raz spasibo churu ;)

<?php
echo "Starting...
";
$vars = "log=tester&pass=qwerty";
$varlen = strlen($vars);
$sock = fsockopen ("127.0.0.1", 80, $errno, $errstr);

// Peredajem post scriptu proga.exe
fputs($sock, "POST /cgi/proga.exe? HTTP/1.0\r\n");
fputs($sock, "Host: www.somesite.net\n");
fputs($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($sock, "Content-length: {$varlen}\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "\r\n");
fputs($sock, "$vars\r\n");
fputs($sock, "\r\n");
// Videljajem header
$headers = "";
while ($str = trim(fgets($sock, 4096)))
$headers .= "$str\n";
// soxranjajem rezuljtat ispolnenija proga.exe v peremennuju $html
$html="";
while (!feof($sock)) { $html .= fgets($sock,1024); }
fclose ($sock);
echo $html;
?>

Jevgenij » 04 сен 2004, 15:29

Спасибо! Вот теперь все понятно! Это была последняя загвоздка.. Вечером попробую реализовать![/b]

chur » 04 сен 2004, 13:21

Должно выглядеть примерно так:

Код: Выделить всё

POST /script.exe HTTP/1.1
Host: somesite.net
Content-Type: application/x-www-form-urlencoded
Content-Length: 31

PASSWORD=mypass&USERNAME=myuser
Перед передачей данных обязательно должна быть пустая строка.

Jevgenij » 03 сен 2004, 18:38

В принципе понял - мыслил я правильно, через сокеты можно. Как я понял, надо будет этот самый POST передать с помощью socket_write(). Я полазил по нету и нашел следующую вещь:

POST http://swig.stanford.edu/ISPACE/ads.acc ... egatorHttp HTTP/1.1
X-User-Id: adsuser
X-Cmd-Tag: photoalbum
X-Bundle-Id: picture1
Content-Type: text/plain
Content-Length: 26

Если честно - не все из этого я понял. Как ее переделать под свои нужды? У меня 2 POST переменные PASSWORD и USERNAME. Может так?

POST http://somesite.net/script.exe? HTTP/1.1
USERNAME: $HTTP_POST_VARS[USERNAME]
PASSWORD: $HTTP_POST_VARS[PASSWORD]
Content-Type: text/plain
Content-Length: ??????? (здесь надо подсчитать длину логина и пароля?)

Вообще-то я по сетям и железу специализируюсь... А тут блин на работе привязались - ну никак не отвертется ;)

chur » 03 сен 2004, 18:06

В Perl есть модули - эмуляторы агентов пользователя (броузеры). Там все делается лекго и просто, хоть GET, хоть POST. Как в PHP это оформить я не знаю.
Прямо через сокеты, впрочем, тоже не большая проблема.

Jevgenij » 03 сен 2004, 15:17

Идея ясна. Вот только как его вызвать и передать POST переменную USERNAME? Просто проблема в том, что я пробовал сделать это через сокеты (очевидно это не совсем верный путь).
Да, к слову - привет, земляк!

chur » 01 сен 2004, 17:41

Из формы вызываешь свой скрипт, который в свою очередь вызывает чужой скрипт, делаешь с результатом все что надо и выдаешь пользователю.

Перехват выполнения чужого скрипта

Jevgenij » 01 сен 2004, 12:45

Как обработать средствами РНР результат выполнения чужого скрипта, вызванного из формы. Например:

<form action=http://somesite.net? method=post>
<input type=text name=USERNAME>
<input type=submit name=submit value='Login'>
</form>

Проблема в том, что чужой скрипт генерит HTML, где в одном из hidden полей хранится пароль (ну не умеют их программеры сессии создавать!).

Вернуться к началу