mirror of
https://github.com/vanhauser-thc/thc-hydra.git
synced 2025-07-05 20:41:39 -07:00
pre-8.0 fixes
This commit is contained in:
parent
76c6145106
commit
ebbd664e07
18 changed files with 199 additions and 129 deletions
27
hydra-xmpp.c
27
hydra-xmpp.c
|
@ -4,7 +4,6 @@
|
|||
/* david: ref http://xmpp.org/rfcs/rfc3920.html */
|
||||
|
||||
extern char *HYDRA_EXIT;
|
||||
char *buf;
|
||||
static char *domain = NULL;
|
||||
|
||||
int xmpp_auth_mechanism = AUTH_ERROR;
|
||||
|
@ -22,7 +21,7 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
char *CHALLENGE_END_STR = "</challenge>";
|
||||
char *RESPONSE_STR = "<response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>";
|
||||
char *RESPONSE_END_STR = "</response>";
|
||||
char *fooptr;
|
||||
char *fooptr, *buf;
|
||||
|
||||
if (strlen(login = hydra_get_next_login()) == 0)
|
||||
login = empty;
|
||||
|
@ -49,9 +48,10 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
|
||||
hydra_send(s, buffer, strlen(buffer), 0);
|
||||
usleep(300000);
|
||||
buf = hydra_receive_line(s);
|
||||
if ((buf = hydra_receive_line(s)) == NULL)
|
||||
return 3;
|
||||
|
||||
if (verbose)
|
||||
if (debug)
|
||||
hydra_report(stderr, "DEBUG S: %s\n", buf);
|
||||
|
||||
if ((strstr(buf, CHALLENGE_STR) != NULL) || (strstr(buf, CHALLENGE_STR2) != NULL)) {
|
||||
|
@ -72,7 +72,7 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
buffer2[chglen] = '\0';
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
from64tobits((char *) buffer, buffer2);
|
||||
if (verbose)
|
||||
if (debug)
|
||||
hydra_report(stderr, "DEBUG S: %s\n", buffer);
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
|
||||
hydra_tobase64((unsigned char *) buffer2, strlen(buffer2), sizeof(buffer2));
|
||||
sprintf(buffer, "%s%.250s%s", RESPONSE_STR, buffer2, RESPONSE_END_STR);
|
||||
if (verbose)
|
||||
if (debug)
|
||||
hydra_report(stderr, "DEBUG C: %s\n", buffer);
|
||||
if (hydra_send(s, buffer, strlen(buffer), 0) < 0) {
|
||||
free(buf);
|
||||
|
@ -126,7 +126,7 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
memset(buffer2, 0, sizeof(buffer));
|
||||
sasl_plain(buffer2, login, pass);
|
||||
sprintf(buffer, "%s%.250s%s", RESPONSE_STR, buffer2, RESPONSE_END_STR);
|
||||
if (verbose)
|
||||
if (debug)
|
||||
hydra_report(stderr, "DEBUG C: %s\n", buffer);
|
||||
|
||||
}
|
||||
|
@ -140,11 +140,12 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
|
||||
rc = sasl_saslprep(login, SASL_ALLOW_UNASSIGNED, &preplogin);
|
||||
if (rc) {
|
||||
free(buf);
|
||||
return 3;
|
||||
}
|
||||
|
||||
sprintf(buffer, "%.200s %.250s", preplogin, buffer2);
|
||||
if (verbose)
|
||||
if (debug)
|
||||
hydra_report(stderr, "DEBUG C: %s\n", buffer);
|
||||
hydra_tobase64((unsigned char *) buffer, strlen(buffer), sizeof(buffer));
|
||||
sprintf(buffer2, "%s%.250s%s", RESPONSE_STR, buffer, RESPONSE_END_STR);
|
||||
|
@ -157,9 +158,11 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
memset(buffer2, 0, sizeof(buffer2));
|
||||
fooptr = buffer2;
|
||||
sasl_digest_md5(fooptr, login, pass, buffer, domain, "xmpp", NULL, 0, NULL);
|
||||
if (fooptr == NULL)
|
||||
if (fooptr == NULL) {
|
||||
free(buf);
|
||||
return 3;
|
||||
if (verbose)
|
||||
}
|
||||
if (debug)
|
||||
hydra_report(stderr, "DEBUG C: %s\n", buffer2);
|
||||
hydra_tobase64((unsigned char *) buffer2, strlen(buffer2), sizeof(buffer2));
|
||||
snprintf(buffer, sizeof(buffer), "%s%s%s", RESPONSE_STR, buffer2, RESPONSE_END_STR);
|
||||
|
@ -172,6 +175,7 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
int rc = sasl_saslprep(login, SASL_ALLOW_UNASSIGNED, &preplogin);
|
||||
|
||||
if (rc) {
|
||||
free(buf);
|
||||
return 3;
|
||||
}
|
||||
|
||||
|
@ -181,6 +185,7 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
hydra_tobase64((unsigned char *) buffer2, strlen(buffer2), sizeof(buffer2));
|
||||
snprintf(buffer, sizeof(buffer), "%s%s%s", RESPONSE_STR, buffer2, RESPONSE_END_STR);
|
||||
|
||||
free(buf);
|
||||
if (hydra_send(s, buffer, strlen(buffer), 0) < 0) {
|
||||
return 1;
|
||||
}
|
||||
|
@ -274,7 +279,7 @@ int start_xmpp(int s, char *ip, int port, unsigned char options, char *miscptr,
|
|||
|
||||
void service_xmpp(char *target, char *ip, int sp, unsigned char options, char *miscptr, FILE * fp, int port) {
|
||||
int run = 1, next_run = 1, sock = -1, tls = 0;
|
||||
char buffer[500];
|
||||
char buffer[500], *buf = NULL;
|
||||
int myport = PORT_XMPP, mysslport = PORT_XMPP_SSL, disable_tls = 0;
|
||||
char *enddomain = NULL;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue