BUGKU-WEB 备份是个好习惯

题目描述

题目截图如下:
在这里插入图片描述

进入场景看看:
在这里插入图片描述

解题思路

  • 看源码
  • 看提示:备份是个好习惯
  • 扫描目录
  • md5弱比较

相关工具

  • 御剑
  • md5解密:https://www.somd5.com/

解题步骤

  1. 看到的这串字符,有点像md5?
d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427e

但是有没有发现这段代码是两段一样的:

d41d8cd98f00b204e9800998ecf8427e

在这里插入图片描述
结果为NULL,也就是说这是NULL的MD5值。

  1. 使用御剑进行目录扫描

在这里插入图片描述
发现存在一个.bak的备份文件(备份文件一般都是.bak或者.swp):

http://114.67.175.224:11263/index.php.bak

下载后使用记事本查看一下内容,可以看到是一个php的代码:
在这里插入图片描述

<?php
/**
 * Created by PhpStorm.
 * User: Norse
 * Date: 2017/8/6
 * Time: 20:22
*/

include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);

echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
    echo $flag."取得flag";
}
?>

此代码是一个简单的PHP脚本,主要功能是接收URL参数并进行处理。

  • 首先,通过include_once语句包含了一个名为"flag.php"的文件。该文件应该包含了一个变量$flag,存储着一个标志(flag)。

  • 然后,通过ini_set函数将PHP的错误显示设置为0,即不显示错误信息。

  • 接下来,代码从$_SERVER['REQUEST_URI']中获取URL中的参数部分,并去掉了第一个字符(‘?’)。然后使用str_replace函数将参数中的’key’替换为空字符串。接着使用parse_str函数将参数解析为变量。

  • 然后,代码使用md5函数对$key1$key2进行哈希运算,并通过echo语句输出结果。

  • 最后,代码使用条件语句判断$key1$key2的哈希值是否相等,并且不等于$key1$key2本身。如果满足条件,则通过echo语句输出$flag变量的值和一段文字。

总体来说,此代码通过URL参数传递两个值,并比较它们的哈希值,如果满足md5相同且key不同,则输出一个标志(flag)。


现在关键得到flag,需不同的key1和key2的md5值比较相等(之前解密得到是一个空密码,所以这是提示)。知识点:【md5弱比较】,见后文的【新知识点】,可以使用kkeyey绕过,他会让我们的kkeyey变为key:

方式一:利用==比较漏洞

  • PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。

  • 攻击者可以利用这一漏洞,通过输入一个经过哈希后以”0E”开头的字符串,即会被PHP解释为0,如果数据库中存在这种哈希值以”0E”开头的密码的话,他就可以以这个用户的身份登录进去,尽管并没有真正的密码。

记录一些MD5值:

纯数字类:
 
s878926199a
0e545993274517709034328855841020

s155964671a
0e342768416822451524974117254469

s214587387a
0e848240448830537924465865611904

s214587387a
0e848240448830537924465865611904

s878926199a
0e545993274517709034328855841020

s1091221200a
0e940624217856561557816327384675

s1885207154a
0e509367213418206700842008763514

s1502113478a
0e861580163291561247404381396064

s1885207154a
0e509367213418206700842008763514

s1836677006a
0e481036490867661113260034900752

s155964671a
0e342768416822451524974117254469

s1184209335a
0e072485820392773389523109082030

s1665632922a
0e731198061491163073197128363787

s1502113478a
0e861580163291561247404381396064

s1836677006a
0e481036490867661113260034900752

s1091221200a
0e940624217856561557816327384675

s155964671a
0e342768416822451524974117254469

s1502113478a
0e861580163291561247404381396064

s155964671a
0e342768416822451524974117254469

s1665632922a
0e731198061491163073197128363787

s155964671a
0e342768416822451524974117254469

s1091221200a
0e940624217856561557816327384675

s1836677006a
0e481036490867661113260034900752

s1885207154a
0e509367213418206700842008763514

s532378020a
0e220463095855511507588041205815

s878926199a
0e545993274517709034328855841020

s1091221200a
0e940624217856561557816327384675

s214587387a
0e848240448830537924465865611904

s1502113478a
0e861580163291561247404381396064

s1091221200a
0e940624217856561557816327384675

s1665632922a
0e731198061491163073197128363787

s1885207154a
0e509367213418206700842008763514

s1836677006a
0e481036490867661113260034900752

s1665632922a
0e731198061491163073197128363787

s878926199a
0e545993274517709034328855841020
 
 
大写字母类:
QLTHNDT
0e405967825401955372549139051580
 
QNKCDZO
0e830400451993494058024219903391
 
EEIZDOI
0e782601363539291779881938479162
 
TUFEPMC
0e839407194569345277863905212547
 
UTIPEZQ
0e382098788231234954670291303879
 
UYXFLOI
0e552539585246568817348686838809
 
IHKFRNS
0e256160682445802696926137988570
 
PJNPDWY
0e291529052894702774557631701704
 
ABJIHVY
0e755264355178451322893275696586
 
DQWRASX
0e742373665639232907775599582643
 
DYAXWCA
0e424759758842488633464374063001
 
GEGHBXL
0e248776895502908863709684713578
 
GGHMVOE
0e362766013028313274586933780773
 
GZECLQZ
0e537612333747236407713628225676
 
NWWKITQ
0e763082070976038347657360817689
 
NOOPCJF
0e818888003657176127862245791911
 
MAUXXQC
0e478478466848439040434801845361
 
MMHUWUV
0e701732711630150438129209816536

需要用到的一个kkeyey:

?kkeyey1=MMHUWUV&kkeyey2=MAUXXQC

在这里插入图片描述

方式二:md5()函数无法处理数组,如果传入的为数组,会返回NULL,所以两个数组经过加密后得到的都是NULL,也就是相等的。

?kkeyey1[]=no&kkeyey2[]=so

在这里插入图片描述

得到Flag

flag{c98558c4bae6bb11a218f22a53288972}

在这里插入图片描述

新知识点

  • md5强比较&弱比较
    弱比较:使用两个 ‘’==‘’ 比较,只比较值,不比较类型
    强比较:使用三个 ‘’===‘’ 比较,比较值,也比较类型

a==b 将a,b的值转换成同类型再比较值
a===b 先判断a,b类型,若相同,则比较值,若不相同,则返回false

在这里插入图片描述

  • PHP strstr() 函数

有用的话,请点赞收藏评论,帮助更多的同学哦

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

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

相关文章

Web3之光:揭秘数字创新的未来

随着数字化时代的深入发展&#xff0c;Web3正以其独特的技术和理念&#xff0c;为我们打开数字创新的崭新视角。作为数字化时代的新兴力量&#xff0c;Web3将深刻影响着我们的生活、工作和社会。本文将揭秘Web3的奥秘&#xff0c;探讨其在数字创新领域的前景和潜力。 1. 重新定…

【论文精读】Segment Anything

Segment Anything 前言Abstract1. Introduction2. Segment Anything Task3. Segment Anything Model4. Segment Anything Data Engine5. Segment Anything Dataset6. Segment Anything RAI Analysis7. Zero-Shot Transfer Experiments7.1. Zero-Shot Single Point Valid Mask E…

深度学习基础(二)卷积神经网络(CNN)

之前的章节我们初步介绍了深度学习相关基础知识和训练神经网络&#xff1a; 深度学习基础&#xff08;一&#xff09;神经网络基本原理-CSDN博客文章浏览阅读924次&#xff0c;点赞13次&#xff0c;收藏19次。在如今的科技浪潮中&#xff0c;神经网络作为人工智能的核心技术之…

【微服务】国内微服务生态标准-SpringCloud Alibaba

现在已经是21世纪的二十年代&#xff0c;在未来的很长时间&#xff0c;以互联网、IOT物联网为代表的分布式应用必将越来越多&#xff0c;大量的软件企业对掌握微服务与高可用、高性能、高并发的架构人才也必定趋之若鹜。我们可以看看现阶段针对软件架构师的招聘需求和薪资&…

【元宵佳节】砖一祝您节日快乐!

元宵节的由来 相传&#xff0c;汉文帝(前179-前157年)为庆祝周勃于正月十五勘平诸吕之乱&#xff0c;每逢此夜&#xff0c;必出言游玩&#xff0c;与民同乐&#xff0c;在古代&#xff0c;夜同宵&#xff0c;正月又称元月&#xff0c;汉文帝就将正月十五定为元宵节&#xff0c…

算法打卡day1|数组篇|Leetcode 704.二分查找、27.移除元素

数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合&#xff0c;可以方便的通过下标索引的方式获取到下标下对应的数据。 1.数组下标都是从0开始的。 2.数组内存空间的地址是连续的。 正是因为数组的在内存空间的地址是连续的&#xff0c;所以我们在删除或者增添…

LiveQing视频点播流媒体RTMP推流服务功能-支持配置开启 HTTPS 服务什么时候需要开启HTTPS服务

LiveQing视频点播流媒体RTMP推流服务功能支持配置开启 HTTPS 服务什么时候需要开启HTTPS服务 1、配置开启HTTPS1.1、准备https证书1.1.1、选择Nginx类型证书下载 1.2、配置 开启 HTTPS1.2.1 web页面配置1.2.2 配置文件配置 2、验证HTTPS服务3、为什么要开启HTTPS3.1、安全性要求…

免费的数据恢复软件哪个好?这10个数据恢复软件可以试试

遇到电脑、硬盘或U盘等设备中数据丢失&#xff0c;不用着急&#xff0c;数据恢复软件来帮你。 在遇到数据丢失的问题时&#xff0c;很多朋友都会很着急也不知道该怎么办。作为数据恢复小白&#xff0c;我们可以选择使用数据恢复软件进行扫描恢复。现在市面上的数据恢复软件很多…

AI技术那些事儿:揭开潜伏在你生活中的高科技小能手

你有没有发现&#xff0c;现在的生活里有些“看不见”的聪明家伙&#xff0c;它们时时刻刻在帮咱们忙活呢&#xff1f;从早上用语音命令打开窗帘、播报新闻&#xff0c;到晚上喊一声关灯睡觉&#xff0c;这些都离不开人工智能&#xff08;简称AI&#xff09;的助攻。今天咱就掰…

C++笔记:二叉搜索树(Binary Search Tree)

文章目录 二叉搜索树的概念二叉搜索树操作1. 框架搭建2. 遍历3. 查找迭代实现递归实现 4. 插入迭代实现递归实现 5. 删除迭代实现递归实现 6. 析构与销毁7. 拷贝构造与赋值重载 二叉搜索树的应用二叉搜索树的性能分析二叉搜索树模拟实现源码 二叉搜索树的概念 二叉搜索树又称二…

泛微e-office系统敏感信息泄露漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任 1、系统简介 泛微e-office系统是标准、易用、快速部署上线的专业协同OA软…

gitlab升级

查看当前版本 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION12.9.3-ee 备份数据 gitlab-rake gitlab:backup:create备份默认位置在 /var/opt/gitlab/backups/ 备份配置数据&#xff08;git配置目录&#xff09; tar -zcvf gitlab12.9.3-ee.tar.gz /etc/gitlab备…

01VScode开发stm32环境搭建

title: VScode开发stm32环境搭建 tags: STM32vscode 1.准备工作 1.下载并安装VSCODE 在百度上搜索vscode记住一定要是官方的 不然你自己就是在给自己下毒2345全来了 打红圈一定要有不然就是在垃圾网站上下的 VSCode下载链接 选一个适合你的      安装正常流程走就行不再…

达尔克仪器设备邀您观摩2024生物发酵产品与技术装备展

参展企业介绍 达尔克本着“诚信、求精、协作、创新”的企业精神&#xff0c;以专业的技术、优良的品质和完善的服务&#xff0c;与广大客户共创辉煌未来。 我们的产品——包括水质分析、压力、温度、流量、物位等工业在线过程控制仪表、其他类型传感器以及自动化控制方案——全…

docker运行onlyoffice,并配置https访问【参考仅用】

官方说明&#xff1a; Installing ONLYOFFICE Docs for Docker on a local server - ONLYOFFICEhttps://helpcenter.onlyoffice.com/installation/docs-developer-install-docker.aspx 一、容器端口、目录卷映射 sudo docker run --name容器名称 --restartalways -i -t -d -p…

论文阅读——SimpleClick

SimpleClick: Interactive Image Segmentation with Simple Vision Transformers 模型直接在VIT上增加交互是分割 用VIT MAE方法训练的预训练权重 用交互式分割方法微调&#xff0c;微调流程&#xff1a; 1、在当前分割自动模拟点击&#xff0c;没有人为提供的点击 受到RITM启发…

python[6]

类和对象 面向对象编程–说白就是让对象干活 创建类&#xff1a;class 类名&#xff1a; 创建类对象 对象名 类名&#xff08;&#xff09; 构造方法 1、构造方法的名称是__init__ 2、构造方法的作用&#xff1f; 构建类对象的时候会自动运行 构建类对象的传参会传递给构造…

【算法与数据结构】链表、哈希表、栈和队列、二叉树(笔记二)

文章目录 四、链表理论五、哈希表理论五、栈和队列理论5.1 单调栈 六、二叉树理论6.1 树的定义6.2 二叉树的存储方式6.3 二叉树的遍历方式6.4 高度和深度 最近博主学习了算法与数据结构的一些视频&#xff0c;在这个文章做一些笔记和心得&#xff0c;本篇文章就写了一些基础算法…

普中51单片机学习(红外通信)

红外通信 红外线系统的组成 外线遥控器已被广泛使用在各种类型的家电产品上&#xff0c;它的出现给使用电器提供了很多的便利。红外线系统一般由红外发射装置和红外接收设备两大部分组成。红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成。红外接收设备可由…

C++的stack容器->基本概念、常见接口

#include<iostream> using namespace std; #include <stack> //栈stack容器常用接口 void test01() { //创建栈容器 栈容器必须符合先进后出 stack<int> s; //向栈中添加元素&#xff0c;叫做 压栈 入栈 s.push(10); s.push(20); s…