文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【Ctfer训练计划】——(六)

2023-08-31 11:28

关注

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:
一切为了她
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:web安全,后渗透技术

每日emo:别来我梦里了,我已负担不起醒来的失落

题目:web25

训练平台:ctfshow

题目描述爆个🔨,不爆了

开启容器页面如下 

  那这就是一道分析代码的题了,我们来仔细读一下代码的逻辑,为了节省时间就不慢慢读了,给出逻辑如下

首先GET传参传入一个r变量,再将flag经过md5加密截取前8位字符,并将截取的字符串转换为10进制,以转换后的十进制作为mt_srand()函数的种子
2、再定义一个rand变量,值为传入的r变量的值-mt_rand()生成的随机数

若此时cookie中的token参数的值=mt_rand()第二次产生的随机数的值+第三次产生的随机数的值,那么就输出flag,否则输出rand变量的值

 这里的种子(seek)没有明确给出,毕竟flag我们不知道,所以我们需要逆推出种子(seed),仔细看看这段代码

 仔细观察,发现根据这个代码逻辑当我们传入的r为0时,rand的值就是负的mt_rand()产生的随机值,而我们就是要通过这个随机值倒推回flag,所以我们先GET传入r,值为0,如下

 所以flag经过一系列并作为种子后产生的随机数为

1093633598 

 但是知道mt_rand()产生的随机数怎么逆推mt_srand()函数的种子呢?这里就要给大家介绍一个工具了,专门用来跑mt_srand()种子和 mt_rand()随机数的,名字叫php_mt_seed

下载网站:Al1ex/php_mt_seed: php_mt_seed is a PHP mt_rand() seed cracker (github.com)

下载好后放到kali里面,步骤如下

unzip php_mt_seed-master.zip解压Github自带的压缩包cd php_mt_seed-master进入解压后的文件tar zxvf php_mt_seed-4.0.tar.gz解压要用的脚本cd php_mt_seed-4.0进入解压后的工具目录make源码编译,使用后当前目录生成可执行文件chmod 777 php_mt_seed-4.0赋予执行权限

到这里工具的配置就完成了,工具的使用也很简单,用法如下

time ./php_mt_seed 需要逆推的随机数

例如这道题,命令如下

time ./php_mt_seed 1093633598 

这个工具就会自己根据随机数去逆推种子的值,效果如下

 注意:因为伪随机数生成规则随php版本变化而变化,所以该工具会给出不同版本的种子答案,并且该工具有时跑出来的答案不唯一,需要一个个试,但问题不大,猜测作者用的是php7环境,如果不对的话我们再换就行,上面结果中php版本跑出来的种子有两个,分别是

3612847943041033333

先试试 

 361284794

再来看剩下的代码

  意思是当rand等于0时,若token的值等于mt_rand()函数第二次和第三次产生的随机数之和时,打印出flag,先看看什么情况下rand=0呢?就是我们传入的r的值等于mt_rand()产生的第一个随机数时

所以这里mt_rand()产生的三个随机数我们都要用,那我们直接写个代码得到这三个随机数的值

代码如下

 得到三次随机数的值

10936335981103641603859442013

所以我们按代码中输出flag的要求传入参数

首先把第二次和第三次随机数相加的值传入cookie的token参数,如下

再GET传参传入r,值为产生的第一个随机数 ,结果如下

那么到这里这道题就拿下了, Game over,明天见同学们,有什么问题随时欢迎私信问哦。

来源地址:https://blog.csdn.net/qq_63844103/article/details/128486475

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯