Bugku——备份是个好习惯

目录

题目

常见的网站源码备份文件后缀名

常见的网站源码备份文件名

解题思路

MD5弱比较绕过方法


刚刚做的一道CTF,挺有意思的

题目

 进入环境,页面很简单,只有一串字符串

尝试了很多加密都没有结果,先放着吧

既然提示备份,那先看看备份文件


常见的网站源码备份文件后缀名

  • .rar
  • .zip
  • .7z
  • .tar.gz
  • .bak
  • .swp
  • .txt
  • .html

常见的网站源码备份文件名

  • web
  • website
  • backup
  • back
  • www
  • wwwroot
  • temp

 

 将文件下载下来后打开,进行代码审计

<?php
include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);

echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
    echo $flag."取得flag";
}
?>

 整段代码的意思是将参数中的key替换为空,在对key1和key2的值进行MD5加密之后比较,如果md5加密的值一样而未加密的值不同,就输出flag.

解题思路

  1. 绕过str_replace函数(使用复写便可绕过)
  2. 绕过MD5加密后的弱比较

MD5弱比较绕过方法

  1. 弱比较会将0e开头的识别为科学计数法,0的n次方均为0。所以可以输入经过MD5加密后为0e的字符串进行绕过

常用MD5加密为0e开头的:

QNKCDZO,240610708,s878926199a,aabg7XSs,aabC9RqS

     2. md5()函数无法处理数组,所以传入数组,会返回NULL,两个数组均为NULL即相等


最终payload如下:

?kekeyy1=QNKCDZO&kekeyy2=s878926199a

成功得到flag


最后看看之前的那段加密后的字符串,发现是d41d8cd98f00b204e9800998ecf8427e的两次重复,尝试MD5解密一下

 

 解密后为 “ 空 ” 也就是NULL,因为没有传入key1和key2所以为NULL

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

矜庄寂寥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值