buuctf- [BJDCTF2020]Easy MD5 (小宇特详解)

2023-11-02

buuctf- [BJDCTF2020]Easy MD5 (小宇特详解)

这里显示查询

这里没有回显,f12一下查看有没有有用的信息

我使用的火狐浏览器在网模块中找到了响应头

Hint:select * from ‘admin’ where password =md5($pass,ture)

这里的关键在于password=md5($pass,ture)

MD5语法

标准格式

md5(string,raw)

参数 描述
string 必需。要计算的字符串。
raw 可选。规定十六进制或二进制输出格式:
TRUE-原始 16字符二进制格式 。
FALSE-默认 32字符十六进制数。

这里的是原始16字符二进制格式

这里说一下两个的联系,这里的16位秘文和32位秘文的第8-24位子字符串时一样的,也就是中间的16位。

这里的原始16字符二进制格式一般会有乱码,如果想解决的话

1.对输出的16位字节的二进制转换为十六进制。

2.取32位秘文的中间16位

如果MD5值经过hex后,就构成万能密码进行了sql注入,这个就是这个题的关键

在mysql里面,在用作布尔型判断时,以数字开头的字符串会被当做整型数。

要注意的是这种情况是必须要有单引号括起来的,比如password=‘xxx’ or ‘1xxxxxxxxx’,那么就相当于password=‘xxx’ or 1 ,也就相当于password=‘xxx’ or true,所以返回值就是true。

如果只有数字的话就不用单引号

这里有个脚本能够跑出来

<?php 
for ($i = 0;;) { 
 for ($c = 0; $c < 1000000; $c++, $i++)
  if (stripos(md5($i, true), '\'or\'') !== false)
   echo "\nmd5($i) = " . md5($i, true) . "\n";
 echo ".";
}
?>

这里用:ffifdyop,这个MD5加密后会返回’or’6XXXXXXXXX(这里的XXXXX是一些乱码和不可见字符)

这里的SQL语句会变成

select * from `admin` where password=''or'6XXXXXXXXX'  

进入下一关

查看源码

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

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

这里使用了==弱比较

== 在进行比较的时候,会先将两边的变量类型转化成相同的,再进行比较

0e在比较的时候会将其视作为科学计数法,所以无论0e后面是什么,0的多少次方还是0。

这里完全可以去寻找明文不同但MD5值为"0exxxxx"

这里提供两个QNKCDZO和s878926199a

构造payload

http://37d8016d-643c-4764-8e62-c8a24e224a75.node3.buuoj.cn/levels91.php?a=QNKCDZO&b=s878926199a

这里用POST的方式传入了两个不相等的参数,然而这两个参数的MD5值要相等,并且是===强比较

MD5有个特点是:如果传入的两个参数不是字符串,而是数组,md5()函数无法解出其数值,而且不会报错,就会得到===强比较的值相等

payload

param1[]=1&param2[]=2即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

buuctf- [BJDCTF2020]Easy MD5 (小宇特详解) 的相关文章

随机推荐

  • 信息网络向价值网络演进过程中产品形态的思考

    随着Facebook品牌更名Meta 持续火爆了一年多的元宇宙概念迎来了互联网巨头的正名 全球互联网生态产品将迎来怎样的新一轮大跃进 本文整理自Contentbox VP Castbox亚洲地区负责人杨霄在量江湖 拍乐云主办的 社交产品如何
  • java 加解密实例(对称——非对称)

    加密算法有很多种 这里只大约列举几例 1 消息摘要 数字指纹 既对一个任意长度的一个数据块进行计算 产生一个唯一指纹 MD5 SHA1 发送给其他人你的信息和摘要 其他人用相同的加密方法得到摘要 最后进行比较摘要是否相同 2 单匙密码体制
  • git本地仓库基本操作--查看提交历史和版本回退前进

    1
  • 版本问题导致 导入vue报错:Uncaught TypeError: Vue is not a constructor

    版本问题导致 导入vue报错 Uncaught TypeError Vue is not a constructor 浏览器控制台错误信息 问题代码 某博客带来的启发 解决方案 附录 vue2生产环境部分代码 vue3生产环境部分代码 浏览
  • window7 配置telnet 服务

    第一步 点击开始 选择控制面板 第二步 选择 程序 选择打开或关闭windows 功能 在选择对话框中勾选Telnet客户端和Telnet服务端 第三步 点击 计算机 管理 属性 修改Telnet服务的启动方式 第四步 判断Telnet服务
  • [LeetCode] Reverse Linked List I II - 链表翻转问题

    题目概述 Reverse a singly linked list 翻转一个单链表 如 1 gt 2 输出 2 gt 1 1 gt 2 gt 3 输出3 gt 2 gt 1 题目解析 本人真的比较笨啊 首先想到的方法就是通过判断链尾是否存在
  • MySQL中的正斜杠和反斜杠

    目录 问题背景 问题提出 1 为什么书上的这种方法得不到正确的数据呢 2 是因为DBMS的问题嘛 3 如何在MySQL上得到正确的数据呢 问题总结 问题背景 今天数据库老师留了一道实验题 如下 14 查询 A C 课程的课程号和学分 如果没
  • 初识C++Primer plus

    写在前面 从事c 编程转眼也快一年了 一直从事工厂数据采集工作 然而就与硬件交互效率来说 无疑c c 与硬件更加契合 就很任性的买了一本c Primer plus 第六版 希望自己在博客里能坚持下去 将自己所悟所感写在这里与大家分享 分割线
  • 飞驰的高铁-第15届蓝桥杯第一次STEMA测评Scratch真题精选

    导读 超平老师的 Scratch蓝桥杯真题解析100讲 已经全部完成 后续会不定期解读蓝桥杯真题 这是Scratch蓝桥杯真题解析第150讲 飞驰的高铁 本题是2023年8月20日举行的第15届蓝桥杯STEMA测评Scratch编程中级组编
  • 源码大杀器:怎样查看源码

    一 以SpringBoot来分析下 首先获取到源码 二 点击GitHub获取源码 三 下载源码 SpringSpace 11 24 24 ls emptydemo springdemo gs accessing data jpa maste
  • 【Python网络爬虫与信息提取】Scrapy爬虫框架

    1 理论知识 pip install scrapy i http pypi douban com simple trusted host pypi douban com scrapy h scrapy startproject python
  • 第五章 初始化与清理(下)

    第五章 初始化与清理 现在总结的东西很多都需要用代码来帮助理解了 所以会有大量的测试代码 不过这中方式非常有用 如果认真敲过一遍之后 并且将这些代码弄清楚了 我相信你一定会对书中描述的内容有一个更清楚的认识 我是在eclipse工具上进行测
  • requests.session()会话保持

    可能大家对session已经比较熟悉了 也大概了解了session的机制和原理 但是我们在做爬虫时如何会运用到session呢 就是接下来要讲到的会话保持 首先说一下 为什么要进行会话保持的操作 requests库的session会话对象可
  • Flink如何连接hive

    回顾在上篇文章中 笔者使用的 CDH 版本为 5 16 2 其中 Hive 版本为 1 1 0 CDH 5 x 系列 Hive 版本都不高于 1 1 0 是不是不可理解 Flink 源代码本身对 Hive 1 1 0 版本兼容性不好 存在不
  • 测绘eps软件快捷键_行业内三款常用软件快捷键汇总整理及自定义设置

    今天小编要和各位看官分享的是测绘行业内三款常用软件的快捷键 这三款常用软件分别是CASS CAD EPS ARCGIS 快捷键是提高绘图速度 提升作业效率的不二法宝 小编也经常在给朋友们说一定要学会使用快捷键 特别是左手键的用法 今天我们就
  • 学习python过程中的心得体会和收获,也说一下好处坏处

    首先 Python是一种流行的编程语言 用于数据分析 机器学习 人工智能等领域 Python的语法简单易懂 易于学习和理解 这使得它成为许多初学者的首选编程语言 对于初学者来说 建议从基础开始学习 例如语法 数据类型 控制流等 同时 也要多
  • Linux下使用《du》命令查看某文件及目录的大小

    du ah max depth 1 这个是我想要的结果 a表示显示目录下所有的文件和文件夹 不含子目录 h表示以人类能看懂的方式 max depth表示目录的深度 du sh 目录 查看目录的大小 du sh 文件 查看文件大小 du命令用
  • Go语言学习史诗级教程-带你领略GoLang语言新世界

    Go基础 下载Go语言开发工具 下载Go语言环境 下载地址 https golang google cn dl 下载Go语言开发工具 下载地址 https www jetbrains com go 第一个Go语言代码 package mai
  • OAuth2 授权码模式为什么不直接返回access_token

    https www cnblogs com erichi101 p 13497971 html OAuth2的实际应用中 最常见的就是 授权码模式 了 微博是这种模式 微信也是这种模式 总结来说 就是简单的二步 1 获取code 2 根据c
  • buuctf- [BJDCTF2020]Easy MD5 (小宇特详解)

    buuctf BJDCTF2020 Easy MD5 小宇特详解 这里显示查询 这里没有回显 f12一下查看有没有有用的信息 我使用的火狐浏览器在网模块中找到了响应头 Hint select from admin where passwor