ctfshow-web入门-爆破(web25)及php_mt_seed工具的安装与使用

爆个🔨,不爆了 

hexdec() 函数用于将十六进制字符串转换为十进制数;

注意:

我最开始做这道题时看错了,误以为随机数的种子直接来自于 flag 的前八位,以为就是 ctfshow{

这八个字符然后 md5 加密再截取,其实这里不是的,是先对 flag 整体进行 md5 加密后再截取出来的 8 位转为十进制后,作为随机数的种子,这里正确获取随机数的方法是令 r 等于 0 。

从后面的 if((!$rand)){ ,需要为真才会执行后面输出 flag 的语句,因此 $rand 需要为 0 ,而 $rand = intval($r)-intval(mt_rand()); 换句话说就是 intval($r) 需要等于 intval(mt_rand())。

我们令 r=0,就可以得到 $rand = -intval(mt_rand()),只要设置了 r,就会 echo $rand;

因此我们可以得到 mt_rand() = 646081337

但是这里还有一个问题:token==mt_rand()+mt_rand()

看似 token 就是 mt_rand() 的两倍,但是并不能单纯的将 token = 2*mt_rand()

看一个简单的测试:

<?php
mt_srand(123456);
$rand1 = mt_rand();
$rand2 = mt_rand();
echo $rand1,"\n",$rand2;
?>

都是一样的种子,但是第一次和第二次生成的随机数结果是不一样的 

这里正确的做法是由随机数逆推种子,理论上可以通过写脚本爆破,但是太慢了。

这里推荐 php_mt_seed:一个专门用于从已知随机数逆推出 Mersenne Twister 种子的工具。

在 kali 安装 php_mt_seed,我这里直接从 github 克隆:

git clone https://github.com/openwall/php_mt_seed

切换到 php_mt_seed 目录下:

cd php_mt_seed

编译:

make

该工具的基础用法:

time 开头,使用 ./ 执行我们的程序,后面再接上希望逆推的随机数

time ./php_mt_seed 646081337

这里推出来的结果有很多,我们需要根据 php 的版本来选择:

使用 wappalyzer 看一下,是 php 7.3.11

筛选下来这里只有两种情况:1183822455 或者 3291176586

根据这两个随机数种子,分别生成不同的情况:

特别注意,这里的 mt_rand()+mt_rand() 是第二次和第三次生成的随机数之和,因为前面已经使用过一次 mt_rand() 了。

<?php
mt_srand(1183822455);
$rand = mt_rand();
$rand1 = mt_rand();
$rand2 = mt_rand();
echo $rand,"\n",$rand1,"\n",$rand2,"\n",$rand1+$rand2,"\n\n";
mt_srand(3291176586);
$rand = mt_rand();
$rand1 = mt_rand();
$rand2 = mt_rand();
echo $rand,"\n",$rand1,"\n",$rand2,"\n",$rand1+$rand2;
?>

构造 payload:?r=646081337

Cookie:token=2766556611或者 token=494441971

测试第一个 token=2766556611 就可以成功回显 flag:

ctfshow{a6e871e8-c8d2-49f7-b958-0ca335272712}

再试一下 token=494441971,发现不行

当然,我们通过 hackbar 来请求也是可以的

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用jquery.mousewheel-3.0.6.pack.js时报错

基于1.12.4版本的jquery.min.js&#xff0c;在使用jquery.mousewheel-3.0.6.pack.js时报错了&#xff1a; 可以如下解决&#xff1a; addEventListener事件里要加上{ passive: false }&#xff0c;这样就可以在使用鼠标滚轮放大缩小图片时&#xff0c;就不会报上述的错误了。 …

VsQt单元测试目录的管理方式

正常项目的文件管理方式 正常项目的目录&#xff0c;是由文件系统中实际的文件夹进行分类管理的。 但是如果单元测试用实际文件夹管理的话&#xff0c;会出现问题&#xff0c;就是被测类太多了&#xff0c;用文件系统管理的话&#xff0c;不太方面查看&#xff0c;如下图所示。…

7EPhone云手机各功能详解

上篇文章详细介绍了7EPhone云手机的注册和购买&#xff08;没看到的同学可以自主去翻看一下哈~&#xff09;&#xff0c;这篇文章主要给大家讲解7EPhone作为专业海外社媒营销工具&#xff0c;界面上显示什么信息&#xff0c;云机到底有什么功能&#xff0c;这些功能具体怎么来使…

招聘兼职发布客服的骗局大揭秘

在现今的互联网社会中&#xff0c;线上兼职成为许多人追求额外收入或灵活就业的方式。然而&#xff0c;这其中也隐藏着不少骗局&#xff0c;在各大招聘网站或者招聘软件上的今日头条兼职客服招聘就是其中之一。本文将详细揭露这种骗局的运作方式&#xff0c;以帮助大家识别和防…

对比WPF和Avalonia的边框渲染差异

众所周知&#xff0c;诸如Border、Rectangle等元素&#xff0c;是具有边框的。但在WPF和Avalonia中&#xff0c;边框的渲染机制有所不同。 如下代码&#xff0c;Border的边框和背景色均为黑色&#xff0c;并且将透明度设为0.5&#xff1a; <Border Width"100" H…

知了汇智携手数字经济商会,共促物联网鸿蒙产教融合新篇章

5月31日&#xff0c;由成都市数字经济商会主办&#xff0c;华为技术有限公司协办&#xff0c;成都知了汇智科技有限公司及成都市数字经济商会人才专委会共同承办的“产教融合物联网鸿蒙人才交流”大会在成都天府软件园产教融合基地隆重举办。 会议旨在加速四川省鸿蒙技术产业的…

Transformer详解(3-1)-attention为什么要除以根号d

attention的计算公式&#xff0c;为什么要除以根号d? 参考 NLP面试官&#xff1a;“Attention为什么要除以根号d” 算法女生这么回答当场想发 offer

【轻触按键】终篇 -- 纯硬 VS 复合

1、选型 2、开关机电路–填坑1 3、开关机电路–填坑1.a 4、开关机电路–复合芯片解决方案 填坑2 总结 上述几篇&#xff0c;基本上都是比较靠谱的硬件方案&#xff1b; ①所有开关均关闭&#xff1b; X1灯亮&#xff1b;P-MOS 管Q1关断&#xff1b; 特别注意&#xff0c;…

每日两题 / 34. 在排序数组中查找元素的第一个和最后一个位置 33. 搜索旋转排序数组(LeetCode热题100)

34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣&#xff08;LeetCode&#xff09; 根据二分函数&#xff0c;得到>target和<target的两个&#xff0c;分别是答案的l和r class Solution { public:vector<int> searchRange(vector<int>& nums,…

简单聊下服务器防病毒

在当今数字化时代&#xff0c;服务器作为数据存储、处理与传输的核心设备&#xff0c;其安全性显得尤为关键。服务器防病毒工作&#xff0c;不仅是保障企业信息安全的重要一环&#xff0c;更是维护用户数据隐私的关键举措。以下&#xff0c;我们将从多个方面&#xff0c;简单探…

spring boot +Scheduled 动态定时任务配置

通常情况下我们设定的定时任务都是固定的,有时候需要我们动态的配置定时任务,下面看代码 import com.mybatisflex.core.query.QueryWrapper; import com.yzsec.dsg.web.modules.exportpwd.entity.ExportPwd; import com.yzsec.dsg.web.modules.exportpwd.entity.table.Export…

04C编译过程/32位,64位区别/断言/位域...

C零碎语法 目录 文章目录 C零碎语法1.编译过程1.2 编译1.3 汇编1.4 链接 2.不同位机器&#xff0c;各数据类型所占位数3.assert() 断言&#xff08;宏&#xff09;3.1缺点3.2解决办法3.3使用举例3.3.1函数开始处检验传入参数的合法性 4.位域4.1举例4.2补充 5.typedef/define(…

Android11 AudioTrack和Track建立联系

应用程序创建AudioTrack时&#xff0c;导致AudioFlinger在播放线程中&#xff0c;创建Track和其对应。那它们之间是通过什么来建立联系传递数据的&#xff1f;答案是共享内存。 创建Track时&#xff0c;导致其父类TrackBase的构造函数被调用 //frameworks/av/services/audiofl…

网络原理——HTTP/HTTPS ---- HTTPS

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 目录 HTTPS加密与解密HTTPS的工作流程使用对称密钥来加密使用非对称密钥 来对 对称密钥进行加密第三方公证总结 HTTPS https本质上就是在http的基础之上 增加了加密层,抛开加密层之后,剩下的部…

USART串口外设

USART介绍 USART&#xff1a;另外我们经常还会遇到串口&#xff0c;叫UART&#xff0c;少了个S&#xff0c;就是通用异步收发器&#xff0c;一般我们串口很少使用这个同步功能&#xff0c;所以USART和UART使用起来&#xff0c;也没有什么区别。 其实这个STM32的USART同步模式&a…

抖店入驻门槛,一降再降,2024年商家入驻抖店最佳的时机来了!

大家好&#xff0c;我是电商糖果 抖店已经发展有四年多的时间了&#xff0c;现在也算是比较成熟的电商平台. 这几年因为直播带货的火爆&#xff0c;再加上抖音的流量支撑&#xff0c;还有抖音在背后的扶持和推广。 让抖店成了电商行业的黑马项目&#xff0c;吸引了不少商家入…

融合通信项目中常见设备有哪些?

在信息化时代的今天&#xff0c;人们对于通讯的需求越来越大&#xff0c;而传统的单一通讯方式已经无法满足现代社会的需要。因此&#xff0c;融合通信系统的出现成为了必然趋势。 融合通信系统对行业发展的作用不仅仅是提高通信效率和降低通信成本&#xff0c;还可以提升管理效…

elementplu父级页面怎么使用封装子组件原组件的方法

一、使用原因&#xff1a; 封装了el-table&#xff0c;表格中有多选&#xff0c;父级要根据指定状态&#xff0c;让其选择不上&#xff0c;需要用到elementplus中table原方法toggleRowSelection 附加小知识点&#xff1a;&#xff08;el-tree刷新树后之前选中的保持高亮setCurr…

COMPUTEX 2024 国际电脑展即将举行,英伟达宣布将Copilot+引入RTX系列设备,赋能游戏本AI助理

COMPUTEX 2024 国际电脑展即将于2024年6月4日至7日在台北南港展览馆1馆及2馆盛大举行。作为业界瞩目的盛会&#xff0c;本次展会不仅吸引了全球各地的科技爱好者&#xff0c;更迎来了AMD CEO苏姿丰博士和NVIDIA首席执行官黄仁勋的精彩演讲。 在展会的开幕之际&#xff0c;图形…

LLM基础知识

LLM背景知识介绍 1 大语言模型 (LLM) 背景 大语言模型 (英文&#xff1a;Large Language Model&#xff0c;缩写LLM) 是一种人工智能模型, 旨在理解和生成人类语言. 大语言模型可以处理多种自然语言任务&#xff0c;如文本分类、问答、翻译、对话等等。 &#x1f4a5;通常&…