web靶场——xss-labs靶机平台的搭建和代码审计

news2024/11/27 23:51:42

目录

一、web靶场-xss-labs靶机平台的搭建

1、将下载好的压缩包放置php的WWW根目录下

2、配置网站

3、启动MYSQL和Nginx

4、完成后我们就可以在浏览器输入127.0.0.1:8088进入靶场

二、xss-labs靶场通关攻略

第一关:

1、输入代码进行测试:源代码

我们直接将参数插入标题试一试

第二关:

1、尝试插入代码

2、查看网页源码

3、查看源代码

4、绕过思路

方法一:input标签

方法二:使用onclick点击事件

第三关:

1、尝试插入代码

2、查看网页源码

3、查看源码

4、绕过思路

方法一:onmouseover事件

方法二:onclick函数

第四关:

1、输入代码进行测试:

2、查看页面源码

3、查看源码

4、绕过思路

方法一:onmouseover标签:

方法二:onfocus标签:

第五关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

第六关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

第七关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

​​​​​​​4、绕过思路

第八关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码:

4、绕过思路

方法一:

原理:

第九关:

1、输入代码进行测试

2、查看网页源码

3、查看源码

4、绕过思路

方法一:

方法二:

第十关:

1、输入代码进行测试

2、查看网页源码

3、查看源码

4、绕过思路

方法一: 

方法二:

第十一关:

1、输入代码进行测试

2、查看网页源码:

3、查看源码

4、绕过思路

方法一:

方法二:

第十二关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路,参考第十关

方法一:

方法二:

第十三关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

方法一:

方法二:

第十四关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

第十五关:

1、输入代码进行测试

2、查看网页源码

3、查看源码

4、绕过思路

方法一:

方法二:

第十六关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

方法一:

方法二:

第十七关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

< embed >:外部内容嵌入元素

4、绕过思路

方法一:

方法二:

第十八关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

第十九关:

1、不管了,直接查看源码

2、绕过思路

第二十关:

1、直接查看源代码

2、绕过思路


一、web靶场-xss-labs靶机平台的搭建

githhub下载连接:https://github.com/do0dl3/xss-labs

配置环境:

php小皮面板下载:小皮面板(phpstudy) - 让天下没有难配的服务器环境! (xp.cn)

具体配置教程:VScode的PHP远程调试模式Xdebug奈何@@的博客-CSDN博客

1、将下载好的压缩包放置php的WWW根目录下

2、配置网站

这里我为了区别其他配置环境,新建了一个网站,

注意:

  • 端口号选择一个不被占用的端口

  • 根目录:‘\phpstudy\phpstudy_pro\WWW\xss-labs-master’

  • 最好使用5.xx本版

3、启动MYSQL和Nginx

4、完成后我们就可以在浏览器输入127.0.0.1:8088进入靶场

二、xss-labs靶场通关攻略

第一关:

1、输入代码进行测试:源代码

我们直接将参数插入标题试一试

通关成功!!!

过关总结: JS弹窗函数alert()

第二关:

可以看到这一关多了一个搜索框

​​​​​​​

1、尝试插入代码

我们尝试注入:

可见一些关键字可能被过滤了


 

2、查看网页源码

​​​​​​

3、查看源代码

htmlspecialchars函数对<>实体化转义

4、绕过思路

构造闭合input标签,将导致<转义的”闭合住,再次进行XSS注入

方法一:input标签

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

方法二:使用onclick点击事件

aa"οnclick="alert(1)

点击搜索框:

通关成功!!!

本关小结:闭合绕过

第三关:

个人感觉是第一关和第二关的结合体

1、尝试插入代码

"<script>alert(1 )<lscript>"

2、查看网页源码

可见,< > "" 都被实体化了 但是单引号貌似没有被转义

3、查看源码

htmlspecialchars函数对<>大于小于号进行html实体化

4、绕过思路

使用单引号构造闭合

'<script>alert(1)</script>' 

但是我发现即使闭合后提交搜索仍旧无法撤销,可以看到点击搜索框提交无法触发XSS

方法一:onmouseover事件

onmouseover事件的效果是当我们的鼠标碰到input标签的位置,也就是搜索框时,会执行onmouseover事件。最常与 <input>、<select> 和 <a> 标签一起使用,简单来说,onfocus事件就是当输入框被点击的时候,就会触发myFunction()函数,然后我们再配合javascript伪协议来执行javascript代码

' οnmοuseοver=javascript:alert(1) '

提交后我们把鼠标移到搜索框触发onmouseover事件。

方法二:onclick函数

aa’οnclick=‘alert(1)

点击搜索框:

通关成功!!!

本关小结: onfocus和onclick可以绕过html实体化(即<>号的过滤)

第四关:

1、输入代码进行测试:

我们尝试使用onmouseover进行XSS测试

无法触发

2、查看页面源码

可见这关将双引号给过滤了

3、查看源码

        过滤< > 大于小于号

4、绕过思路

我们尝试使用双引号进行闭合

方法一:onmouseover标签:

" οnmοuseοver=javascript:alert(1) "

方法二:onfocus标签:

" οnfοcus=javascript:alert() "

通关成功!!!

本关小结:onmouseover标签和onfocus标签+双引号闭合绕过

第五关:

1、输入代码进行测试:

尝试上一关XSS注入漏洞方式:

2、查看网页源码

尝试上一关XSS注入漏洞方式:发现on 被过滤

尝试用<script>注入:

可见script也被过滤了

但是我们查看此时网页界面,发现alert(1)逃逸出来,但是没有执行:

3、查看源码

$_GET["keyword"]
将所有字母转换成小写

4、绕过思路

尝试使用javascript伪协议绕过试试

知识点补充:JavaScript伪协议实际上是把javascript:后面的代码当JavaScript来执行,并将结果值返回给当前页面。

a href=javascript:alert('1')

还是未能绕过

查看web源码

发现<>被后面的>闭合,导致代码未能逃逸出来,无法执行,同时还有一个双引号防止双引号逃逸

因此,修改代码如下

添加一个标签得闭合前面的标签,构造闭合后新建一个=payload标签,在其中使用伪协议进行绕过

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

通关成功!!!

本关小结:可以插入标签(如<a>标签的href属性)达到js执行的效果,前提是闭合号<"">没失效

第六关:

我们先按前五关来测试一下

1、输入代码进行测试:

2、查看网页源码

可见这一关将href也给过滤了

3、查看源码

可见将script、on、src、data、href过滤了,也将所有字母转小写

4、绕过思路

其余关卡的执行代码测试之后也无法绕过

我们发现<> 、“ ”、‘ ’、script、href、javascript等都被过滤

这时我们换一个思路,我们尝试这一关的大小写是否被过滤

构造代码:

"><ScriPt>alert(1)</ScrIpt>

通关成功!!!

本关小结:大小写法绕过str_replace()函数

第七关:

老规矩,把上一关的代码进行测试:

1、输入代码进行测试:

​​​​​​​2、查看网页源码

可以发现,script直接变成了空值

3、查看源码

  • 将所有字母转小写

  • 过滤以下关键字:script、on、src、data、href

​​​​​​​4、绕过思路

我们换个思路——双写来对应替换成空值这一注入绕过问题

例如:script,可以写成scscriptipt,当script被删掉的时候,就变成了script

注意这个加入的script不能分开,识别到后这个加入的script会被替换成空值,剩下的部分自动拼接,执行时空格会被自动忽略。

"><sscriptcript>alert(1)</sscriptcript>

通关成功!!!

关小结:双拼写绕过删除函数

第八关:

1、输入代码进行测试:

2、查看网页源码

输入任意字符,查看其输出路径:

可见在href下输出

尝试使用javascript注入:

javascript:alert(1)

发现javascript被过滤了

尝试大小写绕过:

发现大小写也被过滤:

3、查看源码:

  • 将所有字母转换成小写

  • 将单引号 ' ' 替换为实体字符双引号 " "

  • 过滤以下关键字:script、on、src、data、href

4、绕过思路

尝试将javascript编写成urlcode代码进行绕过

<span style="background-color:#f8f8f8"><span style="color:#333333">javascript:alert(1)
javascript%3Aalert%281%29</span></span>

绕过失败,无法解析

方法一:

尝试利用利用href的隐藏属性自动Unicode解码,插入一段js伪协议尝试

原理:

编码顺序:urlcode html unicode javascript

因此,在使用html实体编码转义后javascript后,执行时首先将html 转换成javascript,从而绕过

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)

可见应该javascript已经插入到href中:

通关成功!!!

本关小结: href属性自动解析Unicode编码

第九关:

1、输入代码进行测试

aaaa

连接不合法?那我们加上合法连接模式

2、查看网页源码

http://www.baidu.com JavaScript:Alert(1);

可见javascript被过滤了

3、查看源码

可以看到和上一关差不多:

  • 将所有字母转换成小写

  • 将单引号 ' ' 替换为实体字符双引号 " "

  • 过滤以下关键字:script、on、src、data、href

但是其中加了一个if条件判断语句,如果传入的值中没有http://就会返回false

如果我们要想构造payload进行绕过,必须加入http://字符,但同时还要注释掉,否则无法触发

4、绕过思路

由于javascript被过滤了,我们尝试将script进行html编码,尝试绕过,同时将http://进行注释,从而构造payload进行绕过

方法一:

Java&#115;&#99;&#114;&#105;&#112;&#116;:Alert(1);//http://

没有报错

绕过成功!!!

方法二:

将http:// 放在alert(’ ‘)进行注释:

 java&#115;&#99;&#114;&#105;&#112;&#116;:alert('http://'

绕过成功!!!

本关小结:将javascript进行编码绕过,同时将指定必须要的字符http://加入并且注释掉即可

第十关:

1、输入代码进行测试

这一关没有input,我们首先在浏览框输入代码进行测试

2、查看网页源码

可以看见这一关有三个隐藏表单

没办法,我们来查看以下源码吧

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有三个隐藏表单

4、绕过思路

我们将隐藏表单的关键字拿出来依次尝试:

关键字t_link,传参失败

关键字t_history,传参失败

关键字t_sort,传参成功

由此可见传参值是t_sort

方法一: 

由于这里的输入框被隐藏了,我们使用onclick标签。添加type="text"来构造payload进行绕过

http://127.0.0.1:8088/level10.php?t_sort=aaaaa%22%20type=%22text%22%20onclick=%22alert(1)

过关成功!!!

方法二:

也可以使用onfocus事件构建payload进行绕过

http://127.0.0.1:8088/level10.php?t_sort=aaaaa%22%20onfocus=javascript:alert()%20type=%22text

过关成功!!!

本关小结:根据隐藏form表单的参数名,尝试哪一个是正确的传参值,之后在隐藏的input标签中插入type="text显示输入框,构造闭合payload进行绕过

第十一关:

1、输入代码进行测试

没有反应

2、查看网页源码:

出现了熟悉的隐藏表单

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤HTTP_ERFERER

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有四个隐藏表单

4、绕过思路

按照上一关的思路来

关键字t_link,传参失败

关键字t_history,传参失败

关键字t_sort,传参成功

关键字t_ref,传参失败

但是按照上一关尝试发现无法绕过:

发现这一关将双引号  " " 给转码了,导致无法闭合

我们换个思路,这一关有四个<input>标签的值都做了隐藏处理,最后一个t_ref的<input>标签是http头referer的参数

我们的传参思路出现错误,我们不应该在get里面传参,而是伪造http的head头,即REFERER进行传参

这时候我们需要使用一个很好用的渗透工具——Hackbar在firefox浏览器下安装老版本hackbar_奈何@_@的博客-CSDN博客

我们首先测试一下前三个是否能够在REFERER传参

在尝试t_ref下传参

可见传参成功

之后就和上一关思路大致相同

方法一:

使用onclick标签,添加type="text"来构造http头进行绕过

Referer:"type="text" onclick="alert(1)

过关成功!!!

方法二:

使用onfocus标签,构造一个http头进行绕过

Referer: " onfocus=javascript:alert(1) type="text

过关成功!!!

本关小结:本关主要是referer,伪造http的head头,在隐藏的input标签中插入type="text显示输入框,构造闭合payload进行绕过

第十二关:

1、输入代码进行测试:

2、查看网页源码

又出现四个隐藏<input>

根据上一关经验,肯定是User-Agent头,我们使用Hackbar工具插入测试代码

可见我们的猜想是正确的

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤HTTP_USER_AGENT

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有四个隐藏表单

4、绕过思路,参考第十关

方法一:

使用onclick标签,添加type="text"来构造UA头进行绕过

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

过关成功!!!

方法二:

使用onfocus标签,构造一个UA头进行绕过

" onfocus=javascript:alert(1) type="text

过关成功!!!

本关小结:思路和10,11关大致相同,主要是http头部传参

第十三关:

1、输入代码进行测试:

没什么头绪,我们来看一下网页源码:

2、查看网页源码

我们又看到了熟悉的配方——直接看一下cook

使用Hackbar进行测试

好了,到了这里思路就简单明了了

照例再查看一下源码

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 过滤tsort

  • 过滤>转义成空

  • 过滤<转义成空

  • 同时还有四个隐藏表单

4、绕过思路

参考10,11,12,13关

方法一:

使用onclick标签,添加type="text"来构造USER头进行绕过

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

过关成功!!!

方法二:

使用onfocus标签,构造一个USER头进行绕过

user=" onfocus=javascript:alert(1) type="text

过关成功!!!

本关小结:思路和10,11,12关大致相同,主要是http头部传参

第十四关:

1、输入代码进行测试:

2、查看网页源码

3、查看源码

4、绕过思路

由于这一关网站挂了,所以不在演示了

说一下思路吧

这一关是利用转跳的网站,在那网站去上传一个,属性里面含有xss代码的图片,以达到弹窗的效果

第十五关:

1、输入代码进行测试

没什么思路,直接看一下网页源码

2、查看网页源码

在如图所示的ng-include下输出,但是ng-include是什么?

ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号

3、查看源码

4、绕过思路

        既然ng-include指令就是文件包涵的意思,而这一关需要我们自己走出去,,并且ng-include可以包涵的内容是地址,需要加引号

因此,我们尝试采用ng-include包含一下第一关的html,看能否绕过这一关

127.0.0.1:8088/level15.php?src='/level1.php'

 

可以看见我们已经将第一关的html包含到第十五关,那么接下来我们该怎么做呢?

我们先测试一下这一关过滤了那些东西

src= ' " <>%20 AAaa OnCliCK <script> <a hReF=javascript:alert()>

可见,' " <> 空格都被过滤了,由此可猜测又html实体化函数存在

这时我们可以选择在包含第一关的html 后在这一页面将触发第一关的绕过,但是这里不能包涵那些直接弹窗的东西如<script>,但是可以包涵那些标签的东西比如<a>、<input>、<img>、<p>标签等等,这些标签是能需要我们手动点击弹窗的),这里我们使用input标签

方法一:

?src='/level1.php?name=<input src=1 onmouseover=alert()>'

当鼠标移动到输入框时就出发了弹窗

绕过成功!!!

方法二:

也可以使用p标签,构造payload

?src='/level1.php?name=<p onmousedown=alert()>aaa</p>'

点击aaa即可绕过

绕过成功!!!

本关思路:ng-include文件包涵,可以无视html实体化

第十六关:

1、输入代码进行测试:

没什么思路,查看网页源码

2、查看网页源码

可见aaaaa插入到了center标签中

依旧没什么思路,直接看源码

3、查看源码

可以看到:

  • 将所有字母转换成小写

  • 将script转换成空格,然后将空格实体化

  • 将 / 转换成空格,然后将空格实体化

4、绕过思路

空格已经不能用了,那我们查一下可以代替空格的编码

  • 在URL中,空格通常被编码为 "%20"

  • 在HTML中,空格通常被编码为 " " 或 " "

  • 可以用回车来代替绕过,回车的url编码是%0a

方法一:

将空格替换构造payload

?keyword=<svg%20onload=alert(1)>

绕过成功!!!

方法二:

也可以用img标签构造payload绕过

keyword=<img%0Asrc=1%0aonerror=alert(1)>

绕过成功!!!

本关思路:回车代替空格绕过检测

第十七关:

1、输入代码进行测试:

这里可以看见他能传两个参数:a,b

没什么思路,测试一下关键字吧

?arg01=" ' / sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>;

2、查看网页源码

可以见到添加了html转义字符,但是embed标签是什么?

3、查看源码

可以看到后缀名为swf的文件(FLASH插件的文件,现在很多浏览器都不支持FLASH插件了)

< embed >:外部内容嵌入元素

HTML <embed> 元素将外部内容嵌入文档中的指定位置。此内容由外部应用程序或其他交互式内容源(如浏览器插件)提供。​​​​​​​

4、绕过思路

方法一:

你有FLASH插件

构造payload

?arg01=a&arg02 onfocus=alert(1)

绕过成功!!!

方法二:

没有FLASH插件

将后端第十七关的代码(level17.php)指向的swf文件改为index.png

保存后再次打开十七关:

好大一张脸!!

接着我们构造payload进行绕过

?arg02= onclick=alert()

绕过成功!!!

本关小结:< embed >:外部内容嵌入元素与触发事件

第十八关:

1、输入代码进行测试:

看起来和17关差不多

2、查看网页源码

果然出现了embed:外部内容嵌入元素

看来解决思路和上一关基本相同

3、查看源码

4、绕过思路

直接测试一波过滤,构建Payload进行绕过

?arg02=" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>;

还是html实体化函数

这一次我在FLASH中心浏览器进行测试,这个浏览器具备FALSH环境

?arg02= onmousedown=alert()

点击一下黑色embed标签区域:

绕过成功!!!

本关小结:FLASH插件

第十九关:

1、不管了,直接查看源码

2、绕过思路

又是embed,直接上上一关payload

?arg02= onmousedown=alert()

发现被双引号给闭合了

换个思路,使用javascript

?arg01=version&arg02=<a href="javascript:alert()">here</a>

绕过成功!!!

第二十关:

1、直接查看源代码

2、绕过思路

可见这里也有双引号闭合,没办法,直接构建palyoad

详细参考这篇文章:XSS-labs Level 20 Flash XSS_baynk的博客-CSDN博客

?arg01=id&arg02=xss\"))}catch(e){alert(1)}//%26width=123%26height=123

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

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

相关文章

Linux——(第三章)Vi和Vim编辑器

目录 1.Vi和Vim的基本介绍 2.Vi和Vim三种模式的切换 3.一般模式 4.编辑模式 5.指令模式 1.Vi和Vim的基本介绍 Vi是Unix操作系统和类Unix操作系统中最通用的文本编辑器。 Vim编辑器是从Vi发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性&…

Python怎么实现更高效的数据结构和算法? - 易智编译EaseEditing

要实现更高效的数据结构和算法&#xff0c;你可以考虑以下几个方面的优化&#xff1a; 选择合适的数据结构&#xff1a; 选择最适合你问题的数据结构至关重要。例如&#xff0c;如果需要频繁插入和删除操作&#xff0c;可能链表比数组更合适。如果需要高效查找操作&#xff0…

加餐1|辞职问题:古人怎么写高端辞职信?

好诗相伴&#xff0c;千金不换。你好&#xff0c;我是天博。 我们这一讲是加餐&#xff0c;我想聊的是&#xff0c;古人是怎么处理我们现实生活里的一些难题的&#xff0c;比如古人是怎么面试的&#xff0c;怎么辞职的。在加餐里&#xff0c;我不会主讲某首诗&#xff0c;而是…

跨源资源共享(CORS)Access-Control-Allow-Origin

1、浏览器的同源安全策略 没错&#xff0c;就是这家伙干的&#xff0c;浏览器只允许请求当前域的资源&#xff0c;而对其他域的资源表示不信任。那怎么才算跨域呢&#xff1f; 请求协议http,https的不同域domain的不同端口port的不同 好好好&#xff0c;大概就是这么回事啦&…

高效能,一键批量剪辑,AI智剪让创作更轻松

在今天的数字化时代&#xff0c;视频制作已经成为各种行业和领域的必备技能。然而&#xff0c;视频剪辑过程往往繁琐且耗时&#xff0c;大大降低了我们的工作效率。幸运的是&#xff0c;随着人工智能技术的发展&#xff0c;我们有了新的解决方案——AI智剪软件。 AI智剪软件&am…

4年外包出来人废了,5个面试挂了4个....

我的情况 大概介绍一下个人情况&#xff0c;男&#xff0c;毕业于普通二本院校非计算机专业&#xff0c;18年跨专业入行测试&#xff0c;第一份工作在湖南某软件公司&#xff0c;做了接近4年的外包测试工程师&#xff0c;今年年初&#xff0c;感觉自己不能够再这样下去了&…

Spring源码解析-构造函数

1、构造函数概述 构造函数中&#xff0c;主要创建两个对象分别用来读取注解参数和classpath下的文件 AnnotatedBeanDefinitionReader 专门读取注解参数的Reader ClassPathBeanDefinitionScanner 专门读取classpath下的文件&#xff0c;例如yml、properties等。 AnnotationC…

hive指定字段插入数据,包含了分区表和非分区表

1、建表 语句如下&#xff1a; CREATE EXTERNAL TABLE ods_lineitem_full (l_shipdate date,l_orderkey bigint,l_linenumber int,l_partkey int,l_suppkey int,l_quantity decimal(15, 2),l_extendedprice decimal(15, 2),l_discount de…

专题:跨域数据管理

点击上方蓝字关注我们 2023年2月&#xff0c;中共中央、国务院印发《数字中国建设整体布局规划》&#xff0c;指出建设数字中国是数字时代推进中国式现代化的重要引擎&#xff0c;加快数字中国建设&#xff0c;对全面建设社会主义现代化国家、全面推进中华民族伟大复兴具有重要…

JVM详细教程

JVM 前言 还在完善中先发布 JVM虚拟机厂家多钟多样&#xff0c;具体实现细节可能不一样&#xff0c;这里主要讲的是虚拟机的规范&#xff0c;以下内容融合了各个平台发布的内容和周志明老师的《深入理解java虚拟机》 JVM概述 如何理解jvm跨平台&#xff1f; 编译成汇编代码…

供应商多样性:减少电子元器件供应链风险

供应商多样性是为了减少电子元器件供应链风险而采取的一项重要战略。以下是一些关于如何通过供应商多样性来降低风险的方法&#xff1a; 多供应商采购策略&#xff1a; 不要依赖于单一供应商&#xff0c;而是寻找多个可靠的供应商。这有助于分散风险&#xff0c;当一个供应商出…

大数据的关键技术之——大数据采集

大数据的关键技术之——大数据采集 本文目录&#xff1a; 一、写在前面的话 二、大数据采集概念 三、大数据采集步骤 3.1、大数据采集步骤&#xff08;总体角度&#xff09; 3.2、大数据采集步骤&#xff08;数据集角度&#xff09; 3.3、大数据采集步骤&#xff08;数据…

PyQt5报错Process finished with exit code -1073740791 (0xC0000409)

点击按钮之后&#xff0c;就直接退出程序&#xff0c;控制台出现一个提示&#xff1a;解决办法&#xff1a; 在PyCharm中打开Run菜单&#xff0c;找到Edit Configurations进入&#xff0c;勾选Emulate terminal in output console即可。 然后再运行一下程序&#xff0c;就可以…

贴片排阻的基本原理和应用

贴片排阻&#xff08;Surface Mount Resistor&#xff0c;简称SMD Resistor&#xff09;是一种用于控制电流、电压、分压信号、限制电流等的电子元件&#xff0c;它的基本原理是根据欧姆定律&#xff0c;电阻与电流和电压之间的关系&#xff0c;通过电阻值来控制电路中的电流和…

【腾讯云 Cloud Studio 实战训练营】使用python爬虫和数据可视化对比“泸州老窖和五粮液4年内股票变化”

Cloud Studio 简介 Cloud Studio是腾讯云发布的云端开发者工具&#xff0c;支持开发者利用Web IDE&#xff08;集成开发环境&#xff09;&#xff0c;实现远程协作开发和应用部署。 现在的Cloud Studio已经全面支持Java Spring Boot、Python、Node.js等多种开发模板示例库&am…

正中优配:证券账户除了炒股还可以干啥?

大部分出资者开一个证券账户是用来买卖股票的&#xff0c;殊不知&#xff0c;证券账户除了买卖股票之外&#xff0c;还能够干许多其他的出资&#xff0c;下面正中优配为大家准备了相关内容&#xff0c;以供参阅。 证券账户除了炒股之外还能够干以下出资&#xff1a; 1、购买基…

智能电力监控平台

智能电力监控平台依托电易云-智慧电力物联网&#xff0c;综合采用物联网、云计算、边缘计算&#xff0c;人工智能等”现代化信息技术将配电室进行远程集中监控&#xff0c;实时监测配电室设备运行状态、电参量、配电室环境等&#xff0c;可以有效降低隐患风险。 智能电力监控平…

这么近,那么美,到天津看大爷跳水

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 小黑 运营 / SandLiu 卷圈 监制 / 姝琦 现场采访 / 朱峰、姝琦 产品统筹 / bobo 场地支持 / 声湃轩天津录音间 日前&#xff0c;天津局部持续下“大爷”。连续多日的下“大爷”让天津这座城市接棒淄博烧烤&#xff0c…

算法 数据结构 什么是递归 递归解决阶乘 阶乘递归代码 递归解决问题 递归反向打印字符串 数据结构(七)

递 归&#xff1a; 计算机科学中&#xff0c;递归是一种解决计算问题的方法&#xff0c;其中解决方案取决于同一类问题的更小子集 In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instan…

代码随想录算法训练营之JAVA|第四十三天|139. 单词拆分

今天是第 天刷leetcode&#xff0c;立个flag&#xff0c;打卡60天。 算法挑战链接 139. 单词拆分https://leetcode.cn/problems/word-break/ 第一想法 看完之后完全没有想法。 看完代码随想录之后的想法 这是一个完全背包的问题&#xff0c;使用完全背包的解法。 单词就…