ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

21.05.2008, 18:04
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Сойдет?
http://rapidshare.com/files/116525700/sender.php
|
|
|

21.05.2008, 18:47
|
|
Новичок
Регистрация: 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
|
|
|

24.05.2008, 11:17
|
|
Участник форума
Регистрация: 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";
@$fp= fsockopen($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($fp, 1024);
}
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)
|
|
|

24.05.2008, 13:22
|
|
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..
|
|
|

24.05.2008, 14:21
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
Коментируем не нужный ифреймы( те что 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){
$out= preg_replace_callback("#($keys)#i", create_function('$matches','return "<!---- $matches[0] --->";'),$out);}
return $out;}}
|
|
|
Работаем с Keep-alive и HTTP/1.1 |

24.05.2008, 21:16
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме: 4137635
Репутация:
2407
|
|
Работаем с 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==0 ? 0 : 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==0 ? '' : array();
$carr=array_unique($cook[1]);
$cookies=implode('; ',$carr);
return $ret==0 ? $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(); //закрываем соединение
?>
|
|
|

27.05.2008, 21:54
|
|
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==0 ? 0 : 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==0 ? '' : array();
$carr=array_unique($cook[1]);
$cookies=implode('; ',$carr);
return $ret==0 ? $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(); //закрываем соединение
?>
|
|
|

01.06.2008, 06:40
|
|
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
|
|
|

02.06.2008, 03:46
|
|
Новичок
Регистрация: 21.04.2008
Сообщений: 21
Провел на форуме: 354059
Репутация:
29
|
|
Кто небудь выложите скрипт ( php ) при помщи которого можно произвести анонимную загрузку фаила! Или кто может подправте мой!
<?php
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('Location: http://*********.$ref);
exit();
Этот скрипт грузит но толко выскакивает окно (dowlad или скачать)
Помогите усовершенствовать этот скрипт чтоб пройдя по сылке человек даже не заподозрил что он что-то скачал и запустил например Пинч или какой небудь BackDoor!
Или выложите пожалуста свой!
Зарание Спасибо!
|
|
|

02.06.2008, 11:23
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
921
|
|
Сообщение от Daro
Кто небудь выложите скрипт ( php ) при помщи которого можно произвести анонимную загрузку фаила! Или кто может подправте мой!
<?php
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('Location: http://*********.$ref);
exit();
Этот скрипт грузит но толко выскакивает окно (dowlad или скачать)
Помогите усовершенствовать этот скрипт чтоб пройдя по сылке человек даже не заподозрил что он что-то скачал и запустил например Пинч или какой небудь BackDoor!
Или выложите пожалуста свой!
Зарание Спасибо!
обсуждалось много раз..ищи под каждый брауезер свой сплойт...иначе не сделаешь ты ничего подобного
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|