源码

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 13:56:57
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 15:47:33
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/error_reporting(0);
include("flag.php");
if(isset($_GET['r'])){$r = $_GET['r'];mt_srand(hexdec(substr(md5($flag), 0,8)));$rand = intval($r)-intval(mt_rand()); #r-第一次随机数if((!$rand)){if($_COOKIE['token']==(mt_rand()+mt_rand())){ #token==第二次和第三次随机数之和echo $flag;}}else{echo $rand;}
}else{highlight_file(__FILE__);echo system('cat /proc/version');
}
Linux version 5.4.0-88-generic (buildd@lgw01-amd64-008) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #99-Ubuntu SMP Thu Sep 23 17:29:00 UTC 2021 Linux version 5.4.0-88-generic (buildd@lgw01-amd64-008) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #99-Ubuntu SMP Thu Sep 23 17:29:00 UTC 2021

mt_srand()是伪随机,通过分发种子,如果有种子的话,生成随机数的值也是固定的,生成的值也和php的版本有关

没什么思路,看了下hint

通过代码审计发现,r=0的时候,rand的值为第一次生成随机值的相反数,通过php_mt_seed(点击链接下载) 脚本来生成种子
这里用的是kali

tar -zxvf php_mt_seed-4.0.tar.gz
su root  #需要root用户权限
cd php_mt_seed-4.0
make
./php_mt-seed 输入第一次生成的随机值

得到不同版本的随机值

用Google的Wappalyzer插件可以看到php版本为7.3

因为hexdec是把16进制转换为10进制,我们先尝试1372675821

由于if((!$rand))才能执行,rand要为0才行,所以r要为生成的第一次随机数值,token为第二次和第三次随机值相加才能获得flag

用bp抓包,直接拿到flag

CTFshow 爆破 web25相关推荐

  1. ctfshow 爆破(web入门)

    目录 web21 web22 web23 web24 web25 web26 web27 web28 web21 打开题目显示要登陆密码 随便输入123,123抓个包试试,发现Authorizatio ...

  2. ctfshow 爆破 web21-web28

    爆破 爆破考察手段 burp intruder的使用 编写脚本寻找满足条件的解 伪随机 web21 burp抓包,发送到intruder模块,利用题中给出的脚本进行爆破,注意通过payload加工模块 ...

  3. CTFshow 爆破 web28

    尝试改了下txt名称 发现报错 去掉2.txt返回403,尝试用bp爆破下目录 /X/X/ (/72/20/),拿到flag X为0-100 记得勾上301重定向

  4. CTFshow 爆破 web27

    点击录取名单可以得到一份表格,然后根据姓名身份证在学生学籍信息查询系统查询.中间八位是出生年月日. 我们可以用bp爆破,前四位年份1990-2010 月份01-12 日期1-30 爆破成功 Unico ...

  5. CTFshow 爆破 web26

    先抓包看一下,发现能直接拿到flag 爆破的到密码 7758521

  6. CTFshow 爆破 web23

    根据提示 还爆破?这么多代码,告辞! 源码如下 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-03 11:43 ...

  7. CTFshow 爆破 web22

    根据提示 域名也可以爆破的,试试爆破这个ctf.show的子域名 扫到一般发现没有结果 ,这题也不能做了 直接看hint, 页面也是失效的 直接拿走flag

  8. CTFshow 爆破 web21

    根据提示 爆破什么的,都是基操 进去弹出表单,要求输入账号密码 通过bp抓包得到,发现Authorization 后面的是base64加密的字段 解密得到 用户名:密码 对admin:进行加密 用bp ...

  9. ctfshow爆破wp

    文章目录 前言 一.web21----custom iterator(自定义迭代器)(base64解码) 二.web22----子域名爆破 三.web23----substr()函数(md5加密) 四 ...

最新文章

  1. Java中的显示锁 ReentrantLock 和 ReentrantReadWriteLock
  2. 【Xamarin开发 Android 系列 5】 Xamarin 的破解
  3. ERP系统的一般构成示意图
  4. Chromium 操作系统即将支持所有 SBC 单板电脑
  5. 使用docker运行dotnetcore站点
  6. 解决Oracle 本地可以连接,远程不能连接问题
  7. python3.3 连接mysql_python3.3连接mysql数据库
  8. python模拟seo_Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)_天津SEO...
  9. 企业信息安全建设要点梳理
  10. mysql case when 使用
  11. Qt 子窗体嵌入父窗体
  12. Entity Framework 4 数据事务操作
  13. Sql JOIN 一张图说明
  14. python ctype_Python ctype帮助:使用C unsigned char指针
  15. 华为认证云计算HICA
  16. idea pull从远程库拉取最新代码
  17. 软件测试自动感应灯,基于单片机的智能感应灯设计
  18. iphone计算机适配,iPhone UI界面尺寸如何一稿适配
  19. 风行天下!翔升N61S智能主板低价上市
  20. Pytest自动化脚本中各个层级的setup和teardown的执行流程和使用方法

热门文章

  1. UNP Chapter 9 - 基本名字与地址转换
  2. 【备忘】Oracle10g 创建、删除表空间、创建、授权用户
  3. WinCE6.0的批量编译
  4. Python 爬取简单网页
  5. [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具
  6. 为什么世界需要 OpenStreetMap 开源道路地图
  7. 一天一个Linux基础命令之复制文件或目录命令cp
  8. C++的iostream标准库介绍+使用详解(转)
  9. 网页与APP中那些优美的登陆表单
  10. 40款奇特的名片设计,吸引大家的眼球《上篇》