mirror of
https://github.com/vanhauser-thc/thc-hydra.git
synced 2025-07-05 20:41:39 -07:00
fix replacement of user/pass placeholders in http header
This commit is contained in:
parent
8a2df9b8f2
commit
310068c9ca
1 changed files with 9 additions and 3 deletions
|
@ -314,9 +314,15 @@ void hdrrep(ptr_header_node *ptr_head, char *oldvalue, char *newvalue) {
|
||||||
|
|
||||||
for (cur_ptr = *ptr_head; cur_ptr; cur_ptr = cur_ptr->next) {
|
for (cur_ptr = *ptr_head; cur_ptr; cur_ptr = cur_ptr->next) {
|
||||||
if ((cur_ptr->type == HEADER_TYPE_USERHEADER || cur_ptr->type == HEADER_TYPE_USERHEADER_REPL) && strstr(cur_ptr->value, oldvalue)) {
|
if ((cur_ptr->type == HEADER_TYPE_USERHEADER || cur_ptr->type == HEADER_TYPE_USERHEADER_REPL) && strstr(cur_ptr->value, oldvalue)) {
|
||||||
cur_ptr->value = (char *)realloc(cur_ptr->value, strlen(newvalue) + 1);
|
size_t oldlen = strlen(oldvalue);
|
||||||
if (cur_ptr->value)
|
size_t newlen = strlen(newvalue);
|
||||||
strcpy(cur_ptr->value, newvalue);
|
if (oldlen != newlen)
|
||||||
|
cur_ptr->value = (char *)realloc(cur_ptr->value, strlen(cur_ptr->value) - oldlen + newlen + 1);
|
||||||
|
if (cur_ptr->value) {
|
||||||
|
char *p = strstr(cur_ptr->value, oldvalue);
|
||||||
|
memmove(p + newlen, p + oldlen, strlen(p + oldlen) + 1);
|
||||||
|
memcpy(p, newvalue, newlen);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
hydra_report(stderr, "[ERROR] Out of memory (hddrep).\n");
|
hydra_report(stderr, "[ERROR] Out of memory (hddrep).\n");
|
||||||
hydra_child_exit(0);
|
hydra_child_exit(0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue