【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. MySQL8设置root用户远程访问

    查询当前root状态,默认root的host是localhost use mysql; select user,host from user; update root的host为% update us ...

  2. IOS多线程之NSOperation(2)

    IOS多线程之NSOperation(2) 最大并发数 open var maxConcurrentOperationCount: Int 并发数就是同时执行的任务数.比如,同时开3个线程执行3个任务 ...

  3. OpenTelemetry.NET API

    OpenTelemetry.NET API Status and Releases Tracing Metrics Logging 1.0 Alpha Beta 安装 dotnet add packa ...

  4. 【前端】【H5 API】实现全屏显示功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Springboot上传文件大小限制处理

    今天在开发过程中遇到一个文件上传的问题 io.undertow.server.RequestTooBigException: UT000020: Connection terminated as re ...

  6. Ubuntu下安装和开启telnet

      安装命令如下 sudo apt-get install openbsd-inetd sudo apt-get install telnetd sudo /etc/init.d/openbsd-in ...

  7. Intellij IDEA部署Web项目到tomcat时提示:Error:Cannot build Artifact ':war exploded' because it is included into a circul

    在Idea中使用Maven创建父子工程,第一个Model的那个项目可以很好的运行,在创建一个Model运行时报这个错.原因是tomcat部署了多个Web项目,可能最开始是两个项目的配置文件混用用,最后 ...

  8. Report -「概率数据结构」随机化骗分?我们是专业的!

    \[\mathscr{Lorain~y~w~la~Lora~blea.} \newcommand{\DS}[0]{\displaystyle} % operators alias \newcomman ...

  9. Solution -「洛谷 P8477」 「GLR-R3」春分 下界证明?!

      前情提要:在「洛谷 P8477」 「GLR-R3」春分中,我们给出了 \(\frac{7}{6}n\pm\mathcal O(1)\) 的解法,但没能给出相关的下界证明.现在我们尝试给出一个未完全 ...

  10. Solution Set -「LOCAL」冲刺省选 Round X

    \(\mathscr{Summary}\)   时间利用效率?   同学,你的效率呢?   我真不知道中途几个小时干了啥,我也不知道我实在划水.神游还是真的在自闭想题.   虽然真实考场肾上腺素不会允 ...