【BUUCTF】Easy MD5 (SQL注入、PHP代码审计)

题目来源

收录于:BUUCTF  BJDCTF2020

题目描述

抓包得到提示

select * from 'admin' where password=md5($pass,true)

题解

第一关

这是一个SQL注入点,但是有md5()过滤。这里有知识点:mysql会把十六进制数据解析为字符串。

$pass赋值ffifdyop,md5($pass)的值为276f722736c95d99e921722cf9ed621c1,其对应的字符串为'or'6<乱码>',拼合后的语句

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

PHP会删除乱码进行传参,即可成功绕过

第二关

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

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

这是几个md5值以0e开头的字符串

QNKCDZO
s878926199a
s155964671a
s214587387a
s1091221200a
s1885207154a
s1502113478a
s1836677006a
s1184209335a
s1665632922a

任意选取两个赋值给$a$b即可。

第三关

payload:

param1[]=1&param2[]=2

在PHP中,对于md5(),如果传入的两个参数不是字符串,而是数组,md5()函数无法解出其数值,而且不会报错,就会得到强比较的值相等

总结

对于查询语句

select * from 'admin' where password=md5($pass,true)

$pass赋值为:ffifdyop

对于判断

if($a != $b && md5($a) == md5($b))

$a$b分别随意取以下的两个值即可

QNKCDZO
s878926199a
s155964671a
s214587387a
s1091221200a
s1885207154a
s1502113478a
s1836677006a
s1184209335a
s1665632922a

对于判断

if($a !== $b && md5($a) === md5($b))

使用数组绕过,payload:

a[]=1&b[]=2

【BUUCTF】Easy MD5的更多相关文章

  1. 【tyvj1952】easy

    AK大神又AK了!!! orzorzorz 题意: 给出一个字符串由'x'.'o'.'?' '?'有一半的几率为'x' 一半几率为'o' 得分为所有连续的'o'的个数的平方和 如ooxooo 得分为2 ...

  2. 【Python】Shell MD5使用的那些事

    MD5 应该是用的非常多的算法,就自己使用经验说说吧. 场景 算法层面不多说了,维基百科,还有很多文章都有说明. 主要用过的场景 密码存储,现在基本没怎么有使用的了,毕竟破解容易了很多 API校验,现 ...

  3. 【Unity3D】使用MD5值,确保本地Sqlite数据库内容没有被篡改

    Sqlite的应用场景 在判断是否使用存储格式为Sqlite模式的标准,我们的标准是内容只读.也就是说,除非发布者修改Sqlite内容,玩家只有读取的权限. 换个角度说,Sqlite里面的数据都是游戏 ...

  4. BZOJ 4318: OSU! 期望概率dp && 【BZOJ3450】【Tyvj1952】Easy 概率DP

    这两道题是一样的...... 我就说一下较难的那个 OSU!: 这道15行的水题我竟然做了两节课...... 若是f[i][0]=(1-p)*f[i-1][0]+(1-p)*f[i-1][1],f[i ...

  5. 【BZOJ3450】Easy [期望DP]

    Easy Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 某一天WJMZBMR在打osu~~ ...

  6. 【转】 Easy RadControl 之 RadGridView(Silverlight)

    1.不显示第1列即列指示器(Row Indicators) 在 telerik:RadGridView中设置属性   RowIndicatorVisibility="Collapsed&qu ...

  7. 【BZOJ3450】【Tyvj1952】Easy 可能DP

    联系: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...

  8. 【ZCTF】easy reverse 详解

    0x01  前言     团队逆向牛的解题思路,分享出来~ 0x02  内容 0. 样本 bbcdd1f7-9983-4bf4-9fde-7f77a6b947b4.dll 1. 静态分析 使用IDAP ...

  9. 【BZOJ3450】Easy(期望)

    题意: 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(我们来简化一下这个游戏的规则有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续a个comb就有a ...

  10. 【POJ3740】Easy Finding DLX(Dancing Links)精确覆盖问题

    题意:多组数据,每组数据给你几行数,要求选出当中几行.使得每一列都有且仅有一个1.询问是可不可行,或者说能不能找出来. 题解:1.暴搜.2.DLX(Dancing links). 本文写的是DLX. ...

随机推荐

  1. WinForm 通用权限框架,简单实用支持二次开发

    前言 开发一个安全.灵活且易于维护的应用程序是至关重要的.特别是在企业级应用中,权限管理不仅涉及到用户访问控制,还关系到数据的安全性和系统的稳定性. 推荐一款 WinForm 通用.完整的权限架构开发 ...

  2. COSBrowser 文件对比——更实用的文件管理功能

    我们在使用 COSBrowser 来管理腾讯云存储的文件时,目前我们大家所熟知的上传/下载方式,主要有以下三种: 通过点击按钮上传/下载 通过拖拽的形式进行上传/下载 通过 URL 链接进行上传/下载 ...

  3. Java性能最后一个领域:去除垃圾回收器

    Java性能最后一个领域:去除垃圾回收器 不产生垃圾不等于不创建对象,如果对象创建满足以下几个条件,仍然可以在创建对象之后不需要垃圾回收器: 应用程序或者库在初始化的时候生成有限个数的对象,然后不断复 ...

  4. pmml(模型标准化)

    PMML简介PMML全称预言模型标记模型(Predictive Model Markup Language),以XML 为载体呈现数据挖掘模型.PMML 允许您在不同的应用程序之间轻松共享预测分析模型 ...

  5. 智谱开源CogAgent的最新模型CogAgent-9B-20241220,全面领先所有开闭源GUI Agent模型

    在现代数字世界中,图形用户界面(GUI)是人机交互的核心.然而,尽管大型语言模型(LLM)如ChatGPT在处理文本任务上表现出色,但在理解和操作GUI方面仍面临挑战,因此最近一年来,在学界和大模型社 ...

  6. Qt音视频开发02-海康sdk解码(支持句柄/回调/gpu模式/支持win/linux)

    一.前言 为何还要选用使用海康sdk,之前不是ffmpeg已经牛皮吹上天了吗?这个问题问得好,那是因为无论ffmpeg也好还是vlc/mpv之类的,都是实现的播放相关,不同的监控硬件厂家对应设备还有很 ...

  7. Halo博客+兰空图床搭建保姆级指南

    1. 简介 1.1 依赖的相关软件 Docker.Docker-Compose底层运行环境 Minio底层的存储支持 Mysql关系型数据库 Redis缓存中间件 NginxProxyManager( ...

  8. [转]CopyPlugin Invalid Options options should be array ValidationError: CopyPlugin Invalid Options

    这个错误是使用webpack的一个plugin出现的错误.这个plugin是copy-webpack-plugin我把文档的例子复制,然后就报了这个错误.文档的例子: const CopyPlugin ...

  9. Kubernetes系列(三) - 通过Kubeadm部署kubernetes

    目录 1. Kubeadm简介 2. 本次操作的机器配置 3. 部署步骤 3.1 准备工作 3.2 安装docker 3.3 安装kubeadm, kubectl, kubelet 3.4 maste ...

  10. 展锐SE8451E 开启硬件流控

    Dear Customer:  如电话沟通,若将uart0配置成3M波特率,需进行如下更改:  1.时钟源更改为96M/sprdroid10_trunk_19c_rls1/bsp/kernel/ker ...