news 2025/12/31 13:03:02

[GWCTF 2019]枯燥的抽奖

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[GWCTF 2019]枯燥的抽奖

启动环境

检查发现源码

通过查找mt_rand函数资料,PHP的mt_rand函数作为一个随机数生成工具在程序中被广泛使用,但是大家都忽略了一个事实,mt_rand生成的随机数不是一个真正的随机数,而是一个伪随机数,不能应用于生成安全令牌、核心加解密key等等,所以很多知名程序都出现过对mt_rand函数的错误使用而导致的安全问题。

可以根据已经给出的部分随机数,利用工具找出seed(种子),然后得到完整的随机数。

上网寻找了下载php_mt_seed工具和使用方法

php_mt_seed是一个破解mt_rand函数seed的工具,在最简单的调用模式下,它能通过mt_rand第一次输出的值寻找mt_rand的seed,在更高级的模式中它能匹配不是第一次输出的和不明确具体输出的情况。

下载链接:php_mt_seed - PHP mt_rand() seed cracker

可以通过已经知道的几个字符去反推mt_rand()

python代码

str1='abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' str2='6aZVpCGRLU' res='' for i in range(len(str2)): for j in range(len(str1)): if str2[i] == str1[j]: res+=str(j)+' '+str(j)+' '+'0'+' '+str(len(str1)-1)+' ' break print(res)

运行得到

使用php_mt_seed工具

得到种子345828701

计算整个字符串的代码

<?php
mt_srand(种子);
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str='';
$len1=20;
for ( $i = 0; $i < $len1; $i++ ){
$str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);
}
echo $str;

提交得到flag

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/29 15:32:32

46、System V 共享内存详解

System V 共享内存详解 1. 资源映射(Resource Maps) 在进程间通信(IPC)的三种机制中,消息队列和信号量使用了一种名为资源映射(Resource Maps)的底层内核内存分配方案。资源映射的作用是,从预先分配好的大量内核页面池中,对小块内核内存进行分配和释放操作。 消息队…

作者头像 李华
网站建设 2025/12/22 21:05:15

47、System V共享内存与信号量深入解析

System V共享内存与信号量深入解析 1. System V共享内存 1.1 映射结构差异 不同处理器的实际映射结构有所不同。UltraSPARC(SPARC V9)处理器实现了转换表(Translation Tables),由转换表项(TTEs)组成;SuperSPARC(SPARC V8)系统则实现了页表(Page Tables),包含页表…

作者头像 李华
网站建设 2025/12/14 3:43:02

49、POSIX IPC 全面解析

POSIX IPC 全面解析 1. POSIX IPC 概述 POSIX IPC(Inter-Process Communication)是一系列行业标准接口,提供了与 System V IPC 类似的功能,包括共享内存、信号量和消息队列。虽然在形式和功能上与 System V IPC 相似,但实现方式却大不相同。 POSIX IPC 基于 POSIX IPC …

作者头像 李华
网站建设 2025/12/14 3:42:42

60、Unix文件系统(UFS)全解析

Unix文件系统(UFS)全解析 1. UFS概述 Unix文件系统(UFS)是随Solaris系统一起发布的通用磁盘文件系统。自SunOS 4.x早期版本以来,它一直是标准的基于磁盘的文件系统。在Solaris的发展历程中,UFS经历了大量的变革,以满足应用程序对性能、安全性和可靠性的要求。 2. UFS…

作者头像 李华
网站建设 2025/12/30 1:31:13

63、深入解析影响文件系统性能的分页参数及相关缓存机制

深入解析影响文件系统性能的分页参数及相关缓存机制 1. 启用优先级分页时虚拟内存系统的表现 当启用优先级分页时,虚拟内存系统会呈现出不同的行为。使用相同的测试程序对文件系统进行随机读取,会引发系统分页,页面扫描器会积极参与页面管理,且此时扫描器仅释放文件页面。…

作者头像 李华
网站建设 2025/12/24 21:53:55

12、Linux系统下Snort的配置与使用指南

Linux系统下Snort的配置与使用指南 1. 安装Snort 在Linux系统上安装Snort的过程与Windows系统非常相似。主要区别在于, snort.conf 文件中的默认(相对)路径在Linux系统上更有可能无需修改即可使用。你需要下载适合你系统的最新版本的Snort。如果你使用的是Fedora Core 5…

作者头像 李华