首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UPnP端口映射实现过程(一)

第一步是发现 控制点再往上搜索感兴趣的设备,而设备向网络中宣告其服务。对于自动端口映射来说就是发现带UPnP功能的路由器。这一过程主要分两步。...第一步,使用数据包套接字向239.255.255.250:1900,发送一条多播请求。...M-SEARCH * HTTP/1.1 (SSDH协议定义的搜索方法请求) HOST: 239.255.255.250:1900 (保留地址,用于多点传送) MAN:"ssdp:discover..." MX:3 (最长等待时间) ST:UPnP:rootdevice (搜索目标) 第二步,网络中存在UPnP设备的话,为了被找到,设备必须向发送查找的多播通道的源...IP和端口发送响应消息,所以你可以从239.255.255.250:1900这个地址接受到响应消息,其中有设备描述URL。

2.6K20

SSDP协议_sntp协议

其实SSDP协议的请求就三种: byebye, alive, discovery byebye请求 NOTIFY * HTTP/1.1 Host: 239.255.255.250:1900 NT: someunique...,但是为什么NTS和NT搞混了呢……协议中写得非常明白 5.3.5...._MR::upnp:rootdevice CACHE-CONTROL说明这个设备状态至少在100秒内不会过期,过期时,所有设备就必须要刷新这信息,如果得不到新的数据,则认为此设备不可用。...:3 M-SEARCH 说明这是强制的搜索方法(由Mandatory Extensions in HTTP中的Mandatory HTTP Requests确定) ST (search term)搜索条件...,指明需要搜索的设备,可以是类型,服务,甚至是UUID,至于怎么回应嘛……那是服务端的事了 Man M-SEARCH请求必须带的数据项,值必须为“ssdp:discover” MX 优先级,数字越高,优先级越低

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    gb28181协议详解_GB28181收费吗

    为什么我在给其他员工或者面试得时候要他人深入一些,理解一下http协议,是因为理解了http协议,掌握ssdp也就不远了,很多人可能会问:http协议有啥内容,无非就是get,post,put,delete...,应该收到很多设备发出得信息,例如摄像头信息,你一定会搜到,不过,这一段代码搜索不到?...为什么?...这样,就会搜索到所有信息,当然了,我们可以使用过滤,只搜索部分协议,比如就是摄像头,其他设备忽略。...2、发现谁在发现 除了搜索设备,我们还需要知道谁往我们得服务地址发送了搜索地址得需求,因为我们是一个设备,其他在gb28181 服务中,我们需要知道sip 网守和网关得设备,可能有多个这种设备,我们则需要知道谁正需要发现设备

    1.7K20

    Netgear Nighthawk R8300 upnpd PreAuth RCE 分析与复现

    下面分享一份 nvram 配置,至于为什么这么设置,可以查看对应的汇编代码逻辑(配置的有问题的话很容易触发段错误)。...这是由于 strncpy() 在拷贝时,如果 n 不会自动添加 \x00,也就是结果 dest 不包括 \x00,...影响范围 通过 ZoomEye 网络空间搜索引擎对关键字 "SERVER: Linux/2.6.12, UPnP/1.0, NETGEAR-UPNP/1.0" 进行搜索,共发现 18889 条 Netgear...在我们的模拟环境中进行测试,发送 132 bytes 的 ST: ssdp:all M-SEARCH 查询请求 ,服务器响应了 4063 bytes 的数据,放大倍率高达 30.8。...因此,建议网络管理员禁止 SSDP UDP 1900 端口的入站请求。 ? pocsuite -r upnp_ssdp_ddos_poc.py -u 192.168.2.2 -v 2 ,------

    1.9K20

    老司机带我飚车(2)一个有趣的漏洞PoC调试

    我们访问:http://119.60.***.***/logs/ 出现了如下界面: ? ? 点击进去发现内容如下,啧啧啧。都是最新的用户和他们的JSESSIONID ?...Wooyun的那位大牛说用百度搜索引擎,但是在大数据的时代,我还是用网络空间搜索引擎搜索。 这里以fofa为例子,规则:app="用友-致远OA" && title ="A8" ?...用某牛的话来说,凭什么说python性能比ruby好,为什么msf用ruby写的。我默默的翻开《Head First Ruby》,继续学习了。 填好信息之后,切换至测试界面。 ?...这点我不认哈,因为最右边还有个编辑器呢~ 这样框架生成一个子类继承框架的父类。...因为fofascan中有自定义变量这个东西,所谓的自定义变量就是多次请求的时候,用正则等方法取到响应的值做第二次请求,这个请求的值我们称之为自定义变量。

    1.5K60

    爬取数据缺失的补坑,Python数据爬取的坑坑洼洼如何铲平

    为什么要设置imeou=x呢? 避免网络延迟,程序卡死,死机,连报错都不会出现,一直停滞在网页访问的过程中,这在 pyinstaller 打包的exe程序 使用中尤为常见!...超时(timeout) 为防止服务器不能及时响应,大部分发至外部服务器的请求都应该带着 timeout 参数。...在爬虫代理这一块我们经常会遇到请求超时的问题,代码就卡在哪里,不报错也没有requests请求的响应。...通常的处理是在requests.get()语句中加入timeout限制请求时间 req = requests.get(url, headers=headers, proxies=proxies, timeout...as e: print(e) print(time.strftime('%Y-%m-%d %H:%M:%S')) max_retries 为最大重试次数,重试3次,加上最初的一次请求,一共是4

    1.9K40

    Python:requests:详解超时和重试

    网络请求不可避免会遇上请求超时的情况,在 requests 中,如果不设置你的程序可能会永远失去响应。 超时又可分为连接超时和读取超时。...import time import requests url = 'http://www.google.com.hk' print(time.strftime('%Y-%m-%d %H:%M:%S...简单的说,连接超时就是发起请求连接到连接建立之间的最大时长,读取超时就是连接成功开始到服务器返回响应之间等待的最大时长。...如果要分别制定,就传入一个元组: r = requests.get('https://github.com', timeout=(3.05, 27)) 黑板课爬虫闯关的第四关正好网站人为设置了一个15秒的响应等待时间...超时重试 一般超时我们不会立即返回,而会设置一个三次重连的机制。

    5.8K31

    详解Python实现采集文章到微信公众号平台

    GET请求: URL参数通常与HTTP的GET请求一起使用。在GET请求中,参数会被附加到URL上,而在POST请求中,参数通常包含在请求体中。...简单和无副作用:GET请求被设计为安全和幂等的,这意味着重复执行相同的GET请求应该得到相同的结果,且不会对服务器的数据状态产生改变。...GET请求还包括HTTP请求头部,其中可能包含浏览器类型、接受的响应格式、语言偏好等信息。...一般用到GET的场景有: 检索数据:当需要从服务器获取数据时使用,如加载网页、图片、视频或任何其他类型的文件。 搜索查询:在搜索引擎中输入查询,提交的就是一个GET请求。...3.POST 它与GET请求相比,通常用于发送数据到服务器以便更新或创建资源。POST请求主要用于向服务器提交数据,通常不会被缓存。这些数据通常用于更新现有资源或创建新资源。

    87354

    GET/POST 请求区别详解(接口测试实战)

    URL上,所以不能用来传递敏感信息 GET请求参数会给完整保留在浏览器历史记录里,而POST的参数不会被保留 GET请求只能进行url编码,而POST支持多种编码方式 GET请求被浏览器主动cache,...而POST不会,除非手动设置 GET产生的url地址可以被bookmark,而POST不可以 GET在浏览器回退时是无害的,而POST会再次提交请求 深入: GET和POST本质上没有区别 GET和POST...HTTP给汽车运输设定了好几个服务类别,有GET, POST, PUT, DELETE等等, HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上...长的说: 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送...这两个模块中,如果仅仅是支持 http 协议的 url 请求,推荐使用 requests 模块。为什么这么说呢?因为爱因斯坦说过一句话:简洁就是美。

    3.9K00

    使用 DNS-SD 和 SSDP 扫描内网主机

    (这里我们只讨论在内网环境下 DNS-SD 使用的场景,DOMAIN=.local) 使用 Python scapy 包的功能展示该请求和响应报文格式(未显示字段为默认值): [3.dnssd.local...查询(scapy)] 随后再以目标的服务名称为查询名,发送 PTR 记录 DNS 查询报文,查询服务的详细信息,请求和响应报文格式如下: [4.service详情查询(scapy)] 响应报文的附加字段里包含了服务的详细信息...,请求和响应报文会附加一些主机信息(RFC文档未强制规定),我们同样可以利用这一点来扫描内网主机。...除此之外,如果设置 SSDP 请求报文中 ST: ssdp:all 字段,并将报文发向组网地址 239.255.255.250:1900,SSDP 服务端收到报文后,会将自身服务响应给源地址,响应报文格式如下...://foo/bar> Server:Microsoft-Windows/6.3 UPnP/1.0 UPnP-Device-Host/1.0 通过解析响应报文提取 Server 字段,也可以获得主机的操作系统信息

    5.2K10

    http请求中get和post方法的区别

    HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。...不会产生动作意味着GET和HEAD的HTTP请求不会在服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改信息。...get请求: 1.png post请求: 2.png 三、为什么get比post更快 1.post请求包含更多的请求头 因为post需要在请求的body部分包含数据,所以会多了几个数据描述部分的首部字段...OK响应 get请求的过程: (1)浏览器请求tcp连接(第一次握手) (2)服务器答应进行tcp连接(第二次握手) (3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http...(3)post能发送更多的数据类型(get只能发送ASCII字符) (4)post比get慢 (5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交

    4.3K31

    复现|路由器命令执行

    4 漏洞分析 首先需要分析出这37215端口的应用程序「此处对应的程序为upnp|怎么查找端口对应的程序可以参照我们之前的一篇文章」,然后对该程序进行逆向。...从POC中可以分析,注入点是在,通过在Ghidra中搜索该字符串,并查找交叉引用,找到目标函数「IDA不大行,没法F5,我也不知道为啥,求知道的师傅讲解」: 我们可以看到这sprinf...通过查阅资料,我们发现了salt@腾讯玄武实验室师傅对该漏洞的探索,如下: 要成功发起该请求需要满足以下两点:一是成功通过服务器端的HTTP基础认证,二是构造XML攻击代码。...接下来就是如何用表单来构造一个XML的请求包了 https://paper.seebug.org/498/ 最终,salt师傅构造的CSRF攻击payload如下: <body onload='document.forms...攻击发起者的昵称为Nexus Zeta 研究人员确认了漏洞后,就通报给华为,华为安全团队非常给力,很快对该漏洞进行了响应和修复,并提供了补丁 关于该僵尸漏洞的详细信息,可以阅读如下报告:https:/

    1.6K10

    前端面试题ajax_前端性能优化面试题

    创建XMLHttpRequest对象,也就是创建一个异步调用对象 (2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息 (3)设置响应HTTP请求状态变化的函数 (4)发送...8,请解释 JSONP 的工作原理,以及它为什么不是真正的 AJAX。 jsonp的工作原理是,动态的创建了一个全局方法,并且动态生成script标签,将script标签的src属性变为(接口地址?...方法,生成了假象的ajax,所以jsonp只能做get类型请求 9,请解释一下 JavaScript 的同源策略。...(2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息. (3)设置响应HTTP请求状态变化的函数. (4)发送HTTP请求. (5)获取异步调用返回的数据....重要内容HTML代码放在最前:搜索引擎抓取HTML顺序是从上到下,有的搜索引擎对抓取长度有限制,保证重要内容一定会被抓取 重要内容不要用js输出:爬虫不会执行js获取内容 少用iframe:搜索引擎不会抓取

    2.4K10

    性能工具之Taurus使用(入门篇)

    例如,一个简单的测试,其中有 10 个并发用户,启动时间为 1 分钟,持续时间为 2.5 分钟,并使用 HTTP GET 请求访问 example.com 网站,看起来很简单: 编写 example.yml...# 测试场景 default-address: http://www.example.com/ # 请求地址 requests: - include-scenario: my_scenario...Taurus 不会在 YAML 和 JSON 之间进行区分,并且能够使用任何格式,因此任何一种都很好; errors.jtl:启用了所有诊断字段的 XML 格式的 JMete 结果文件。...能够在“ 查看结果树”监听器中查看完整的请求和响应详细信息; example.yml:通过命令行提供给 Taurus 的 YAML 配置文件; jmeter-bzt.properties:任何 JMeter...如前所述,就 JMeter 而言,Taurus 提供以下报告: 运行时的摘要控制台 测试结束时的统计数据; 2个.jtl 结果文件: CSV-适用于成功的采样器; XML-包含请求/响应的完整详细信息的失败采样器

    3K21

    WebSocket 从入门到写出开源库

    为什么会有 WebSocket 以前,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。...相对于HTTP请求需要等待客户端发起请求服务端才能响应,延迟明显更少;即使是和Comet等类似的长轮询比较,其也能在短时间内更多次地传递数据。 保持连接状态。...与HTTP不同的是,Websocket需要先创建连接,这就使得其成为一种有* 状态的协议,之后通信时可以省略部分状态信息。而HTTP请求可能需要在每个请求都携带状态信息(如身份认证等)。...To this end, the WebSocket client's handshake is an HTTP Upgrade request: GET /chat HTTP/1.1...保持连接 刚才提到 WebSocket 协议是双向通信的,那么一旦连接上,就不会断开了吗?

    1.1K40

    Nginx开启OCSP的弊端以及优化方案

    ,Nginx才开始去请求OCSP响应并缓存到本地,并且当OCSP响应缓存过期的时候并不会去主动更新,而是等待客户端访问异步触发的更新; 这样就会导致总会有几次访问并没有走OCSP响应缓存从而导致还是会有访问速度缓慢的情况发生...最好的办法就是我们人工去请求OCSP响应并保存到本地,Nginx直接加载保存好的响应信息就行了; 这里我自己编写了Shell脚本去定时请求OCSP响应信息并保存到本地,利用 Nginx 的 ssl_stapling_file...指令直接读取本地响应信息,这样就不会去实时查询证书的OCSP服务器,在进行SSL握手的时候直接将本地的响应信息进行下发,极大的加快了访问速度。...(date +"%Y-%m-%d %H:%M:%S") '-----域名:'$SITE '开始请求OCSP响应------' >> $LOGFILE # 请求 ocsp 响应并保存到本地文件 openssl.../getOCSP.sh abc.com //PS:后边的参数为需要获取OCSP响应的域名 运行后就会在指定的目录生成OCSP响应文件了 112.png 4.Nginx读取OCSP响应文件 这时的Nginx

    3.3K30
    领券