01/Nov/2010 Today I had the idea to code a better crawler for the social network revier1/easyland. This simple crawler needs a profile as an attack vector. In this sample I only save the username and the profile link. ############################################################################################### #!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use DBI; #database: my ($db_user, $db_name, $db_pass) = ('xxxxx', 'xxxxx', 'xxxxx'); my $dbh = DBI->connect("DBI:mysql:database=$db_name", $db_user, $db_pass); my @user; #attack vektor my $url = 'http://www.revier1.de'; my $iv = '/mitglieder/60560/1/AvRiLlAvIgNeGiRl.html'; #my $iv = '/mitglieder/1992/1/Andre1805.html'; #my $iv = '/mitglieder/14375/1/Schwelmer.html'; #my $iv = '/mitglieder/136133/1/Kenji_BeatZ.html'; #Browser my $ua = LWP::UserAgent -> new; $ua->agent('Mozilla/5.0'); #Av in Array push(@user,$iv); foreach(@user) { #read all friends of an user my $ufriend = $_; $ufriend =~ s/\/1\//\/freunde\//; my $res = $ua -> get($url.$ufriend); my $source = $res -> content; my @friends = ($source =~ m//g); foreach(@friends) { my $username = $1 if($_ =~ /\/1\/(.+)\.html/); my $link = "/mitglieder/$_"; my $aref = $dbh->selectall_arrayref("SELECT * FROM member where username='$username'"); if(@$aref == 0) { push(@user,$link); my $query_test = $dbh->prepare("INSERT INTO member (username,link) VALUES ('$username','$link')"); $query_test->execute() or die("fu\n"); } else { print "exists\n"; } } } $dbh->disconnect(); ############################################################################################### My database with some more information (like profile picture/location/school/...) http://no-trace.cc/crawl/user.php?start=0