【web | CTF】BUUCTF [BJDCTF2020]Easy MD5

2024-02-17 06:52
文章标签 buuctf web ctf easy md5 bjdctf2020

本文主要是介绍【web | CTF】BUUCTF [BJDCTF2020]Easy MD5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

天命:好像也挺实用的题目,也是比较经典吧

天命:把php的MD5漏洞都玩了一遍

第一关:MD5绕过

先声明一下:这题的MD5是php,不是mysql的MD5,把我搞迷糊了

一进来题目啥也没有,那么就要看源码和抓包了

在响应头发现sql语句

经分析,这sql语句半真半假,应该是这样子的

$sql = "select * from test.admin where password='".md5($str,true)."'";

大坑:里面的md5函数是php的

参加加个true就是输出16位的二进制,正常显示绝逼是乱码的,所以也不需要echo看了

这里就是需要经过md5加密后,依旧可以进行sql注入

网上说:ffifdyop 的MD5加密结果是 276f722736c95d99e921722cf9ed621c

经过MySQL编码后会变成'or'6xxx,使SQL恒成立,相当于万能密码,可以绕过md5()函数的加密

其实一开始还不理解,然后自己写了一个测试真假

现在mysql测试

然后放入php代码测试

居然是真的,原理就是这样子,只要有东西,就算是true,那就忽略密码直接判断为true

这里好像说是MySQL特性,只有数字在开头才算有东西,字母在前面是没东西的,所以6xxx刚好算是有东西,判定为 true

所以只需要把 ffifdyop 输入进去就完事

第二关:弱比较MD5绕过

来到第二个页面,啥也没有,照旧两步骤,看源码和抓包

看到了隐藏的php源码

$a = $_GET['a'];
$b = $_GET['b'];if($a != $b && md5($a) == md5($b)){echo "wow, glzjin wants a girl friend";
}

这里难点就是不一样的情况下都采用md5加密,并比较,还好有个漏洞,就是弱比较大漏洞

两个等号的情况下 == ,只要是0e开头,都会当成科学计数法,无论是0的多少次方,通通都是0

那么找两个md5加密后是0e开头的内容就可以了

一搜一大堆,搞掂,下一关

第三关:php特性绕过MD5

这关已经超出我认知范围了,原来MD5这个函数只比较字符串,其他一律不管

我们传进去的是数组,那么两个变量就肯定不相等,但md5函数识别不了数组,当成是同一个数组进行加密,那得到的结果肯定一样啊,这个属于php的md5漏洞了吧

flag{a2a7fba8-9c7d-4ffa-8d1f-47781db64c89}

这篇关于【web | CTF】BUUCTF [BJDCTF2020]Easy MD5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/716999

相关文章

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

Java如何将文件内容转换为MD5哈希值

《Java如何将文件内容转换为MD5哈希值》:本文主要介绍Java如何将文件内容转换为MD5哈希值的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java文件内容转换为MD5哈希值一个完整的Java示例代码代码解释注意事项总结Java文件内容转换为MD5

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加