Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
miniupnpd_poc — miniupnpd <= v2.1 के लिए आउट-ऑफ़-बाउंड्स रीड PoC | Kitploit
उपकरण/GitHubGitHub/b1ack0wl/miniupnpd_poc
एम्बेडेड सिस्टम सुरक्षाIoT सुरक्षाभेद्यता विश्लेषणशोषणडेटा निष्कासनबाइनरी शोषण
GitHubb1ack0wl/miniupnpd_poc

miniupnpd_poc

miniupnpd <= v2.1 के लिए आउट-ऑफ़-बाउंड्स रीड PoC

रिपॉजिटरी देखें
21847 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Miniupnpd <=v2.1 रीड आउट-ऑफ-बाउंड्स भेद्यता (PoC)

  • यह भेद्यता miniupnpd की मास्टर ब्रांच में ठीक कर दी गई है (https://github.com/miniupnp/miniupnp/commit/bec6ccec63cadc95655721bc0e1dd49dac759d94)।
  • भेद्यता तब ट्रिगर होती है जब कॉलबैक uri obj->path के साथ एक SUBSCRIBE अनुरोध भेजा जाता है जो 526 बाइट्स से अधिक होता है।
  • मूल कारण snprintf() के रिटर्न मान को मान्य न करने के कारण है, क्योंकि snprintf() यह मान लौटाता है कि उसने कितने बाइट्स कॉपी कर सकता था, न कि यह कि उसने कितने बाइट्स कॉपी किए।
  • 25-जनवरी-2019 तक, इस repro के भीतर के PoC का Google Wifi के विरुद्ध सफलतापूर्वक परीक्षण किया गया है।
    • अन्य डिवाइस जो miniupnpd का उपयोग करते हैं वे भी असुरक्षित हो सकते हैं।

मूल कारण (upnpevents.c)

root@kitploit:~
static void upnp_event_prepare(struct upnp_event_notify * obj)
{

	obj->buffersize = 1024; /* Static Buffer Size */
	obj->buffer = malloc(obj->buffersize);
	[...]
	obj->tosend = snprintf(obj->buffer, obj->buffersize, notifymsg,
	                       obj->path, obj->addrstr, obj->portstr, l+2,
	                       obj->sub->uuid, obj->sub->seq,
	                       l, xml);
	obj->state = ESending;

static void upnp_event_send(struct upnp_event_notify * obj)
{
	int i;
	i = send(obj->s, obj->buffer + obj->sent, obj->tosend - obj->sent, 0);

snprintf() के लिए मैन पेज प्रविष्टि

root@kitploit:~
RETURN VALUE

Upon successful return, functions return the number of characters printed 
(excluding the null byte used to end output to strings).

The functions snprintf() and vsnprintf() do not write more than size bytes 
(including the terminating  null byte ('\0')).  If the output was truncated 
due to this limit, then the return value is the number of characters 
(excluding the terminating null byte) which would have been written to the 
final string if enough space had been available. Thus, a return value of size 
or more means that the output was truncated.

उपयोग

root@kitploit:~
usage: miniupnpd_poc.py [-h] [--callback_ip CALLBACK_IP]
                        [--callback_port CALLBACK_PORT] [--timeout TIMEOUT]
                        [--leak_amount LEAK_AMOUNT]
                        target_ip target_port

Miniupnpd <= v2.1 read out-of-bounds vulnerability

positional arguments:
  target_ip             IP address of vulnerable device.
  target_port           Target Port.

optional arguments:
  -h, --help            show this help message and exit
  --callback_ip CALLBACK_IP
                        Local IP address for httpd listener. (default: None)
  --callback_port CALLBACK_PORT
                        Local port for httpd listener. (default: None)
  --timeout TIMEOUT     Timeout for http requests (seconds). (default: 5)
  --leak_amount LEAK_AMOUNT
                        Amount of arbitrary heap data to leak (in Kb).
                        (default: 1)

वीडियो

asciicast

टूल डाउनलोड करें