当前位置: 首页 > article >正文

i春秋-GetFlag(md5加密,字符串比较绕过)

练习平台地址

竞赛中心

题目描述

 题目内容

你好,单身狗,这是一个迷你文件管理器,你可以登录和下载文件,甚至得到旗帜

 点击登录

 发现capture需要满足条件substr(md5(captcha), 0, 6)=xxxxxx

编写python脚本破解验证码

import hashlib

def getMd5(index):
    """
    函数用于在指定整数范围内查找一个整数,使得该整数转换为字符串后计算出的MD5值的前6位与传入的index参数匹配,若找到则返回该整数,若没找到返回None。
    :param index: 用于匹配MD5值前6位的目标字符串
    :return: 满足条件的整数或者None(表示没找到匹配的值)
    """
    for i in range(100000, 100000000):
        num = i
        try:
            md5 = hashlib.md5(str(num).encode("utf8")).hexdigest()
            if md5[0:6] == index:
                return num
        except Exception as e:
            print(f"计算MD5值时出现异常: {e}")
            continue
    return None


if __name__ == "__main__":
    result = getMd5("xxxxxx")
    if result is None:
        print("没有找到满足条件的整数")
    else:
        print("找到的整数为:", result)

尝试万能密码登录

成功登录并返回了文件信息

下载文件后发现提示

flag在根目录下

 抓取下载链接的包看能不能下载其他文件

发现f参数后跟着文件名,尝试修改

f=../../../../flag.php

根据平时利用小皮面板搭建网站的经验猜测

 /var/www/html/flag.php

 /var/www/html/Challenges/flag.php

成功得到源码

<?php
$f = $_POST['flag'];
$f = str_replace(array('`', '$', '*', '#', ':', '\\', '"', "'", '(', ')', '.', '>'), '', $f);
if ((strlen($f) > 13) || (false !== stripos($f, 'return'))) {
    die('wowwwwwwwwwwwwwwwwwwwwwwwww');
}
try {
    eval("\$spaceone = $f");
} catch (Exception $e) {
    return false;
}
if ($spaceone === 'flag') {
    echo file_get_contents("helloctf.php");
}

代码分析

1.定义一个变量f,通过POST传入

2.对变量f进行字符串 =过滤

3.如果f的长度大于13或则f中有return就输出wowwwwwwwwww并退出

4.如果触发异常(f的字符等于spaceone的)会返回false

5.如果spaceone的值等于flag这个字符串就输出helloctf.php文件的内容

 绕过思路

1.flag='flag';

 2.PHP字符串的特别表示方式,传值时进行url编码

flag

flag{0d960bc3-186b-4a10-a749-4eaef43ae6c6}

注意事项

POST传值两种方式:

1.HackBar插件添加参数

2.Burp抓包修改请求方式后添加参数


http://www.kler.cn/a/403604.html

相关文章:

  • K8S + Jenkins 做CICD
  • 【企业级分布式系统】ZooKeeper集群
  • 彻底理解消息队列的作用及如何选择
  • Wallpaper壁纸制作学习记录03
  • 从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望
  • 「三」体验HarmonyOS端云一体化开发模板——使用DevEco Studio直接创建端云一体化工程
  • 基于单片机的婴儿监测系统设计
  • 淘宝 NPM 镜像源
  • 【AI系统】AI 发展驱动力
  • cocoscreator-doc-TS-脚本开发-模块化脚本
  • 使用vscode+expo+Android夜神模拟器运行react-native项目
  • web 入门
  • 241120学习日志——[CSDIY] [InternStudio] 大模型训练营 [09]
  • EF Core学习笔记三
  • web——sqliabs靶场——第八关——sqlmap的使用
  • RandSampleMatrix-矩阵乘法实现
  • 一文了解 OpenAI o1-preview 和目前不支持传入的参数
  • 在 C++ 容器中,插入或修改元素时
  • 阅读2020-2023年《国外军用无人机装备技术发展综述》笔记_作战无人机和察打无人机图鉴
  • 全面解析:HTML页面的加载全过程(一)--输入URL地址,与服务器建立连接
  • MATLAB图注意力网络GAT多标签图分类预测可视化
  • 如何运行python脚本
  • 基于java+ssm+Vue的校园美食交流系统设计与实现
  • MyBatis——#{} 和 ${} 的区别和动态 SQL
  • 【Golang】手搓DES加密
  • 5G与4G互通的桥梁:N26接口