【BUUCTF】Easy MD5
【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¶m2[]=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的更多相关文章
- 【tyvj1952】easy
AK大神又AK了!!! orzorzorz 题意: 给出一个字符串由'x'.'o'.'?' '?'有一半的几率为'x' 一半几率为'o' 得分为所有连续的'o'的个数的平方和 如ooxooo 得分为2 ...
- 【Python】Shell MD5使用的那些事
MD5 应该是用的非常多的算法,就自己使用经验说说吧. 场景 算法层面不多说了,维基百科,还有很多文章都有说明. 主要用过的场景 密码存储,现在基本没怎么有使用的了,毕竟破解容易了很多 API校验,现 ...
- 【Unity3D】使用MD5值,确保本地Sqlite数据库内容没有被篡改
Sqlite的应用场景 在判断是否使用存储格式为Sqlite模式的标准,我们的标准是内容只读.也就是说,除非发布者修改Sqlite内容,玩家只有读取的权限. 换个角度说,Sqlite里面的数据都是游戏 ...
- 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 ...
- 【BZOJ3450】Easy [期望DP]
Easy Time Limit: 10 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description 某一天WJMZBMR在打osu~~ ...
- 【转】 Easy RadControl 之 RadGridView(Silverlight)
1.不显示第1列即列指示器(Row Indicators) 在 telerik:RadGridView中设置属性 RowIndicatorVisibility="Collapsed&qu ...
- 【BZOJ3450】【Tyvj1952】Easy 可能DP
联系: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...
- 【ZCTF】easy reverse 详解
0x01 前言 团队逆向牛的解题思路,分享出来~ 0x02 内容 0. 样本 bbcdd1f7-9983-4bf4-9fde-7f77a6b947b4.dll 1. 静态分析 使用IDAP ...
- 【BZOJ3450】Easy(期望)
题意: 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(我们来简化一下这个游戏的规则有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续a个comb就有a ...
- 【POJ3740】Easy Finding DLX(Dancing Links)精确覆盖问题
题意:多组数据,每组数据给你几行数,要求选出当中几行.使得每一列都有且仅有一个1.询问是可不可行,或者说能不能找出来. 题解:1.暴搜.2.DLX(Dancing links). 本文写的是DLX. ...
随机推荐
- 通过本地私有的镜像仓库harbor解决网络原因导致的jdk无法加载而造成的docker打包错误
各种网络原因,或是docker.io无法访问,或是阿里的镜像源故障,导致java打包发布的时候报错,很影响代码发布的质量. 解决思路:墙出去把jdk下载下来,代码使用本地的harbor库进行引用,一 ...
- 【转载】 利用p6spy拦截并查看数据库执行操作
https://blog.csdn.net/fanxiaobin577328725/article/details/71601760 一.简介 项目首 页:http://p6spy.github.io ...
- 【转载】Spring Cloud Gateway-全局过滤器(Global Filters)
http://www.imooc.com/article/290821 TIPS 本文基于Spring Cloud Gateway SR2,理论适配Spring Cloud Gateway SR1以及 ...
- Qt开发经验小技巧276-280
对MDI窗体区域设置背景颜色透明,会发现 QMdiArea{background:transparent;} 无效,哪怕是指定颜色 QMdiArea{background:#ff0000;} 或者 Q ...
- Qt音视频开发48-通用通道管理
一.前言 把通用的视频控件搞定以后,后期增加新的内核方便多了,不需要在好多个文件复制粘贴之类的,接下来就是需要一个统一的类来管理视频监控系统中的16个通道或者32个通道,甚至64个通道也有可能,当然, ...
- 百度高效研发实战训练营-Step3
.# 百度高效研发实战训练营-Step3 3.1 质量意识 关于本部分,将从以下几点进行介绍: 3.1.1 质量的基本概念 意识的树立,源于认识的提高. 首先介绍质量的基本概念,主要包括以下内容: 1 ...
- Airtest使用问题列表
ios 系统为12.4.8,因此安装Xcode 10.3; 问题1: python3: error: unable to find utility "python3", ...
- 如何监控Linux服务器资源使用情况
--- 好的方法很多,我们先掌握一种 --- [背景] 在做性能验证时(其他情况通用),需要监控服务器资源的使用情况,例如cpu,内存等信息 我们就可以简单通过shell脚本后台运行,持续监控需要 ...
- 深入理解ASP.NET Core 管道的工作原理
在 .NET Core 中,管道(Pipeline)是处理 HTTP 请求和响应的中间件组件的有序集合.每个中间件组件都可以对请求进行处理,并将其传递给下一个中间件组件,直到请求到达最终的处理程序.管 ...
- R语言系列—Rstudio简介和安装
同学们,大家好,今天继续更新R语言系列.今天我们开始讲R语言的集成开发环境(IDE)-Rstudio,这里会对Rstudio及其安装进行介绍,感兴趣的同学可以重点关注一下. Rstudio简介 Rst ...