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

BugKu Web渗透之备份是个好习惯

启动场景后,网页显示一段字符串。

看起来像md5值,但是又过长了。

步骤一:右键查看源代码,没有发现任何异常。

步骤二:使用dirsearch去查看是否有其他可疑文件。

在终端输入:

dirsearch -u http://117.72.52.127:19983/ 

运行结果如图:

步骤三:看起来flag.php很可疑。打开查看。

页面是空的,右键查看源代码也是空的。

步骤四:再根据题目意思,说备份。那么index.php.bak这个备份文件很是可疑。于是下载下来,打开查看。内容如下:

看到这段代码,大概意思是获取请求的URI数据,之后再进行一系列的操作。然后有两个参数,key1和key2。当key1和key2的md5值相等,并且key1本身不等于key2时,可以输出flag。

那首先我们需要得到两个参数。具体如何得到,我们可以用php代码去测试下。测试代码如下:

<?php$url1 = "http:www.baidu.com?key1=4446566&key2=5555";$str1 = strstr($url1, "?");echo $str1;echo("<br>");$str2 = substr($str1,1);echo $str2;echo("<br>");$str3 = str_replace('key','',$str2); echo $str3;echo("<br>");parse_str($str3);echo("<br>");echo $key1;echo("<br>");echo $key2;echo("<br>");
?>

运行结果如下图:

虽然后面代码出错了,但是我们可以由此知道:

strstr($url1, "?")是取url1中从?开始到最后的字符串。
substr($str1,1)是从索引为1开始截取的字符串。
str_replace('key','',$str2)是将字符串中的key替换成空。

代码的具体含义如下:

include_once "flag.php";         //包含运行依次flag.php
ini_set("display_errors", 0);    //关闭错误显示
$str = strstr($_SERVER['REQUEST_URI'], '?'); //取出URI中从?开始到最后的字符串
$str = substr($str,1);           //取出str中索引1到最后的字符串
$str = str_replace('key','',$str);        //把str中的key替换成空
parse_str($str);    //解析str字符串,解析出来的参数就是URI中的传参
echo md5($key1);    //输出key1参数echo md5($key2);    //输出key2参数
if(md5($key1) == md5($key2) && $key1 !== $key2){ //如何key1和key2并不相等,但是key1和key2的md5值相等                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           echo $flag."取得flag"; //输出flag
}

因为最后我们需要key1和key2参数,去计算md5值,所以我们想到双写绕过。也就是kkeyey,这样中间的key被替换成空字符串后,外面的字符串连接起来还是key。

步骤五

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

那么我们只要找到两个字符串,md5后以“0E”开头的就行。

在网上搜了几个,我找了两个“QNKCDZO”和“240610708”。

步骤六

把找到的参数放进浏览器,使用get请求参数传递,key1和key2参数需要双写绕过,之后尝试。flag出现。

浏览器输入:http://117.72.52.127:19983/index.php?kekeyy1=QNKCDZO&kekeyy2=240610708

相关文章:

BugKu Web渗透之备份是个好习惯

启动场景后&#xff0c;网页显示一段字符串。 看起来像md5值&#xff0c;但是又过长了。 步骤一&#xff1a;右键查看源代码&#xff0c;没有发现任何异常。 步骤二&#xff1a;使用dirsearch去查看是否有其他可疑文件。 在终端输入&#xff1a; dirsearch -u http://117.72.…...

华为AP6050DN无线接入点瘦模式转胖模式

引言 华为AP6050DN是一款企业级商用的无线接入点。由于产品定位原因,其默认工作在瘦模式下,即须经AC统一控制和管理,是不能直接充当普通的无线路由器来使用的。 而本文的目的,就是让其能脱离AC的统一控制和管理,当作普通无线路由器来使用。 硬件准备 华为AP6050DN无线接…...

uniapp 配置本地 https 开发环境(基于 Vue2 的 uniapp)

1、生成本地 HTTPS 证书&#xff08;mac&#xff09;打开终端&#xff0c;运行以下命令&#xff1a; mkdir ~/ssl-cert && cd ~/ssl-cert2、生成私钥&#xff1a; openssl genrsa -out localhost.key 20483、生成自签名证书&#xff08;有效期365天&#xff09;&…...

十、【核心功能篇】项目与模块管理:前端页面开发与后端 API 联调实战

【核心功能篇】项目与模块管理&#xff1a;前端页面开发与后端 API 联调实战 前言准备工作第一部分&#xff1a;完善项目管理功能 (Project)1. 创建/编辑项目的表单对话框组件 第二部分&#xff1a;模块管理功能 (集成到项目详情页)1. 创建模块相关的 API 服务 (src/api/module…...

【大模型/MCP】MCP简介

一句话总结 如果你打算让 LLM 像人一样“随手”调用脚本、数据库、搜索引擎或 CI/CD 流水线&#xff0c;而又不想为每个工具分别写 REST 插件或轮询接口&#xff0c;那么把它们包进 MCP 服务器是当前最省心、延迟最低、可复用最高的做法——正因如此 OpenAI、Google DeepMind、…...

[Godot][游戏开发] 如何在 Godot 中配置 Android 环境(适配新版 Android Studio)

在使用 Godot 进行 Android 项目的开发与导出时&#xff0c;配置 Android 环境是一项必要步骤。随着 Android Studio 的更新&#xff08;特别是自 Arctic Fox 版本起&#xff09;&#xff0c;安装方式发生了变化&#xff0c;默认不再引导用户手动配置 SDK/JDK/NDK&#xff0c;而…...

Vue-Router中的三种路由历史模式详解

在最新版的 Vue-Router 中&#xff0c;我们使用createRouter和createWebHashHistory、createwebHistory、createMemoryHistory等方法来配置路由。 下面详细介绍这几种历史记录栈的使用与场景&#xff0c;并结合实际代码说明。 1. createWebHashHistory 原理&#xff1a; 1.…...

机器学习多分类逻辑回归和二分类神经网络实践

1、2-17 实现多分类逻辑回归 代码 # 2-17 实现多分类逻辑回归 import pandas as pd import numpy as np import matplotlib.pyplot as plt# 参数设置 iterations 5400 # 迭代次数 learning_rate 0.1 # 学习率 m_train 200 # 训练样本数量# 整数索引值转one-hot向量 def…...

社交类网站设计:经典feed流系统架构详细设计(小红书微博等)

文章目录 一、关注服务1、粉丝、关注数架构设计&#xff08;1&#xff09;数据库实现方案1&#xff08;2&#xff09;数据库实现方案2&#xff08;3&#xff09;基于redis缓存优化&#xff08;4&#xff09;使用专用计数服务&#xff08;5&#xff09;近似计数&#xff08;牺牲…...

K6 是什么

K6 是一款现代化的 开源性能测试工具&#xff0c;专注于开发者和 DevOps 团队的易用性&#xff0c;用于对 Web 应用、API 和微服务 进行高性能的负载测试。它采用 JavaScript 脚本编写测试用例&#xff0c;结合命令行工具和云原生设计&#xff0c;特别适合 CI/CD 集成 和 自动化…...

RISC-V PMA、PMP机制深入分析

1 PMA PMA&#xff08;Physical Memory Attributes&#xff09;&#xff0c;物理内存属性&#xff0c;顾名思义就是用来设置物理内存属性的&#xff0c;但这里说“设置”&#xff0c;并不合理&#xff0c;因为一般情况下各存储的属性&#xff0c;在芯片设计时就固定了&#xf…...

git常见命令说明

git branch -avv -a 显示 所有分支-vv &#xff08;--verbose 的缩写) 额外显示本地分支跟踪的远程分支&#xff08;如 [origin/main]&#xff09;及其状态对比。 # git branch -v * main abc1234 修复登录bugdev def5678 更新文档# git branch -vv * main abc1234 …...

深入解析 Tomcat 线程管理机制:从设计思想到性能调优

一、Tomcat 线程模型的核心架构 Tomcat 的线程管理机制是其高性能的核心支撑&#xff0c;其设计围绕 Connector&#xff08;连接器&#xff09; 和 Executor&#xff08;执行器&#xff09; 两大组件展开。以下为架构分层解析&#xff1a; 1. Connector 的线程模型 Tomcat 的…...

【NebulaGraph】查询案例(七)

【NebulaGraph】查询案例 七 1. 查询语句12. 查询语句23. 查询语句34. 查询语句4 1. 查询语句1 GO FROM "player100" OVER * YIELD type(edge) AS link, properties($$) AS properties,tostring(src(edge)) AS src,tostring(dst(edge)) AS dst, tags($$) AS tagLi…...

从“刚性扩容”到“弹性供给”:移动充电服务重构配电网边际成本

随着新能源技术的快速发展&#xff0c;电动汽车的普及对传统配电网提出了新的挑战。传统的“刚性扩容”模式依赖基础设施的物理扩建&#xff0c;不仅投资成本高&#xff0c;且难以应对动态变化的电力需求。在此背景下&#xff0c;“弹性供给”理念逐渐兴起&#xff0c;特别是移…...

Java与Docker容器化优化:从核心技术到生产实践

在2025年的云原生与微服务时代&#xff0c;容器化技术已成为企业级应用部署的标准&#xff0c;Docker作为主流容器平台&#xff0c;显著提升了应用的 portability、可扩展性和部署效率。根据CNCF 2024年报告&#xff0c;95%的企业在其生产环境中使用Docker&#xff0c;特别是金…...

QT单例模式简单讲解与实现

单例模式是一种创建型设计模式&#xff0c;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。在QT开发中&#xff0c;单例模式常用于管理全局资源&#xff0c;如配置管理、日志系统等。 最简单的QT单例实现 方法一&#xff1a;静态局部变量实现&#xff08;C11及以上…...

Vite Vue3 配置 Composition API 自动导入与项目插件拆分

为了提升开发效率&#xff0c;减少重复引入 ref、reactive、computed 等 Composition API 的繁琐操作&#xff0c;通过 unplugin-auto-import 插件实现自动导入。 1、配置自动导入 1.1 安装插件 npm install -D unplugin-auto-import1.2 配置 vite.config.js import { def…...

React从基础入门到高级实战:React 生态与工具 - React Query:异步状态管理

React Query&#xff1a;异步状态管理 引言 在现代Web开发中&#xff0c;异步数据管理是React应用开发中的核心挑战之一。无论是从远程API获取数据、处理用户交互&#xff0c;还是同步服务器状态&#xff0c;开发者都需要一种高效、可靠的方式来应对这些复杂场景。传统的状态…...

Grafana-Gauge仪表盘

仪表盘是一种单值可视化。 可让您快速直观地查看某个值落在定义的或计算出的最小和最大范围内的位置。 通过重复选项&#xff0c;您可以显示多个仪表盘&#xff0c;每个对应不同的序列、列或行。 支持的数据格式 单值 数据集中只有一个值&#xff0c;会生成一个显示数值的…...

按照状态实现自定义排序的方法

方法一&#xff1a;使用 MyBatis-Plus 的 QueryWrapper 自定义排序 在查询时动态构建排序规则&#xff0c;通过 CASE WHEN 语句实现优先级排序&#xff1a; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.stereotype.Ser…...

游戏引擎学习第313天:回到 Z 层级的工作

回顾并为今天的内容定下基调 昨天我们新增了每个元素级别的排序功能&#xff0c;并且采用了一种我们认为挺有意思的方法。原本计划采用一个更复杂的实现方式&#xff0c;但在中途实现的过程中&#xff0c;突然意识到其实有个更简单的做法&#xff0c;于是我们就改用了这个简单…...

论文阅读:arxiv 2024 SmoothLLM: Defending LLMs Against Jailbreaking Attacks

SmoothLLM: Defending LLMs Against Jailbreaking Attacks 总目录 大模型安全相关研究&#xff1a;https://blog.csdn.net/WhiffeYF/article/details/142132328 https://www.doubao.com/chat/6961264964140546 https://github.com/arobey1/smooth-llm https://arxiv.org/pd…...

Milvus部署架构选择和Docker部署实战指南

导读&#xff1a;向量数据库作为AI时代的核心基础设施&#xff0c;Milvus凭借其强大的性能和灵活的架构设计在市场中占据重要地位。然而&#xff0c;许多开发者在部署Milvus时面临架构选择困惑和配置复杂性挑战&#xff0c;导致项目进展受阻。 本文将为您提供一套完整的Milvus部…...

高效合并 Excel 表格实用工具

软件介绍 这里介绍一款用于 Excel 合并的软件。 使用反馈与工具引入 之前推荐过 Excel 合并工具&#xff0c;但有小伙伴反馈这些工具对于需要合并单元格的 Excel 文件不太适用&#xff0c;而且无法合并表头。鉴于这些问题&#xff0c;找到了今天要介绍的这款 Excel 合并工具…...

【前端】Vue3 中实现两个组件的动态切换保活

在 Vue3 中实现两个组件的动态切换保活&#xff0c;核心是通过 <component> 动态组件与 <KeepAlive> 缓存组件的组合使用。以下是具体实现方案和进阶技巧&#xff1a; 一、基础实现方案 1. 动态组件 KeepAlive 保活 使用 <component :is> 实现动态切换&am…...

拉取gitlab项目

一、下载nvm管理node 先下载配置好nvm,再用nvm下载node 下载链接&#xff1a;开始 下载nvm - nvm中文官网 情况&#xff1a;npm i 下载依赖缓慢&#xff0c;可能是node版本不对&#xff0c;可能node版本太高 可能得问题&#xff1a;使用nvm 下载低版本的node时&#xff0c;…...

树莓派(Raspberry Pi)安装Docker教程

本章教程,主要介绍如何在树莓派上安装Docker。 一、安装步骤 # 卸载旧版本(如果有): for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg;...

计算机视觉---YOLOv4

YOLOv4&#xff08;You Only Look Once v4&#xff09;于2020年由Alexey Bochkovskiy等人提出&#xff0c;是YOLO系列的重要里程碑。它在YOLOv3的基础上整合了当时最先进的计算机视觉技术&#xff0c;实现了检测速度与精度的显著提升。以下从主干网络、颈部网络、头部检测、训练…...

在雄性小鼠自发脑网络中定位记忆巩固的因果中枢

目录 简要总结 摘要 1 引言 2 方法 3 结果 简要总结 这篇文章主要研究了雄性小鼠在自发脑网络中记忆巩固的因果中枢定位。记忆巩固涉及学习后休息和睡眠期间全脑网络的自发重组&#xff0c;但具体机制尚不清楚。目前理论认为海马体在这一过程中至关重要&#xff0c;但其他…...