类型:web
题目:备份是个好习惯
描述:备份是个好习惯。
场景打开后出现了下面的样子,因为场景关了,这里就看看bp界面的请求
开始的时候我还想直接加个flag就行了,我知道不行但我还是试了试。后面联想到他说备份是个好习惯,我就想到去看看有没有什么备份文件,网页里面就有呢,在此之前我还是去看了看源代码,发现的确只有一行没什么可利用的,接着我就去使用御剑进行扫描,刚开始的时候并没有任何反馈,接着我又试了试使用php字典进行扫面。果然发现了东西
当我访问flag.php时,发现页面没有任何显示,并且源代码也没有。接着我又试了试index.php.bak,这个正好是个备份文件非常可以,我一访问就给我下载了一个文件。
用记事本打开后发现了下面的代码
这时又难住我了,代码不是全部看得懂啊,我太难了。这时我几经波折,才搞懂代码含义。
后面我就去查了怎样才能使md5相等但数值不相等,发现了有些数值的MD5是以0e开头的,而php进行读取的时候会将0e开头的字符串读成0,找两个md5等于0e来头的字符进行进行传参
我这里使用了get传参和post传参构造了:?key1=QNKCDZO&key2=240610708,发现都没得用,我去醉了,不应该是对得吗,难道说数值错了?但我不相信,接着我想起了之前一个将key给替换成为空字符的语句,我燃起来,傻里傻气地构造了:keyk ey1=QNKCDZO&keykey2=240610708,发现还是没得用。
我还是蒙了,去看看评论区的大佬发现双写绕过不是我这么干的。下面就是正解了
使用get传参,输入:?kkeyey1=QNKCDZO&kkeyey2=240610708
成功获取到flag
md5绕过的几种方法:0e绕过,数组绕过,MD5碰撞,MD5SQL注入。
本题考点:md5绕过,双写绕过。