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

这篇具有很好参考价值的文章主要介绍了【Ctfer训练计划】——(六)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者名:Demo不是emo 

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

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

php_mt_seed,Ctfer训练计划,python,开发语言

一、伪随机数爆破

题目:web25

训练平台:ctfshow

题目描述爆个🔨,不爆了

开启容器页面如下 

php_mt_seed,Ctfer训练计划,python,开发语言  那这就是一道分析代码的题了,我们来仔细读一下代码的逻辑,为了节省时间就不慢慢读了,给出逻辑如下

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

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

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

php_mt_seed,Ctfer训练计划,python,开发语言

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

php_mt_seed,Ctfer训练计划,python,开发语言

 所以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_mt_seed,Ctfer训练计划,python,开发语言

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

361284794
3041033333

先试试 

 361284794

再来看剩下的代码

php_mt_seed,Ctfer训练计划,python,开发语言

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

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

代码如下

php_mt_seed,Ctfer训练计划,python,开发语言

 得到三次随机数的值

1093633598
1103641603
859442013

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

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

php_mt_seed,Ctfer训练计划,python,开发语言

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

php_mt_seed,Ctfer训练计划,python,开发语言

那么到这里这道题就拿下了, Game over,明天见同学们,有什么问题随时欢迎私信问哦。文章来源地址https://www.toymoban.com/news/detail-796608.html

到了这里,关于【Ctfer训练计划】——(六)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GAN的训练技巧:炼丹师养成计划 ——生成式对抗网络训练、调参和改进

    生成对抗网络(GAN:Generative adversarial networks)是深度学习领域的一个重要生成模型,即两个网络(生成器和鉴别器)在同一时间训练并且在极小化极大算法(minimax)中进行竞争。这种对抗方式避免了一些传统生成模型在实际应用中的一些困难,巧妙地通过对抗学习来近似一些

    2023年04月08日
    浏览(40)
  • CSP认证-现值计算、训练计划、JPEG 解码、聚集方差

    65分解法如下:

    2024年02月12日
    浏览(54)
  • 【剑指offer|图解|链表】删除链表的节点 + 训练计划 V

    🏠 个人主页:@聆风吟的个人主页 🔥系列专栏:本期文章收录在专栏《剑指offer每日一练》中,大家有兴趣可以浏览和关注,后面将会持续更新更多精彩内容! ⏰寄语:少年有梦不应止于心动,更要付诸行动。 🎉欢迎大家关注🔍点赞👍收藏⭐️评论📝 🌈作者留言:文章

    2024年02月08日
    浏览(51)
  • 【机器学习】随机种子Random Seed介绍(在Python、Pytorch、TensorFlow中的设置代码汇总)

    Random seed(随机种子) 是在生成随机数时使用的起始点。它用于控制随机数生成器产生随机数的序列。设置了随机种子后,每次生成的随机数序列将是确定性的,这意味着可以在不同的运行中获得相同的随机数序列,从而使实验可复现。 在机器学习中,确保实验的可复现性是

    2024年02月05日
    浏览(66)
  • CCF- CSP 202212-2训练计划 详细思路 满分题解(结尾附自编测试用例)

    CCF- CSP 202212-2训练计划 详细思路 满分题解 题目链接:CCF- CSP 202212-2训练计划 思路: 测试数据满足 0n365,0m100 ,一般情况下不会超时,该题目大概率不是考察算法优化时间复杂度,重点应该放到算法实现上 对于最早开始时间,思路比较简单:如果当前科目没有依赖,则最早开

    2024年02月13日
    浏览(36)
  • MT8766安卓核心板/开发板_MTK联发科4G安卓手机主板方案定制开发

    MT8766采用台积电 12 nm FinFET 制程工艺,4*A53架构,Android 9.0操作系统,搭载2.0GHz 的 Arm NEON 引擎。提供了支持最新 OpenOS 及其要求苛刻的应用程序所需的处理能力,专为具有全球蜂窝连接的高移动性和功能强大的平板设备而设计。 该处理器还配备600MHz主频的超强IMG GE8300 GPU,可流

    2024年01月24日
    浏览(72)
  • MT8788安卓核心板详细参数_MTK安卓主板开发板智能通讯模块

    MT8788安卓核心板集成了一个高效的12nm SoC,内置4G LTE调制解调器,将强大的硬件与到处可连接的全面功能设计相结合。 MTK8788智能终端具备许多功能,包括4G、2.4G/5G双频WiFi、蓝牙4.2BLE、2.5W功放、USB、mipi屏接口、三路摄像头接口、GPS和各种传感器等等。MTK8788智能终端还采用了

    2024年02月09日
    浏览(60)
  • MTK联发科天玑9000旗舰5G移动平台处理器_MT6983芯片定制开发

    MT6983天玑9000采用台积电4纳米工艺制程,CPU采用“1+3+4”三丛集Armv9架构,APU性能提升,ISP处理速度提升,最高支持3.2亿像素摄像头,采用Mali-G710十核GPU,搭载R16 5G调制解调器。  MT6983天玑9000芯片基本概述: 性能提升 9000采用台积电4纳米工艺制程、Armv9架构,采用“1+3+4三丛集

    2024年02月05日
    浏览(56)
  • MT6785(Helio G95)安卓核心板_联发科4G高能低耗安卓主板开发板

    MTK6785(Helio G95)安卓核心板采用八核 CPU 具有两个强大的 Arm Cortex-A76 处理器内核,主频高达 2.05GHz,外加六个 Cortex-A55 高效处理器。其强大的图形性能由 Arm Mali-G76 MC4 提供,速度可提升至 900MHz 。高达 10GB 的 2133MHz 的 LPDDR4X 提供了充足的带宽,同时支持 UFS 2.1 存储产生超快的

    2024年02月07日
    浏览(43)
  • 安卓4G核心板开发板_MTK6785/MT6785(Helio G95)安卓手机主板方案

    联发科MTK6785(Helio G95)安卓核心板采用八核 CPU 具有两个强大的 Arm Cortex-A76 处理器内核,主频高达 2.05GHz,外加六个 Cortex-A55 高效处理器。其强大的图形性能由 Arm Mali-G76 MC4 提供,速度可提升至 900MHz 。 MTK6785核心板概述: MT6785核心板集成了蓝牙、FM、WLAN和GPS模块,是一个高

    2024年02月14日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包