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

news2024/12/24 9:53:24

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:
舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:web安全,后渗透技术

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

 

 

一、伪随机数爆破

题目:web25

训练平台:ctfshow

题目描述爆个🔨,不爆了

开启容器页面如下 

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

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

3、若此时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版本跑出来的种子有两个,分别是

361284794
3041033333

先试试 

 361284794

再来看剩下的代码

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

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

代码如下

 得到三次随机数的值

1093633598
1103641603
859442013

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

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

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

 

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

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

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

相关文章

Springboot启动之自定义run方法

前言 之前分析的Springboot启动过程的源码分析中给自己留了一个扩展作业:执行自定义的run方法,此方法在B.7、调用运行器简单分析过,今天咱们就自定义一个Run方法试试。 一、实现自定义的run方法 由于java中的接口可以多实现,所以…

IOS----TangramKit 布局框架

文章目录系统结构CocoaPods安装举例下面一个应用场景:布局线性布局TGLinearLayout相对布局TGRelativeLayout框架布局TGFrameLayout表格布局TGTableLayout流式布局TGFlowLayout浮动布局TGFloatLayout路径布局MyPathLayoutgithub: https://github.com/youngsoft/TangramKit/blob…

day32【代码随想录】回溯之N皇后、N皇后||、解数独、有效的数独

文章目录前言一、N皇后(力扣51)二、N皇后||(力扣52)三、解数独(力扣37)四、有效的数独(力扣36)前言 1、N皇后、 2、N皇后||、 3、解数独、 4、有效的数独 一、N皇后(力扣…

材料表征仪器:慢正电子束谱仪最全知识讲解

1 引言 21世纪科学的发展将是微观与宏观的相互渗透与密切结合。凝聚态物理、材料科学等的研究,将由现在的宏观统计方法(包括宏观量子统计)深入发展到物质的原子层次物性研究,微观粒子(颗粒、孔隙)的量子效…

求最大公约数,求阶乘,求n个n相乘的末两位数(Python)

问题 AN: 41.求最大公约数 题目描述 对于求两个正整数m&#xff0c;n的最大公约数可以用do-while实现 输入 输入两个正整数m&#xff0c;n 输出 最大公约数 样例输入 1 2 样例输出 1 a,b map(int,input().split()) if a<b:a,b b,a#python很方便的交换操作 #适应判断不带…

MySQL复制技术方案——异步复制配置

为MySQL服务器配置复制非常简单。但由于场景不同&#xff0c;基本的步骤还是有所差异。最基本的场景是新安装的主库和备库&#xff0c;总的来说分为以下几步∶ 1. 配置复制 为MySQL服务器配置复制非常简单。但由于场景不同&#xff0c;基本的步骤还是有所差异。最基本的场景是…

HTML5 Canvas

文章目录HTML5 Canvas概述Canvas元素使用绘制直线画2条直线用直线画三角形用直线画矩形绘制矩形描边矩形填充矩形混合使用rect()清空矩形区域清空画布绘制多边形画箭头画正三角形绘制圆形HTML5 Canvas 概述 HTML5新增了一个Canvas元素&#xff0c;我们常说的Canvas技术&#…

【LeetCode】填充每个节点的下一个右侧节点指针 [M](二叉树遍历)

116. 填充每个节点的下一个右侧节点指针 - 力扣&#xff08;LeetCode&#xff09; 一、题目 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node { int val; Node *left; Node *…

通过webpack解决浏览器兼容问题

前言 很多面试时都会问到关于浏览器兼容问题&#xff0c;正好最近在看webpack打包&#xff0c;那就在这里记录一下我们如何通过webpack来实现兼容。 需求 要知道我们到底需要兼容那些浏览器&#xff0c;在这里就需要用到browserlist来配置需要兼容的浏览器版本并告诉webpack…

Jenkins自动部署项目

目录 1.安装插件 2.配置 本文只讲解通过插件来自动部署项目&#xff0c;Jenkins的安装可以看博主的另一篇文章&#xff0c;绝对保姆级&#xff0c;简洁丝滑的安装教程&#xff1a; jenkins下载安装__BugMan的博客-CSDN博客 1.安装插件 目前业内常用的解决方法是使用publish…

程序员必备十大网站

窝窝整理了十大程序猿必备网站&#xff0c;涵盖了开源平台、搜索引擎、免费的精品课程&#xff0c;包括让你头疼的BUG、算法等。偷偷告诉你&#xff0c;还有帮你拿到心仪的 offer&#xff01; 一&#xff0c;海量的资源平台 十大网站榜首 &#xff1a;GitHub — 开发者极其重…

图查询语言 nGQL 简明教程 vol.01 快速入门

本文旨在让新手快速了解 nGQL&#xff0c;掌握方向&#xff0c;之后可以脚踩在地上借助文档写出任何心中的 NebulaGraph 图查询。 视频 本教程的视频版在B站这里。 准备工作 在正式开始 nGQL 实操之前&#xff0c;记得先看过文档「快速入门流程」&#xff0c;部署、连接过 …

《小强升职记》读后感

为什么平庸&#xff1f; 成功的人每天都在忙碌&#xff0c;平庸的人每天也在忙碌&#xff0c;而时间对每个人来说是绝对公平的&#xff0c;那么&#xff0c;两者之间的差距到底是如何产生的呢? 第一&#xff0c;在这个人生的关键时期&#xff0c;我们被迫完成角色的转变。 …

C语言 字符函数和字符串函数及模拟实现

上图注意内容 代码解释如下 int main() {if (my_strlen("abc") - my_strlen("abcdef") > 0){printf(">\n");}else{printf("<\n");}return 0; }my_strlen int my_strlen(const char* str) {int count 0;//计数器assert(str…

Springboot AOP切面

文章目录SpringBoot Aop切面(Aop)一、什么是切面二、切面的用途三、AOP切面常用注解四、详细内容1、切面&#xff08;Aspect&#xff09;2、连接点&#xff08;Joinpoint&#xff09;3、通知&#xff08;Advice&#xff09;4.切入点&#xff08;Pointcut&#xff09;五、代码操…

PMP是什么?PMP证书有什么用?(含PMP资料)

PMP介绍 PMP的英文全称是Project Management Professional&#xff0c;中文全称叫做项目管理专业人士资格认证。 它是由美国项目管理协会(PMI)在全球范围内推出的针对项目经理的资格认证体系&#xff0c;严格评估项目管理人员知识技能是否具有高品质的资格认证考试&#xff0…

学习:如何使用Axure制作网站、app结构图

​“老师&#xff0c;axure里面可以制作网站的结构图吗&#xff1f;” “结构图只能在脑图工具中才能画吗&#xff1f;能不能直接在axure里面直接画&#xff1f;” “结构图到底需不需要做&#xff1f;对我来说好像没什么用呢” 在同学们的学习当中&#xff0c;有部分同学对…

CIO你好,现在是时候我们来谈一下“去”中台的问题了

去中台是个什么鬼 去中台&#xff1f;要不我去XXXXXXX 首先&#xff0c;你看到这个标题有没有懵圈&#xff1f;是不是有一种。。。 的感觉&#xff1f; 不过我现在告诉你&#xff0c;你没有看错。这篇文章是正儿八经的来谈“去”中台的。只不过这个“去”字&#xff0c;打着…

数据结构(链表)

链表及其实现 链式结构 顺序表插入、删除时间代价的分析&#xff0c;可以看出其时间复杂度是线性阶的&#xff0c;而且会引起大量已存储元素的位置移动。 改进方法&#xff1a;链式结构 各个元素的物理存放位置在存储器中是任意的&#xff0c;不一定连续。每个元素放在一个独…

国产新冠口服药重大突破:疗效不劣于Paxlovid,且安全性更高

*仅供医学专业人士阅读参考最近一段时间&#xff0c;新型冠状病毒感染&#xff08;Covid-19&#xff09;人数的激增&#xff0c;让全国多地迎来了重症“冲击波”&#xff0c;医疗卫生系统承受着极大的压力。 在新冠治疗药物方面&#xff0c;我国当前情况如何&#xff1f;最近Pa…