BUUctf EasyMD5

一点也不easy的MD5,题目是个输入框,随便输入点啥没反应就抓包

抓包发现存在注入点,

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

一般情况下是考虑用1’ or 1去绕过,但这里是用别的方法去绕过,参考链接
https://blog.csdn.net/March97/article/details/81222922

加密结果如下:

来到第二部分

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

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

条件就是:1、GET传入的变量a,b不等
2、MD5加密后相等

这里涉及到PHP弱类型,所以很好绕过

http://3be3072f-a87f-40f0-a49a-b415f1f30755.node3.buuoj.cn/levels91.php?a=s1091221200a&b=s1665632922a

来到第三部分

和第二部分一样的条件,但多了个限制,就是MD5加密后的两个值要完全相等

方法一就是真的传入两个MD5一样的数据

方法二就比较巧妙了

MD5默认传入参数是string,而如果传入的不是string,而是数组则会报错FALSE
那么两个值经过MD5加密后完全相等,均为FALSE

posted @ 2021-04-22 18:28  paidx0  阅读(158)  评论(0编辑  收藏  举报