buuctf_练[MRCTF2020]Ezaudit

news2024/11/13 9:35:35

[MRCTF2020]Ezaudit

掌握知识

​ 网站源码泄露,代码审计,SQL注入的万能密码使用,mt_rand函数的伪随机数漏洞搭配php_mt_seed工具使用,随机数特征序列的生成

解题思路
  1. 打开题目链接,又发现是一个不错的网站界面,很多功能但都一样,源码也没有泄露的,根据题目为简单的审计,猜测有源码泄露,这样的网站多半就是网站压缩包泄露,访问www.zip还真就下载了,里面只有一个index.php文件

image-20231013125852847

  1. 打开文件,简单的查看了一下,发现泄露了一个登录界面login.html,需要输入密码账户和私钥,验证通过会通过SQL语句将flag回显出来。最后给出来了公私钥生成的代码,看见了老朋友mt_rand函数 ([GWCTF 2019]枯燥的抽奖),该函数存在伪随机数漏洞,只需要得到特征值,就能使用相应工具得到随机数种子,私钥也就很容易得到了
<?php 
header('Content-type:text/html; charset=utf-8');
error_reporting(0);
if(isset($_POST['login'])){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $Private_key = $_POST['Private_key'];
    if (($username == '') || ($password == '') ||($Private_key == '')) {
        // 若为空,视为未填写,提示错误,并3秒后返回登录界面
        header('refresh:2; url=login.html');
        echo "用户名、密码、密钥不能为空啦,crispr会让你在2秒后跳转到登录界面的!";
        exit;
}
    else if($Private_key != '*************' )
    {
        header('refresh:2; url=login.html');
        echo "假密钥,咋会让你登录?crispr会让你在2秒后跳转到登录界面的!";
        exit;
    }

    else{
        if($Private_key === '************'){
        $getuser = "SELECT flag FROM user WHERE username= 'crispr' AND password = '$password'".';'; 
        $link=mysql_connect("localhost","root","root");
        mysql_select_db("test",$link);
        $result = mysql_query($getuser);
        while($row=mysql_fetch_assoc($result)){
            echo "<tr><td>".$row["username"]."</td><td>".$row["flag"]."</td><td>";
        }
    }
    }

} 
// genarate public_key 
function public_key($length = 16) {
    $strings1 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $public_key = '';
    for ( $i = 0; $i < $length; $i++ )
    $public_key .= substr($strings1, mt_rand(0, strlen($strings1) - 1), 1);
    return $public_key;
  }

  //genarate private_key
  function private_key($length = 12) {
    $strings2 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $private_key = '';
    for ( $i = 0; $i < $length; $i++ )
    $private_key .= substr($strings2, mt_rand(0, strlen($strings2) - 1), 1);
    return $private_key;
  }
  $Public_key = public_key();
  //$Public_key = KVQP0LdJKRaV3n9D  how to get crispr's private_key???
分析代码
  1. 私钥的思路已经很清晰了,去寻找一下账户和密码是什么了,根据SQL语句的提示,账户为crispr,该SQL语句不存在任何过滤,是最基础的字符型SQL查询语句,密码直接使用万能密码就可以1' or 1=1 #。账密已经分析得到,就下来就去拿下私钥了

image-20231013130423740

  1. 通过查看公私钥生成代码,两个代码都没有设置随机数种子,那公钥使用mt_rand函数之后,随机数种子也就会固定下来,所以公私钥的随机数种子是一样的,代码还给出了公钥,所以只需要将公钥字符串转化成特征序列,使用php_mt_seed工具进行爆破即可得到具体的随机数种子

image-20231013131228180

  1. 后面的步骤和之前写的枯燥的抽奖步骤就很相似了,同一个代码同一个工具。使用下面的python代码即可得到特征序列。str2就是生成的随机字符串 ,str1是随机字符串生成的模板,将源代码的模板复制即可
str1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
str2='KVQP0LdJKRaV3n9D'
str3 = str1[::-1]
length = len(str2)
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)
36 36 0 61 47 47 0 61 42 42 0 61 41 41 0 61 52 52 0 61 37 37 0 61 3 3 0 61 35 35 0 61 36 36 0 61 43 43 0 61 0 0 0 61 47 47 0 61 55 55 0 61 13 13 0 61 61 61 0 61 29 29 0 61 
  1. 直接使用php_mt_seed工具对特征序列进行爆破,得到随机数种子,该随机数种子需要在php版本5.2.1 -- 7.0.x直接使用才行

image-20231013131732864

  1. 找一个php在线运行的网站,可以修改php版本在上面范围的,使用源代码的公私钥生成代码,只需要在最开始添加随机数字符串即可得到私钥。因为随机字符串相邻的输出结果不一样,所以还需要按照代码中的先生成公钥才能正确得到私钥

image-20231013131848549

  1. 使用分析得到的账密和生成的私钥直接登录,登录成功之后页面回显flag,直接拿下

image-20231013132104091

image-20231013132108850

关键paylaod
随机数种子 = mt_srand(1775196155);
nuserame = crispr
password = 1' or 1=1#
私钥 = XuNhoueCDCGc

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

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

相关文章

关于一篇端口聚合配置的笔记

1. 端口聚合概述 端口聚合也称为以太通道(Ethernet Channel)&#xff0c;主要用于交换机间连接。由于两个交换机之间有多条几余链路的时候&#xff0c;STP会将其中的几条链路关闭&#xff0c;只保留一条&#xff0c;这样可以避免二层环路的产生。 但是&#xff0c;这样失去了路…

一致性哈希算法原理

文章目录 前言正文一、抛砖引玉&#xff0c;简单Hash算法的短板二、一致性Hash算法的基本概念2.1 一致性Hash算法本质也是取模2.2 便于理解的抽象&#xff0c;哈希环2.3 服务器如何映射到哈希环上2.4 对象如何映射到哈希环上&#xff0c;并关联到对应的机器 三、一致性Hash算法…

基于Java的民宿酒店预约推广系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

腾讯云服务器价格计算器,它来了!

腾讯云推出云服务器CVM专用计算器&#xff0c;选择云服务器CPU内存、CVM实例规格、系统盘、公网带宽即可一键计算出精准报价&#xff0c;腾讯云价格计算器&#xff0c;它来了&#xff0c;它来了&#xff01; 腾讯云服务器价格计算器可以一键计算出云服务器的精准报价&#xff…

什么是外贸电商ERP?外贸电商ERP有哪些

得益于互联网技术的发展成熟&#xff0c;外贸电商行业也迎来新的发展机遇&#xff0c;不过由于行业的特殊性&#xff0c;涉及多渠道营销、多汇率核算、多税制、多语言、多货币等情况&#xff0c;随着业务量的增加&#xff0c;相关数据的统计分析工作也愈加繁重。 外贸电商采用…

git的实际操作

文章目录 删除GitHub上的某个文件夹克隆仓库到另一个仓库 删除GitHub上的某个文件夹 克隆仓库到另一个仓库 从原地址克隆一份裸板仓库 –bare创建的克隆版本库都不包含工作区&#xff0c;直接就是版本库的内容&#xff0c;这样的版本库称为裸版本库 git clone --bare ****(原…

QT mqtt 在子线程中使用

qtmqtt 在子线程中使用_qt在子线程里mqtt无法new-CSDN博客文章浏览阅读524次。解决问题&#xff1a;QMqttClient - connection not made from another thread在qt中使用多线的qtmqtt客户端发送接收数据_qt在子线程里mqtt无法newhttps://blog.csdn.net/qq_35708970/article/deta…

2023年中国高尔夫球杆市场供需现状及趋势,量身定制会逐渐成为一种趋势[图]

随着高尔夫运动的发展&#xff0c;高尔夫球杆也在不断更新。20世纪80年代是高尔夫球杆设计与发展的黄金时期&#xff0c;大部分经典的球杆都是从这个时期被设计发明出来。高尔夫球杆的技术革新主要集中在杆头上&#xff0c;通过杆头的变化来提高和改善击球的效果。对应不同击球…

为小团队(20人以下)推荐的最佳网盘选择

现在20人以下的小团队之间对于文件存储、团队文件协作的需求也越来越高。之前通过社交工具如微信、QQ等进行文件共享的方式已经无法满足小团队的需求。而网盘是当下热门的文件存储及共享工具&#xff0c;相比于NAS&#xff0c;网盘具备成本较低、协作性更强的特点。那么有什么适…

视频批量AI智剪:提升剪辑效率的秘密方法

随着视频内容的爆炸式增长&#xff0c;剪辑师面临着巨大的工作压力。传统的剪辑方法往往效率低下&#xff0c;无法满足快速、高质量的剪辑需求。为了解决这个问题&#xff0c;视频批量AI智剪技术应运而生&#xff0c;成为提升剪辑效率的秘密方法。 视频批量AI智剪是指利用人工…

红路灯识别

1.截图图像中的目标对象 1.1 查找边界矩形 1.1.1直边界矩形 一个直矩形&#xff08;就是没有旋转的矩形&#xff09;。它不会考虑对象是否旋转。所以边界矩形的面积不是最小的。 cv2.boundingRect(array) 输入&#xff1a;点集 输出&#xff1a;&#xff08;x&#xff0c;y…

领域高口碑 | 中科院1区TOP,Elsevier出版社,仅1个月Accept!稳定检索40年!

【SciencePub学术】本期&#xff0c;小编给大家推荐的是一本Elsevier旗下、稳定检索40年、影响因子为10.0的中科院1区TOP刊&#xff0c;期刊详情及专题信息如下&#xff1a; 期刊简介 COMPUTERS IN INDUSTRY ISSN&#xff1a;0166-3615 E-ISSN&#xff1a;1872-6194 IF&a…

第二证券:全产业链迎利好 大基建板块掀涨停潮

受增发国债利好音讯提振&#xff0c;大基建板块25日迎来爆发&#xff0c;水利、水泥制造、基建、工程器械、钢铁、修建等方向全线大涨&#xff0c;多只股票触及涨停。业内人士以为&#xff0c;进行年内预算调整并增发国债&#xff0c;将对A股商场投资者的整体心境有所提振。 大…

宝塔面板 - 404 Not Found(Nginx)

面板提示 404 可能是丢失面板安全入口&#xff0c;具体您可以在服务器命令下先执行 bt&#xff0c;然后选择 14 命令重新获取面板URL地址 安全入口验证信息&#xff0c;重新登录就行。

python自动化测试(二):xpath获取元素

目录 前置代码 一、什么是xpath方式 二、通过xpath 单组属性名属性值 的方式进行元素定位 三、通过xpath的多组属性进行元素的定位 四、通过xpath文本值的方式进行元素定位 五、通过模糊的文本值方式进行元素定位 前置代码 # codingutf-8 from selenium import webdrive…

第88步 时间序列建模实战:ARIMA组合模型

基于WIN10的64位系统演示 一、写在前面 这一期&#xff0c;我们介绍基于ARIMA的组合模型。 &#xff08;1&#xff09;数据源&#xff1a; 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal…

电脑f盘文件凭空消失了怎么恢复?别慌,这里有五种方法

在使用电脑的过程中&#xff0c;我们可能会遇到F盘文件突然凭空消失的情况&#xff0c;这不仅会给我们带来困扰&#xff0c;而且可能造成重要文件的丢失。但是&#xff0c;即使文件消失了&#xff0c;我们仍然有可能通过一些方法恢复这些文件。本文将介绍如何有效恢复电脑F盘文…

【AICFD案例操作】溃坝过程模拟

AICFD是由天洑软件自主研发的通用智能热流体仿真软件&#xff0c;用于高效解决能源动力、船舶海洋、电子设备和车辆运载等领域复杂的流动和传热问题。软件涵盖了从建模、仿真到结果处理完整仿真分析流程&#xff0c;帮助工业企业建立设计、仿真和优化相结合的一体化流程&#x…

2023年【安徽省安全员C证】考试技巧及安徽省安全员C证复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【安徽省安全员C证】考试技巧及安徽省安全员C证复审模拟考试&#xff0c;包含安徽省安全员C证考试技巧答案和解析及安徽省安全员C证复审模拟考试练习。安全生产模拟考试一点通结合国家安徽省安全员C证考试最新大…

数据结构之队列(源代码➕图解➕习题)

前言 在学过栈之后&#xff0c;会了解到栈的底层是根据顺序表或者链表来构建的&#xff0c;那么我们今天要学习的队列是否也是基于顺序表和链表呢&#xff1f;那我们直接进入正题吧&#xff01; 1. 队列的概念&#xff08;图解&#xff09; 还是跟上节一样&#xff0c;依旧用图…