练习 19 Web [BJDCTF2020]Easy MD5

news2024/10/9 4:18:56

如果你是第一批做这个题的,这道题一点也不easy

打开在前端代码里面看到,输入框输入的内容实际是’password’
在这里插入图片描述
随意输入内容,查看响应header中的内容有一句SQL代码,可知我们要让password在md5后返回值为true
在这里插入图片描述

然后尬住,开搜

MD5碰撞
总结ctf中 MD5 绕过的一些思路
ffifdyop——绕过中一个奇妙的字符串
BJDCTF2020 Easy MD5(详细
BUUCTF [BJDCTF2020]Easy MD5 详解
sql注入:md5($password,true)

根据以上信息
在其他wp和博客中得知:
md5函数在指定了true的时候,是返回的原始 16 字符二进制格式。也就是说会返回这样子的字符串:'or’6\xc9]\x99\xe9!r,\xf9\xedb\x1c
然后就会拼接成:

select * from 'admin' where password=''or'6.......'

这句在MySQL 中会形成“永真”,和常规的sql注入password=''or’1逻辑一致

要注意本题中password= 后面直接就是md5()函数
返回的字符串本是'or'6.......
得到为什么不是 password='or' 6 ,而password=' 肯定会报错
原因是,md5()函数返回值的类型是字符串,会再带一对 ''
所以得到的确实是password=''or' 6........'

这要令password的值在md5加密后

在其他wp中,知道了ffifdyop这个特殊字符串,刚好符合'or'6

ffifdyop绕过原理是:
ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是 ’ or ‘6
而 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是 select * from ‘admin’ where password=’ ’ or ‘6xxxxx’,等价于 or 一个永真式
,因此相当于万能密码,可以绕过md5()函数。

输入ffifdyop后,得到:
在这里插入图片描述
查看前端代码,看到一段注释的代码
在这里插入图片描述

<!--
$a = $GET['a'];
$b = $_GET['b'];

if($a != $b && md5($a) == md5($b)){
    // wow, glzjin wants a girl friend.
-->

这个在我的练习4,我遇到过,直接输入两个数组类型并且不一样的值就能绕过
因为md5函数输入数组返回null
null =null成立
payload:?a[]='123'&b[]='1234'
成功,又看到了一组代码
在这里插入图片描述

这一组也是一样的解法,数组绕过md5
在这里插入图片描述

flag{bb709a3d-2f98-41f9-b26c-5dd79df15d4a}

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

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

相关文章

3月造车新势力销量出炉:问界继续领跑,哪吒下滑,岚图抢眼

进入4月份&#xff0c;各大造车新势力们纷纷公布了3月份最新销量成绩&#xff0c;根据相关数据显示&#xff0c;问界再度超越理想&#xff0c;夺得造车新势力头名的位置。而零跑、蔚来、小鹏的销量也实现不错的增长&#xff0c;岚图汽车的表现同样十分亮眼。不过日前遭到周鸿祎…

C/C++程序的(编译,链接)翻译与运行

目录 前言&#xff1a; 1.程序环境 2.翻译环境 3.预处理&#xff08;预编译&#xff09; 4.编译 5.汇编 6.链接 7.运行环境 总结&#xff1a; 前言&#xff1a; 本篇来解释c/c程序的翻译环境与运行环境中的过程&#xff0c;不同的编程语言的翻译环境类似&#xff0c;…

[每周一更]-第92期:Go项目中的限流算法

这周五在清明假期内&#xff0c;提前更新文章 很多业务会有限流的场景&#xff0c;比如活动秒杀、社区搜索查询、社区留言功能&#xff1b;保护自身系统和下游系统不被巨型流量冲垮等。 在计算机网络中&#xff0c;限流就是控制网络接口发送或接收请求的速率&#xff0c;它可防…

MyBatis-Plus03

测试自定义功能 首先创建mapper文件夹。 在UserMapper下编写sql语句&#xff08;把namespace改为自己的&#xff09; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""…

查询SQL server数据库在后台执行过的语句

查询SQL server数据库在后台执行过的语句 SELECT TOP 30000total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],last_execution_time AS [最后一次执行时间],min_worker_ti…

Windows系统基于WSL子系统的torchquantum安装记录GPU版本

子系统需要的环境&#xff1a; anaconda/miniconda、pip换源(清华源) 1.准备 torchquantum最新版本可以从github上找到&#xff0c;直接clone/下载整个project&#xff0c;查看环境要求&#xff0c;需要安装pytorch和tensorflow 新建一个conda环境&#xff0c;注意python最…

算法沉淀——动态规划篇(子数组系列问题(下))

算法沉淀——动态规划篇&#xff08;子数组系列问题&#xff08;下&#xff09;&#xff09; 前言一、等差数列划分二、最长湍流子数组三、单词拆分四、环绕字符串中唯一的子字符串 前言 几乎所有的动态规划问题大致可分为以下5个步骤&#xff0c;后续所有问题分析都将基于此 …

【JavaScript 漫游】【052】Proxy

文章简介 本篇文章为【JavaScript 漫游】专栏的第 052 篇文章&#xff0c;记录了 ES6 规范中 Proxy 的知识点。 概述 Proxy 用于修改某些操作的默认行为&#xff0c;等同于在语言层面做出修改&#xff0c;所以属于一种“元编程”&#xff08;meta programming&#xff09;&a…

微信公众号如何开通留言功能?

首先&#xff0c;我们需要了解为什么现在注册的公众号没有留言功能。这是因为所有在2018年之后注册的微信公众号都无法再自带留言功能。这一变化是根据微信的通知而实施的。自2018年2月12日起&#xff0c;微信对新注册的公众号进行了调整&#xff0c;取消了留言功能。这一决策主…

多线程重点知识(个人整理笔记)

目录 1. java 多线程 1.1. 什么是进程?什么是线程? 1.1.1. 进程 1.1.2. 线程 1.1.3. 多线程 2. 并行和并发有什么区别&#xff1f; 3. 守护线程是什么&#xff1f; 4. 创建线程有哪几种方式&#xff1f; 4.1. 线程的常见成员方法 5. 线程安全问题 5.1. synchronize…

伪造靶机之iptables

伪造禁ping、网络不可达、主机不可达、协议、端口的命令 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -s 172.18.6.89 -p icmp -j REJECT --reject-with icmp-net-unreachable iptables -A INPUT -s 172.18.6.89 -p icmp -j REJECT --re…

HCIA笔记

console 登录设备的特点&#xff1a; 1、带外&#xff0c;不依赖网络本身的连通性。 2、独占&#xff0c;console口不能被多人同时使用&#xff0c;具备唯一性。 3、本地&#xff0c;console口长度有限&#xff0c;一般只能在机房或者设备现场来使用。 4、只能实现命令行的管理…

Golang | Leetcode Golang题解之第7题整数反转

题目&#xff1a; 题解&#xff1a; func reverse(x int) (rev int) {for x ! 0 {if rev < math.MinInt32/10 || rev > math.MaxInt32/10 {return 0}digit : x % 10x / 10rev rev*10 digit}return }

一文搞懂cookie,session,token,JWT到底是怎么进行验证的???

文章目录 cookiesessiontokenJWT 比较 HTTP 协议是一种无状态协议&#xff0c;每次服务端接收到客户端的请求时&#xff0c;都是一个全新且独立请求&#xff0c;这样就无法获取历史请求的记录&#xff0c;为了解决这种机制&#xff0c;让某个域名下的所有网页能够共享某些数据&…

openlayers 入门教程(九):overlay 篇

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

云原生技术精选:探索腾讯云容器与函数计算的最佳实践

文章目录 写在前面《2023腾讯云容器和函数计算技术实践精选集》深度解读案例集特色&#xff1a;腾讯云的创新实践与技术突破精选案例分析——Stable Diffusion云原生部署的最佳实践精选集实用建议分享总结 写在前面 在数字化转型的浪潮下&#xff0c;云计算技术已成为企业运营…

电脑上怎么压缩图片?三个处理方法介绍

随着我们现在使用图片的地方越来越多&#xff0c;我们处理图片的情况也比较多了&#xff0c;通过压缩图片大小可以使图片文件更小&#xff0c;从而减少存储空间和带宽的使用&#xff0c;同时也可以提高加载速度和性能。良好的图片压缩可以有效地减少文件大小&#xff0c;同时保…

【Spring】使用@Bean和@Import注解配置Bean,与Bean的实例化

目录 1、bean是什么 2、配置bean 2.1、使用Bean注解配置Bean 2.2、使用Import注解配置Bean 3、实例化Bean 1、bean是什么 在 Spring 中&#xff0c;Bean 是指由 Spring 容器管理的对象。Spring IOC 容器负责创建、配置和管理这些 Bean 对象的生命周期。Spring IOC 容器会管…

Linux简单介绍

Linux简单介绍 编译器VMware虚拟机Ubuntu——LinuxOS为什么使用LinuxOS&#xff1f; 目录结构Windows目录结构Linux操作系统home是不是家目录&#xff1f; Linux常用命令终端命令行提示符与权限切换命令tab 作用&#xff1a;自动补全上下箭头pwd命令ls命令mkdir命令touch命令rm…

C++实现vector

目录 前言 1.成员变量 2.成员函数 2.1构造函数 2.2析构函数 2.3begin,end 2.4获取size和capacity 2.5函数重载【】 2.6扩容reserve 2.7resize 2.8insert 2.9删除 2.10尾插、尾删 3.0拷贝构造函数 3.1赋值运算符重载 前言 自主实现C中vector大部分的功能可以使我们更好的理解并使…