今天刷了一下 Bugku-CTF-web 的1-10题,比较简单,比较娱乐,基本上看看源代码就可以了,非常适合初学者。能够学习到base64编码,unicode编码,dirb web目录遍历,SourceLeakHacker 备份文件遍历,hackbar插件,wget 操作,git 操作,php 弱类型,md5 绕过等知识点。

ailx10

2001 次咨询

4.9

网络安全优秀回答者

互联网行业 安全攻防员

去知乎ailx10 咨询

1、滑稽

直接F12查看源代码

2、计算器

F12查看源,发现限制了输入长度

尝试修改,发现修改不了值,继续搜寻,发现code.js前端代码中存在flag

3、alert

打开网页就是弹框,F12也看不了

废话不多说,view-source:直接强制查看源代码

最后看到了一行注释

<!-- &#102;&#108;&#97;&#103;&#123;&#54;&#54;&#48;&#49;&#54;&#49;&#52;&#50;&#50;&#99;&#102;&#99;&#100;&#51;&#57;&#48;&#51;&#54;&#102;&#98;&#101;&#97;&#49;&#55;&#97;&#48;&#49;&#52;&#54;&#102;&#54;&#101;&#125; --></script>  

直接Unicode解码,拿到flag,也可以Python解码

import htmlencoded_str = "&#102;&#108;&#97;&#103;&#123;&#54;&#54;&#48;&#49;&#54;&#49;&#52;&#50;&#50;&#99;&#102;&#99;&#100;&#51;&#57;&#48;&#51;&#54;&#102;&#98;&#101;&#97;&#49;&#55;&#97;&#48;&#49;&#52;&#54;&#102;&#54;&#101;&#125;"
decoded_str = html.unescape(encoded_str)print(decoded_str)

4、你必须让他停下

F12能看到flag,也是一瞬间就没有了,还是 view-source: 多刷几次,就拿到flag了

5、头等舱

查看源代码:线索应该在请求头里面

结果在响应头中找到了 flag

6、GET

阅读代码,发一个GET请求就能拿到flag

7、POST

阅读代码,使用 Hackbar 提交一个POST请求,即可获得flag

8、source

查看源代码,拿到flag线索

flag{Zmxhz19ub3RfaGvyzSEHIQ==}

使用base64解码,发现不是flag

尝试目录暴力破解

dirb http://114.67.175.224:12221/

可以发现存在 /.git/ 目录

使用wget 递归下载

wget -r http://114.67.175.224:12221/.git

使用 git reflog 查看历史操作记录

使用 git show 40c6d51 查看到 flag

9、矛盾

在 PHP 中,当你使用 == 进行比较时,如果比较的两个值类型不同,PHP 会尝试将它们转换为相同的类型,然后再进行比较

10、备份是个好习惯

没啥线索,根据题目,是有一个备份文件,暴力破解它

python3 SourceLeakHacker.py -u http://114.67.175.224:12717/

查看备份的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";
}
?>

要拿到 flag,需要满足条件 md5($key1) == md5($key2) && $key1 !== $key2

这意味着 $key1 和 $key2 的 MD5 哈希值必须相同,但 $key1 和 $key2 本身不能相同。[1]

http://114.67.175.224:12717/?kkeyey1=QNKCDZO&kkeyey2=240610708

写个PHP脚本,输出专属ailx10的字符串,哈希结果是以0e开头,后面跟着纯数字

  • md5(ailx10597395974) = 0e607193511294857832340276123482
  • md5(ailx101258820612) = 0e410179301007418220015365512318
<?php
function findMD5Collision($prefix) {// 循环尝试不同的字符串for ($i = 0; $i < pow(10, 12); $i++) {// 生成一个候选字符串$candidate = $prefix . $i;// 计算 MD5 哈希值$md5 = md5($candidate);// 检查哈希值是否符合要求if (preg_match("/^0e[0-9]{30}$/", $md5)) {echo $candidate;return $candidate; // 返回符合条件的字符串}}return false; // 如果没有找到,则返回 false
}$prefix = "ailx10"; // 我们希望字符串以 "ailx10" 为前缀
$string = findMD5Collision($prefix);
if ($string !== false) {echo "找到的字符串: " . $string . "\n";echo "MD5 哈希值: " . md5($string) . "\n";
} else {echo "未找到符合条件的字符串。\n";
}
?>

参考

  1. ^md5绕过(Hash缺陷) php 弱类型总结 - Mrsm1th - 博客园

发布于 2024-10-06 07:42・江苏 

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【实时Linux实战系列】基于实时Linux的音频处理应用开发

在实时系统中&#xff0c;音频处理应用&#xff08;如实时音频效果处理、语音通信等&#xff09;需要低延迟和高精度的时间控制。实时Linux通过优化内核调度和提供高效的I/O操作&#xff0c;能够满足音频处理对实时性的严格要求。掌握基于实时Linux的音频处理应用开发对于开发者…

Linux中信号的三种产生方式

在 Linux 中&#xff0c;信号&#xff08;Signal&#xff09;是一种进程间通信的机制&#xff0c;用于通知进程发生了某种事件。理解信号的来源对于开发可靠、健壮的程序至关重要。本文将介绍三种常见的信号产生方式&#xff0c;包括&#xff1a;kill 命令、键盘输入&#xff0…

Android15启动icon界面的背景图颜色

Android15启动icon界面的背景图颜色 在一加Ace 5启动时有个图标在中间的&#xff0c;它界面的背景图是灰色的&#xff0c;不好看&#xff0c;想改为白色。 解决方案&#xff1a; 在app下的AndroidManifest.xml文件的<application这个标签的android:theme增加&#xff1a;…

用福昕阅读器打开pdf文件,整个程序窗口自动缩小的问题

原因&#xff1a; 这个问题&#xff0c;其实是pdf自带了某个缩放比例&#xff0c;与窗口的比例不一致&#xff0c;因此会进行窗口缩放。 解决方法: 用acrobat&#xff08;我没有找到如何用福昕阅读器进行设置的方法&#xff09;&#xff0c;打开【文档属性】&#xff0c;然后打…

Windows环境Browser-Use平台部署与AI自动化远程访问实现过程

文章目录 前言1. 安装Ollama2. Gemma3模型安装与运行3. 虚拟环境准备3.1 安装Python3.2. 安装conda 4. 本地部署Brower Use WebUI4.1 创建一个新conda环境4.2 克隆存储库4.3 安装依赖环境4.4 安装浏览器自动化工具4.5 修改配置信息 5. 本地运行测试6. 安装内网穿透6.1 配置公网…

React + Umi(Umijs/Max) 搭建项目及配置

文章标题 01 环境准备02 快速构建2.1 参数选项2.2 umix 还是 umijs/max2.3 使用 pnpm &#xff08;推荐&#xff09;2.4 使用 npm 和 yarn2.5 启动项目2.6 启用 Prettier&#xff08;可选&#xff09;2.7 打包部署发布 03 Tailwind CSS 插件&#xff08;可选&#xff09;3.1 安…

JDK 17 中 java.lang.System 常用方法及应用场景

概述 java.lang.System 在 JDK 17 中依然是最核心的系统交互类之一。以下是针对 JDK 17 的常用方法详解&#xff0c;包含新特性和最佳实践。 一、标准 I/O 流&#xff08;更新至 JDK 17&#xff09; 1. 控制台输出 // 传统输出方式&#xff08;仍然可用&#xff09; System…

深入探究Manticoresearch Java API:新增与查询文档实战

引言Java 项目集成 Manticoresearch新增文档操作查询文档操作 SQL 查询API 查询 总结 引言 Manticore Search 是一个使用 C 开发的高性能搜索引擎&#xff0c;创建于 2017 年&#xff0c;其前身是 Sphinx Search。它显著改进了 Sphinx 的功能&#xff0c;修复了数百个错误&am…

Linux远程机器无法连接-------解决方案

笔者这几天碰到linux机器远程ssh 无法连接的情况 背景分析 笔者在linux机器进行测试的时候&#xff0c;偶发突然无法连接机器&#xff0c;如下图所示&#xff0c;vscode的远程连接也无法进行。 telnet也无法登录。 解决方案 笔者的登录场景是这样的&#xff0c;所以怀疑是…

网络模型中,应用层支持什么协议

在网络模型中&#xff08;无论是 OSI 七层模型 还是 TCP/IP 四层模型&#xff09;&#xff0c;应用层 是最顶层&#xff0c;直接为用户或应用程序提供网络服务接口。它支持的是各种具体的应用程序协议&#xff0c;这些协议定义了特定类型应用程序如何进行通信和数据交换。 以下…

比特币序数理论与铭文的终极指南

引言&#xff1a;比特币网络的意外趋势 去年&#xff0c;比特币网络上出现了一个意外的趋势——这一趋势令许多比特币纯粹主义者感到愤怒和惊讶&#xff0c;但同时也在更广泛的加密货币社区中点燃了对这个行业最古老、最安全区块链的希望和热情。 这个趋势涉及铭文&#xff0…

C/C++ DLL 动态链接库的开发与示例详解

简介 介绍 QT6&#xff0c;DLL 动态链接库的开发&#xff0c;开发示例 详细 DLL 入口函数 DllMain 是每个 dll 的入口函数&#xff0c;可以写&#xff0c;也可以不写&#xff0c;不影响其他库函数运行。如果使用此函数需要包含头文件#include <objbase.h>。 BOOL WI…

在 CentOS 7 上基于 Docker 的 LNMP 部署 Hexo

时间起因是因为之前BLOG没有备份数据都丢失了,今天在和朋友聊天的时候讨论到到底使用Hexo还是用Halo?最后还是想熟悉下这两种博客的架设和部署方式,每次部署都有各种不同的问题,旨在提升自己的学习认知。以此有机会得到更多大佬们的指导~ 因为我是在 CentOS 7 服务器上使用…

《Go小技巧易错点100例》第三十六篇

本期分享&#xff1a; 1.使用gops获取正在运行的Go进程 2.将静态文件编译到Go程序中 3.Go语言通过多重赋值实现变量值交换 使用gops获取正在运行的Go进程 在 Go 语言开发中&#xff0c;进程诊断和性能分析是保障服务稳定性的关键环节。Google 开源的 gops [https://github.…

Idea新UI

轻松上手Idea新UI&#xff1a;开启高效编程新体验 在软件开发领域&#xff0c;IntelliJ IDEA一直以其强大的功能和出色的性能深受开发者喜爱。而其推出的new ui&#xff0c;更是为我们带来了全新的操作体验&#xff0c;进一步提升了开发效率。今天&#xff0c;就来详细讲讲如何…

QML\QtQuick\QtWidgets适合的场景及其优缺点

在Qt框架中&#xff0c;QML、QtQuick和QtWidgets是三种不同的UI开发技术&#xff0c;各有其适用场景和优缺点。以下是它们的对比分析&#xff1a; 1. QtWidgets 适用场景&#xff1a; 传统的桌面应用程序&#xff08;Windows/macOS/Linux&#xff09;。 需要复杂控件&#xf…

Spring Boot 2.x 项目搭建 (二)

因为Spring Boot 2.x 项目搭建 &#xff08;一&#xff09;访问 start.spring.io 或通过IDE&#xff08;如IntelliJ IDEA&#xff09;的Spring Initializr向导创建项目时&#xff0c;只能使用jdk17以上的版本&#xff0c;这里我需要兼容老项目需要JDK1.8&#xff0c;所以进行一…

Python 前端框架/工具合集

前言 Python 本身并不是为前端开发而设计的语言&#xff0c;但确实有一些 Python 框架可以“变相”地用于前端开发&#xff0c;比如生成 HTML、控制前端页面逻辑&#xff0c;甚至可以直接运行在浏览器中。 目标 本文将对常见的使用python实现的前端框架&#xff0c;先做一个…

Swagger 在 Spring Boot 中的详细使用指南

Swagger 是一个强大的 API 文档生成工具&#xff0c;在 Spring Boot 项目中主要通过 springdoc-openapi 库实现。下面我将详细讲解 Swagger 的配置、注解使用和高级功能。 一、基础配置 1. 添加依赖 在 pom.xml 中添加&#xff1a; xml 复制 下载 运行 <dependency&…

群晖如何开启及使用ssh:小白用户上手指南-家庭云计算专家

最近很多用户希望提供群晖下onlyoffice的安装服务,但是很多都是萌新小白,不知道怎么启用ssh和使用ssh客户端.这里提供简单的方法,统一答复: 重要的事情说3遍:一定不要自己发挥,全部按说明的来;一定要在内网环境用内网ip访问;不要用域名和端口号,谢谢各位萌新了!!! 一、ssh启用…