Java教程

备份是个好习惯 bugku

本文主要是介绍备份是个好习惯 bugku,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
 

 

 题目描述:

 

解题思路:

1.查看网页源码只显示一行字符,有点像16进制,但经过解码并不是,也不是base64等编码

 

2.根据题目,应该和备份相关,默认页面一般都是 index.php或者index.html

 

再去尝试index.php.bak

 

 

下载下载查看内容:

 

 

对这个内容进行简单剖析:

(1)strstr — 查找字符串的首次出现,$st是获得URI?传参的部分;
(2)然后将 key字符进行替换为空;这里可以在传参是进行双写绕过,如: kekeyy1 ===> key1
(3)然后输出key1的MD5值,即页面显示的内容,将其进行md5解密为空,因为key1为空值,见下图;
(4)后面的if判断是寻找 key1和key2的md5值相同,但加密前的内容不同,就会显示flag.
了解了原理了就可以进行构造....

 

 

 3.md5绕过技巧

(1)md5()函数无法处理数组,如果传入的为数组,会返回NULL,经过加密后得到的都是NULL

 

 

 

http://114.67.175.224:15315/?kekeyy1[]=a&kekeyy2[]=b

 

 

(2)js的==比较漏洞,对所有0exxxx的科学计数,会在比较时转化为0,都是相等的,所以只要对某些值加密后是0e开头即可

 

 

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

  

 

 

http://114.67.175.224:15315/?kekeyy1=QNKCDZO&kekeyy2=240610708

  

 

 

 

 

注:关于 == 比较规则,想要详细了解的可以自行百度一下哈~~~~,这道题主要学习一下md5绕过的方法~~

 

这篇关于备份是个好习惯 bugku的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!