当前位置: 首页 > news >正文

[GWCTF 2019]枯燥的抽奖

参考

https://www.cnblogs.com/AikN/p/15764428.html

 [GWCTF 2019]枯燥的抽奖-CSDN博客

打开环境

笑死我了,怎么那么像我高中校长

查看源代码

看到check.php,去访问一下

ok看到源代码了

因为上次做过,看到这个我就想到用php_mt_seed逆推出seed

 <?php
#这不是抽奖程序的源代码!不许看!
header("Content-Type: text/html;charset=utf-8");
session_start();
if(!isset($_SESSION['seed'])){
$_SESSION['seed']=rand(0,999999999); //如果seed不存在,则生成一个随机数作为种子
}mt_srand($_SESSION['seed']);   //使用 mt_srand 函数设置随机数生成器的种子为会话变量 "seed" 的值。这样可以保证每次生成的随机数序列是相同的。
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str='';   //创建一个空字符串,用于存储生成的随机字符串
$len1=20;
for ( $i = 0; $i < $len1; $i++ ){$str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);   //生成一个长度为 20 的随机字符串。循环每次从 $str_long1 中随机选择一个字符,并将其追加到 $str 中。    
}
$str_show = substr($str, 0, 10);  //从生成的随机字符串中截取前 10 个字符,存储在变量 $str_show 中
echo "<p id='p1'>".$str_show."</p>";if(isset($_POST['num'])){if($_POST['num']===$str){xecho "<p id=flag>抽奖,就是那么枯燥且无味,给你flag{xxxxxxxxx}</p>";}else{echo "<p id=flag>没抽中哦,再试试吧</p>";}
}
show_source("check.php"); 

 我晕

火狐没看到完整的,谷歌才看到

需要先将数列转换成爆破脚本可以识别的数列,将随机出来的伪随机串的下标还原回来

这里脚本看了别人的wp

似乎是离散参数的规范,但没搞明白为什么要重复一次。
好像是 “随机数a 随机数a min max”这样一个格式,四个一组。

str1 = 'SNDH9So2My'
str2 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result = ''length = str(len(str2) - 1)
for i in range(0, len(str1)):for j in range(0, len(str2)):if str1[i] == str2[j]:result += str(j) + ' ' + str(j) + ' ' + '0' + ' ' + length + ' '  //如果字符匹配成功,则将匹配结果追加到 res 中。匹配结果包括四个部分,分别是 j、j、0、len(str1)-1,中间用空格分隔breakprint(result)

在kali使用php_mt_seed

php 版本为7.1以上的只有614247723这个种子

求str

http://www.lryc.cn/news/179855.html

相关文章:

  • vue3中sync修饰符的使用
  • Qt全屏显示与退出
  • OpenCV之直线曲线拟合
  • 2023年哪款PDF虚拟打印机好用?
  • Redis各数据类型特定的命令和用法 1.0版本
  • 卫星图像应用 - 洪水检测 使用DALI进行数据预处理
  • 为什么字节大量用GO而不是Java?
  • Hive SQL初级练习(30题)
  • NSSCTF做题(6)
  • 公众号商城小程序的作用是什么
  • 关于 FOCA
  • TVP专家谈腾讯云 Cloud Studio:开启云端开发新篇章
  • 2023-09-27 Cmake 编译 OpenCV+Contrib 源码通用设置
  • ACGAN
  • 模块化CSS
  • 意大利储能公司【Energy Dome】完成1500万欧元融资
  • 【Java 进阶篇】JDBC Connection详解:连接到数据库的关键
  • vue-cli项目打包体积太大,服务器网速也拉胯(100kb/s),客户打开网站需要等十几秒!!! 尝试cdn优化方案
  • 【优秀学员统计】python实现-附ChatGPT解析
  • 餐饮外卖配送小程序商城的作用是什么?
  • 【QT】使用toBase64方法将.txt文件的明文变为非明文(类似加密)
  • 《QDebug 2023年9月》
  • C++使用高斯模糊处理图像
  • 多维时序 | MATLAB实现PSO-BP多变量时间序列预测(粒子群优化BP神经网络)
  • LeetCode 283. 移动零
  • 【数据结构】选择排序 堆排序(二)
  • opencv实现目标跟踪及视频转存
  • R | R及Rstudio安装、运行环境变量及RStudio配置
  • 智能回答机器人的“智能”体现在哪里?
  • 多网卡场景数据包接收时ip匹配规则