BaseCTF 高校联合新生赛 Week1

news2024/9/24 7:26:02

Week1

Web

[Week1] HTTP

image.png
image.png
image.png
BaseCTF{4248fc3d-a280-4de0-b5e6-6ff0ecaa1fca}

[Week1] 喵喵喵´•ﻌ•`

image.png

[Week1] md5绕过欸

image.png

[Week1] A Dark Room

image.png

[Week1] upload

什么过滤都没有,上传一句话木马即可
image.png

[Week1] Aura 酱的礼物

image.png
卡在SSRF那里, 我想用challenge来读取http://challenge.basectf.fun:44073/,但是已经被http://jasmineaura.github.io占据了,所以能用SSRF
参考博客:浅析SSRF的各种利用方式 - 先知社区 (aliyun.com)
image.png
image.png

什么是SSRF

SSRF(服务端请求伪造漏洞) 由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。
一般情况下,SSRF针对的都是一些外网无法访问的内网,所以需要SSRF使目标后端去访问内网,进而达到我们攻击内网的目的。
image.png
遇到没掌握的SSRF漏洞,红温两三个小时才做出来,还是得好好学习啊!

PWN

[Week1] 签个到吧

image.png

[Week1] echo

/bin/echo $f*
image.png
/bin/echo $(/flag)
image.png

Crypto

[Week1] 你会算md5吗

GPT辅助解题法。

import hashlib

flag='BaseCTF{}'

output=[]
for i in flag:
my_md5=hashlib.md5()
my_md5.update(i.encode())
output.append(my_md5.hexdigest())
print("output =",output)

这段代码计算了字符串flag中每个字符的MD5哈希值,并将这些哈希值存储在一个列表中。具体来说:

  1. flag='BaseCTF{}' 定义了一个包含标志的字符串。
  2. 对于flag中的每个字符,计算其MD5哈希值。
  3. 将每个字符的哈希值以十六进制字符串的形式存入output列表。
  4. 最后,打印output列表,显示每个字符的哈希值。

这样,output将包含flag中每个字符的MD5哈希值的列表。
MD5是一种不可逆的哈希函数,这意味着它将数据(如字符串)转换为固定长度的哈希值,无法从哈希值反推回原始数据。因此,所谓的“解密”通常是指找到匹配的明文数据,这可以通过查找已知哈希值的映射来完成。

你可以创建一个“解密”脚本,这个脚本可以通过穷举法或使用一个已知的字符集去查找与给定MD5哈希值匹配的字符。这是一个示例脚本,使用穷举法来尝试找到每个字符的原始数据:

import hashlib

# 已知的MD5哈希值列表
md5_hashes = [
    '9d5ed678fe57bcca610140957afab571', '0cc175b9c0f1b6a831c399e269772661', '03c7c0ace395d80182db07ae2c30f034',
    'e1671797c52e15f763380b45e841ec32', '0d61f8370cad1d412f80b84d143e1257', 'b9ece18c950afbfa6b0fdbfa4ff731d3',
    '800618943025315f869e4e1f09471012', 'f95b70fdc3088560732a5ac135644506', '0cc175b9c0f1b6a831c399e269772661',
    'a87ff679a2f3e71d9181a67b7542122c', '92eb5ffee6ae2fec3ad71c777531578f', '8fa14cdd754f91cc6554c9e71929cce7',
    'a87ff679a2f3e71d9181a67b7542122c', 'eccbc87e4b5ce2fe28308fd9f2a7baf3', '0cc175b9c0f1b6a831c399e269772661',
    'e4da3b7fbbce2345d7772b0674a318d5', '336d5ebc5436534e61d16e63ddfca327', 'eccbc87e4b5ce2fe28308fd9f2a7baf3',
    '8fa14cdd754f91cc6554c9e71929cce7', '8fa14cdd754f91cc6554c9e71929cce7', '45c48cce2e2d7fbdea1afc51c7c6ad26',
    '336d5ebc5436534e61d16e63ddfca327', 'a87ff679a2f3e71d9181a67b7542122c', '8f14e45fceea167a5a36dedd4bea2543',
    '1679091c5a880faf6fb5e6087eb1b2dc', 'a87ff679a2f3e71d9181a67b7542122c', '336d5ebc5436534e61d16e63ddfca327',
    '92eb5ffee6ae2fec3ad71c777531578f', '8277e0910d750195b448797616e091ad', '0cc175b9c0f1b6a831c399e269772661',
    'c81e728d9d4c2f636f067f89cc14862c', '336d5ebc5436534e61d16e63ddfca327', '0cc175b9c0f1b6a831c399e269772661',
    '8fa14cdd754f91cc6554c9e71929cce7', 'c9f0f895fb98ab9159f51fd0297e236d', 'e1671797c52e15f763380b45e841ec32',
    'e1671797c52e15f763380b45e841ec32', 'a87ff679a2f3e71d9181a67b7542122c', '8277e0910d750195b448797616e091ad',
    '92eb5ffee6ae2fec3ad71c777531578f', '45c48cce2e2d7fbdea1afc51c7c6ad26', '0cc175b9c0f1b6a831c399e269772661',
    'c9f0f895fb98ab9159f51fd0297e236d', '0cc175b9c0f1b6a831c399e269772661', 'cbb184dd8e05c9709e5dcaedaa0495cf'
]

# 字符集,可以根据实际情况修改
charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-\{\}'

# 生成一个字典来存储字符及其对应的MD5哈希值
hash_to_char = {}

# 生成字符和哈希值的映射
for char in charset:
    md5 = hashlib.md5(char.encode()).hexdigest()
    hash_to_char[md5] = char

# 尝试找到每个哈希值对应的字符
decoded_chars = []
for hash_value in md5_hashes:
    if hash_value in hash_to_char:
        decoded_chars.append(hash_to_char[hash_value])
    else:
        decoded_chars.append('?')  # 如果找不到匹配的字符

# 输出找到的字符
print("Decoded characters:", ''.join(decoded_chars))

解释:

  1. **md5_hashes**** 列表**:包含了要解码的MD5哈希值。
  2. **charset**** 字符集**:可能包含你需要的所有字符,可以根据需要扩展。
  3. 生成哈希值映射:使用字符生成哈希值并将其存储在字典中。
  4. 查找哈希值:查找每个MD5哈希值对应的字符。

请确保你用实际的MD5哈希值替换脚本中的示例值。这个脚本仅适用于较小的字符集和哈希值。如果字符集较大或包含特殊字符,你可能需要扩展charset以确保找到所有可能的匹配。
image.png

[Week1] helloCrypto

GPT辅助解题法。

from Crypto.Util.number import *
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
import random

flag=b'BaseCTF{}'

key=random.randbytes(16)
print(bytes_to_long(key))

my_aes=AES.new(key=key,mode=AES.MODE_ECB)
print(my_aes.encrypt(pad(flag,AES.block_size)))

这段代码涉及到AES加密和密钥生成。下面是对代码的详细解释及解密脚本的编写方法。
代码解释

  1. 导入必要的库
pythonfrom Crypto.Util.number import *
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
import random
  • Crypto.Util.number 提供一些与数字相关的工具函数。
  • Crypto.Cipher.AES 提供AES加密算法的实现。
  • Crypto.Util.Padding 提供数据填充功能。
  • random 用于生成随机数。
  1. 定义**flag**
pythonflag = b'BaseCTF{}'
  • 这是待加密的消息。它是一个字节串。
  1. 生成随机密钥
pythonkey = random.randbytes(16)
print(bytes_to_long(key))
  • 生成一个16字节(128位)的随机密钥。
  • bytes_to_long(key) 将字节串转换为长整数,并打印出来。
  1. 创建AES加密对象
pythonmy_aes = AES.new(key=key, mode=AES.MODE_ECB)
  • 创建一个AES加密对象,使用ECB模式(电子密码本模式)。
  1. 加密数据
pythonprint(my_aes.encrypt(pad(flag, AES.block_size)))
  • pad(flag, AES.block_size) 将消息填充到AES块大小的倍数(16字节)。
  • 使用my_aes.encrypt 加密填充后的数据,并打印加密结果。

解密脚本
要解密这个数据,我们需要知道密钥和加密的数据。假设我们从输出中获得了密钥和加密数据。以下是解密脚本的步骤:

  1. 获取密钥和加密数据
    • 假设我们已经知道了密钥和加密数据(可以从实际的代码运行中获得)。
  2. 解密数据
    • 使用相同的密钥和加密模式来解密数据。

解密脚本

pythonfrom Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
from Crypto.Util.number import long_to_bytes

# 假设从加密代码中获得的密钥和加密数据
key_long = <密钥的长整型值>  # 从加密代码的输出中获得
encrypted_data = <加密后的数据>  # 从加密代码的输出中获得

# 将长整型密钥转换回字节串
key = long_to_bytes(key_long, 16)

# 创建AES解密对象
my_aes = AES.new(key=key, mode=AES.MODE_ECB)

# 解密数据
decrypted_data = unpad(my_aes.decrypt(encrypted_data), AES.block_size)

# 输出解密后的数据
print("Decrypted data:", decrypted_data.decode())

说明:

  1. 从加密代码中获取密钥和加密数据
    • 替换 <密钥的长整型值><加密后的数据> 为实际从加密代码输出中得到的值。
  2. **long_to_bytes**
    • 将长整型密钥转换回字节串格式以用于解密。
  3. **unpad**
    • 去除解密后的填充部分,恢复原始消息。

示例
假设你从加密代码中获得以下输出:

  • 密钥(长整型): 1234567890123456
  • 加密数据: b'\x01\x02\x03\x04...'

可以将这些值替换到解密脚本中,运行后你将得到原始的消息BaseCTF{}

from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
from Crypto.Util.number import long_to_bytes

# 给定的密钥(长整型值)和加密数据
key_long = 208797759953288399620324890930572736628
encrypted_data = b'U\xcd\xf3\xb1 r\xa1\x8e\x88\x92Sf\x8a`Sk],\xa3(i\xcd\x11\xd0D\x1edd\x16[&\x92@^\xfc\xa9(\xee\xfd\xfb\x07\x7f:\x9b\x88\xfe{\xae'

# 将长整型密钥转换为字节串
key = long_to_bytes(key_long, 16)

# 创建AES解密对象
my_aes = AES.new(key=key, mode=AES.MODE_ECB)

# 解密数据
decrypted_data = unpad(my_aes.decrypt(encrypted_data), AES.block_size)

# 输出解密后的数据
print("Decrypted data:", decrypted_data.decode())

image.png

[Week1] 十七倍

GPT辅助解题法
image.png
这个代码的目的是加密一个字符串,并用一个 cipher 数组来验证加密后的结果是否正确。加密方法是将每个字符的 ASCII 值乘以 17,然后只保留低 8 位(即取模 256)。要解密,只需要反向操作,即将 cipher 中的每个值除以 17(并且考虑到取模 256 的逆运算)。
以下是解密的 Python 脚本:

def decrypt(cipher):
    # 因为 17 在模 256 下是可逆的(其逆元是 15),所以我们使用逆元来解密。
    # 计算 17 的逆元 mod 256
    def mod_inverse(a, m):
        m0, x0, x1 = m, 0, 1
        if m == 1:
            return 0
        while a > 1:
            q = a // m
            m, a = a % m, m
            x0, x1 = x1 - q * x0, x0
        if x1 < 0:
            x1 += m0
        return x1

    inv_17 = mod_inverse(17, 256)
    flag = [(inv_17 * c) % 256 for c in cipher]
    return ''.join(chr(c) for c in flag)

cipher = [
    98, 113, 163, 181, 115, 148, 166, 43, 9, 95,
    165, 146, 79, 115, 146, 233, 112, 180, 48, 79,
    65, 181, 113, 146, 46, 249, 78, 183, 79, 133,
    180, 113, 146, 148, 163, 79, 78, 48, 231, 77
]

print(decrypt(cipher))

这段脚本计算了 17 在模 256 下的逆元,然后用它来还原原始的 flag 字符串。运行这个脚本将会输出解密后的标志。
image.png

[Week1] ez_rsa

GPT辅助解题法
这个代码片段展示了一个 RSA 加密系统的基本实现,但有一些特别的地方。我们将逐步解析代码,并给出 Python 脚本用于解密。

代码解析

  1. 导入库:
pythonfrom Crypto.Util.number import *
import gmpy2

这行代码导入了 Crypto.Util.number 库用于处理大整数,以及 gmpy2 用于高效的大数运算(尽管在这个脚本中 gmpy2 没有使用)。

  1. 定义变量:
pythonm = bytes_to_long(b'BaseCTF{th1s_is_fake_fl4g}')
e = 65537

m 是将字符串 'BaseCTF{th1s_is_fake_fl4g}' 转换为长整型整数。e 是公钥指数,通常在 RSA 加密中使用 65537。

  1. **生成素数和计算 ****n**:
pythonp = getPrime(512)
q = getPrime(512)
n = p * q

生成两个 512 位的素数 pq,然后计算它们的乘积 n,这是 RSA 加密中的模数。

  1. **计算 ****not_phi**:
pythonnot_phi = (p + 2) * (q + 2)

计算 not_phi 作为 (p + 2) * (q + 2),而不是标准的 phi(n)(即 (p-1) * (q-1))。这是一个故意的异常处理方式,可能用于解密验证或挑战。

  1. 加密:
pythonc = pow(m, e, n)

使用 RSA 加密公式 c = m^e % n 对消息进行加密。

  1. 打印结果:
pythonprint(n)
print(not_phi)
print(c)

打印出 nnot_phi 和加密后的密文 c

解密脚本

为了解密,我们需要恢复原始消息。通常,解密过程涉及计算私钥。由于 not_phi 的计算方法不同于标准的 phi(n),我们需要推导 pq 来计算私钥。
以下是解密的 Python 脚本:

pythonfrom Crypto.Util.number import inverse, long_to_bytes
import sympy

# 给定的值
n = 96557532552764825748472768984579682122986562613246880628804186193992067825769559200526147636851266716823209928173635593695093547063827866240583007222790344897976690691139671461342896437428086142262969360560293350630096355947291129943172939923835317907954465556018515239228081131167407674558849860647237317421
not_phi = 96557532552764825748472768984579682122986562613246880628804186193992067825769559200526147636851266716823209928173635593695093547063827866240583007222790384900615665394180812810697286554008262030049280213663390855887077502992804805794388166197820395507600028816810471093163466639673142482751115353389655533205
c = 37077223015399348092851894372646658604740267343644217689655405286963638119001805842457783136228509659145024536105346167019011411567936952592106648947994192469223516127472421779354488529147931251709280386948262922098480060585438392212246591935850115718989480740299246709231437138646467532794139869741318202945

# 推导 p 和 q
p_q_sum = (not_phi - 2**32 - 2) // 2
p_q_diff = sympy.sqrt(p_q_sum**2 - 4 * n)
p = (p_q_sum + p_q_diff) // 2
q = (p_q_sum - p_q_diff) // 2

# 计算 phi(n)
phi_n = (p - 1) * (q - 1)

# 计算私钥 d
e = 65537
d = inverse(e, phi_n)

# 解密
m = pow(c, d, n)
flag = long_to_bytes(m)

print("Decrypted message:", flag.decode())

说明

  1. **推导 **p** 和 ****q**:
    • 通过 not_phi 计算得到 pq 的近似值,然后求解出实际的 pq。这个步骤需要数学上的一些技巧,具体推导可以使用 sympy 库来解决。
  2. **计算 **phi(n)** 和私钥 ****d**:
    • 使用标准的 phi(n) 计算方法和 inverse 函数计算私钥 d
  3. 解密:
    • 使用 RSA 解密公式 m = c^d % n,然后将结果转换回原始消息。

运行上述 Python 脚本可以解密并打印出原始的消息。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
image.png
2024-08-17 10:59:02
运行代码报错: Traceback (most recent call last): File “D:\Downlaods_1\BaseCTF\week1\crypto\1.py”, line 20, in d = inverse(e, phi_n) File “D:\ProgrameLanguage\Python310\lib\site-packages\Crypto\Util\number.py”, line 135, in inverse raise ZeroDivisionError(“Modulus cannot be zero”) ZeroDivisionError: Modulus cannot be zero
2024-08-17 10:59:04
报错信息表明 phi_n 为零,导致计算私钥时出现问题。这个问题通常出现在以下几个方面:

  1. 推导 **p****q** 的步骤
    • 我们需要确保 pq 的值被正确地推导出来。
    • 如果推导过程有误,可能会导致 phi_n 的计算出现问题,从而影响到私钥的计算。
  2. **错误的 ****not_phi**
    • not_phi 是通过 (p + 2) * (q + 2) 计算的,不是标准的 phi(n)。我们需要确保 pq 被正确地推导出来,否则 not_phi 可能不适用。

解决方案

我们需要重新审视如何推导 pq。通常,推导 pq 可以使用如下方法:

  1. **从 **not_phi** 解出 **p** 和 ****q**: 这里我们需要找到 pq 的值使得 (p + 2) * (q + 2)n 满足条件。
  2. **重新计算 ****phi_n**: 确保计算 phi_n 的公式正确无误。

以下是改进的 Python 脚本,使用更安全的推导方法来找到 pq,然后计算 phi_n 和私钥 d

pythonfrom Crypto.Util.number import inverse, long_to_bytes
from sympy import symbols, Eq, solve, sqrt

# 给定的值
n = 96557532552764825748472768984579682122986562613246880628804186193992067825769559200526147636851266716823209928173635593695093547063827866240583007222790344897976690691139671461342896437428086142262969360560293350630096355947291129943172939923835317907954465556018515239228081131167407674558849860647237317421
not_phi = 96557532552764825748472768984579682122986562613246880628804186193992067825769559200526147636851266716823209928173635593695093547063827866240583007222790384900615665394180812810697286554008262030049280213663390855887077502992804805794388166197820395507600028816810471093163466639673142482751115353389655533205
c = 37077223015399348092851894372646658604740267343644217689655405286963638119001805842457783136228509659145024536105346167019011411567936952592106648947994192469223516127472421779354488529147931251709280386948262922098480060585438392212246591935850115718989480740299246709231437138646467532794139869741318202945
e = 65537

# 推导 p 和 q
# 设 p 和 q 是需要找到的两个素数
# 由 (p + 2) * (q + 2) = not_phi 和 p * q = n,推导 p 和 q
p, q = symbols('p q', integer=True)

# 定义方程
eq1 = Eq((p + 2) * (q + 2), not_phi)
eq2 = Eq(p * q, n)

# 解方程
solution = solve((eq1, eq2), (p, q))
if not solution:
    raise ValueError("无法解出 p 和 q")

# 从解中提取 p 和 q
p = solution[0][0]
q = solution[0][1]

# 计算 phi(n)
phi_n = (p - 1) * (q - 1)

# 计算私钥 d
d = inverse(e, phi_n)

# 解密
m = pow(c, d, n)
flag = long_to_bytes(m)

print("Decrypted message:", flag.decode())

说明

  1. 解方程:
    • 使用符号计算库 sympy 解决两个方程:(p + 2) * (q + 2) = not_phip * q = n
    • 确保得到正确的 pq
  2. **计算 ****phi_n**:
    • 使用 (p - 1) * (q - 1) 计算 phi_n
  3. 计算私钥 **d** 并解密:
    • 使用计算得到的 phi_n 计算 d,然后解密消息。

请确保在执行脚本之前,安装了 sympy 库,如果未安装,可以使用以下命令进行安装:

bashpip install sympy

希望这能解决你的问题!如果仍然有问题,请提供更多详细信息以帮助进一步调试。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
image.png
2024-08-17 11:00:26
运行代码还是报错: Traceback (most recent call last): File “D:\Downlaods_1\BaseCTF\week1\crypto\1.py”, line 32, in d = inverse(e, phi_n) File “D:\ProgrameLanguage\Python310\lib\site-packages\Crypto\Util\number.py”, line 139, in inverse return pow(u, -1, v) TypeError: unsupported operand type(s) for ** or pow(): ‘int’, ‘int’, ‘Integer’
2024-08-17 11:00:29
报错信息表明 phi_n 的数据类型可能不兼容 Crypto.Util.number.inverse 函数。Crypto.Util.number.inverse 函数通常需要 int 类型的输入,而 sympy 库的解可能返回了 Integer 类型,这导致了类型不匹配。
我们可以调整代码,确保 phi_nint 类型,并且适用于 inverse 函数。下面是更新后的代码,其中将 phi_n 转换为 int 类型:

pythonfrom Crypto.Util.number import inverse, long_to_bytes
from sympy import symbols, Eq, solve

# 给定的值
n = 96557532552764825748472768984579682122986562613246880628804186193992067825769559200526147636851266716823209928173635593695093547063827866240583007222790344897976690691139671461342896437428086142262969360560293350630096355947291129943172939923835317907954465556018515239228081131167407674558849860647237317421
not_phi = 96557532552764825748472768984579682122986562613246880628804186193992067825769559200526147636851266716823209928173635593695093547063827866240583007222790384900615665394180812810697286554008262030049280213663390855887077502992804805794388166197820395507600028816810471093163466639673142482751115353389655533205
c = 37077223015399348092851894372646658604740267343644217689655405286963638119001805842457783136228509659145024536105346167019011411567936952592106648947994192469223516127472421779354488529147931251709280386948262922098480060585438392212246591935850115718989480740299246709231437138646467532794139869741318202945
e = 65537

# 推导 p 和 q
# 设 p 和 q 是需要找到的两个素数
# 由 (p + 2) * (q + 2) = not_phi 和 p * q = n,推导 p 和 q
p, q = symbols('p q', integer=True)

# 定义方程
eq1 = Eq((p + 2) * (q + 2), not_phi)
eq2 = Eq(p * q, n)

# 解方程
solution = solve((eq1, eq2), (p, q))
if not solution:
    raise ValueError("无法解出 p 和 q")

# 从解中提取 p 和 q
p = int(solution[0][0])
q = int(solution[0][1])

# 计算 phi(n)
phi_n = (p - 1) * (q - 1)

# 计算私钥 d
d = inverse(e, phi_n)

# 解密
m = pow(c, d, n)
flag = long_to_bytes(m)

print("Decrypted message:", flag.decode())

关键改动:

  1. **p****q** 转换为 **int** 类型:确保 pq 被转换为 int 类型,以便与 Crypto.Util.number.inverse 函数兼容。
  2. 确保 **phi_n****int** 类型:计算 phi_n 时也确保其类型为 int,避免不兼容问题。

说明:

  • 符号计算:我们使用 sympy 解方程,得到的解可能是 sympyInteger 类型,通过 int() 函数转换为标准的 Python int 类型。
  • 私钥计算:使用 Crypto.Util.number.inverse 计算私钥 d

请确保安装了 sympypycryptodomeCrypto 的库),可以通过以下命令进行安装:

bashpip install sympy pycryptodome

这样修改后的代码应该能够解决你遇到的错误。如果仍有问题,请提供更多细节。
image.png

Misc

[Week1] Base

image.png

[Week1] 喵喵太可爱了

image.png

[Week1] 签到!DK 盾!

image.png

[Week1] 海上遇到了鲨鱼

image.png
image.png
image.png
image.png

[Week1] 你也喜欢圣物吗

开局一个图片一张压缩包,压缩包加密了,所以从图片下手
image.png
010Editor打开,看文件尾,有一串Base64编码
image.png
或者kali直接用strings命令显示可打印字符,输入strings sweeeeeet.png发现了一串Base64编码RE9fWU9VX0tOT1dfRVpfTFNCPw==
image.png
解密意思是DO_YOU_KNOW_EZ_LSB?,那就是提示LSB隐写嘛。
image.png
可以用kalizsteg,也可以用stegpy等等LSB隐写的工具。
我直接zsteg sweeeeeet.png
获得key:lud1_lud1,这个就是压缩包解压密码
image.png
解压之后获得一个it is fake.zip压缩文件,里面有一个flag.txt
fake嘛,fake就是伪加密呗,根据伪加密的知识,光标这里就是加密区,把后面第二个14000900改成14000000即可
image.png
image.png
然后就可以解压了,√8的7z解压还是报需要密码,但是我换成bandzip来解压就可以了
image.png
这里还留个坑,下面的才是正确的flag
image.png
image.png
再Base64解密即可
image.png

[Week1] 正着看还是反着看呢?

image.png
根据题意百度Misc 逆序
image.png
文章内容有代码
image.png
运行脚本获得逆向后的文件
image.png
image.png
image.png
放到kalifile命令看看是什么文件,说是JPG,那就给它加上后缀名,获得一张美女图片
image.png
image.png
然后binwalk常规操作即可
image.png
image.png

[Week1] 根本进不去啊!

image.png
首先进行域名解析
image.png
image.png
然后将信息收集到的IP都添加到hosts文件里面,参考:CTF:BugkuCTF-web-域名解析_域名解析bugku题解-CSDN博客
image.png
然后就用dig
参考高校网络安全管理运维赛 Writeup - 星盟安全团队 (xmcve.com)
image.png
image.png
image.png
参考:linux网络命令:查询 DNS信息的命令 dig的使用和下载、安装说明_linux dig-CSDN博客
image.png
image.png

Re

[Week1] You are good at IDA

image.png

[Week1] UPX mini

image.png
image.png
image.png
参考博客:
CTF逆向-Upx脱壳攻防世界simple unpack_ctf upx-CSDN博客
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084451.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud之二注册中心(Eureka)

一、Eureka概述 Eureka是Netflix公司开源的一个服务注册与发现的中间组件。 在微服务架构系统之中&#xff0c;我们经常提三个角色&#xff1a;注册中心 (Register)、服务提供者(Provider)、服务消费者(Consumer)。 1.注册中心&#xff1a;服务提供者可以将服务发布到注册中心…

亚马逊aws的弹性与可扩展性解析

欢迎来到雲闪世界。可以使用各种服务和工具在 AWS 上实现可扩展性和弹性。例如&#xff0c;AWS Application Auto Scaling 是一种可以自动调整容量以低成本实现出色应用程序性能的服务。这允许轻松设置跨多个服务的多个资源的应用程序扩展。让我们来谈谈弹性和可扩展性之间的区…

数据结构基础详解(C语言): 树与二叉树的基本类型与存储结构详解

文章目录 1.树2.二叉树2.1 二叉树的基本概念2.2 满二叉树2.3 完全二叉树2.4 二叉排序树2.5 平衡二叉树 3.二叉树的存储结构3.1 二叉树的顺序存储3.2 二叉树的链式存储 1.树 树的基本概念 结点的度&#xff1a;指该结点的分支个数&#xff0c;如结点A的度为2 树的度&#xff1a;…

DHU 二维数组 暗恋

思路及代码 蛮力算法 验证是否是正方形的方法是简单的 但是蛮力下来写的不优雅 第一版超时了&#xff0c;第二版改了一点点&#xff0c;把一个循环换成了加加减减 #include<iostream> using namespace std;int main(){ //input R,C int 1< <200 //input R*C矩阵…

ceph-rgw zipper的设计理念(1)

0.前言 RGW在ceph存储中的主要作用是提供S3和Swift的协议访问支持。Zipper工作主要是将RGW分为协议部分和后端部分。协议部分还是支持S3和Swift协议&#xff0c;包括身份认证、协议参数解析和op操作解析等等&#xff1b;后端部分主要是对接不同的存储&#xff0c;比如rados&am…

利用OpenCV根据图片识别环境的亮度

一、前言 在当代数字化转型的浪潮中&#xff0c;计算机视觉技术无疑占据了举足轻重的地位&#xff0c;其应用范围之广&#xff0c;影响力之深&#xff0c;已成为推动社会进步的关键力量之一。而OpenCV&#xff0c;作为计算机视觉领域的佼佼者&#xff0c;凭借其卓越的性能与广…

强推!必看!!由中国信通院发布的汇聚99个大模型优秀应用案例集!附219页PDF文件下载

2024 年是大模型深入赋能千行百业&#xff0c;融入实体经济&#xff0c;助力科技创新的一年。截至今年5月&#xff0c;我国国产大模型的数量已经超过 300个&#xff0c;预示着大模型在各行业场景的创新应用和深度拓展&#xff0c;对培育新质生产力、高水平赋能新型工业化、推动…

第100+23步 ChatGPT学习:概率校准 Sigmoid Calibration

基于Python 3.9版本演示 一、写在前面 最近看了一篇在Lancet子刊《eClinicalMedicine》上发表的机器学习分类的文章&#xff1a;《Development of a novel dementia risk prediction model in the general population: A large, longitudinal, population-based machine-learn…

java中超级重要的SPI机制

SPI机制是理解各个框架集成的重要思想&#xff0c;只用理解了SPI才能理解框架的集成和扩展。直观的就是SPI机制可以让你更好的理解springboot集成各个扩展。 废话不多说&#xff01;&#xff01; 1.什么是spi机制&#xff1f; Spi机制是java提供的一种服务发现机制&#xff0…

企业常用的10款主流图纸加密软件排行榜|企业图纸防泄密

图纸是企业的重要资产&#xff0c;其安全性直接关系到企业的核心竞争力。下面为大家介绍10款主流的图纸加密软件&#xff0c;每款软件都有其独特的功能和优势&#xff0c;帮助企业有效防止图纸泄密。 1. 安秉图纸加密软件 安秉图纸加密软件是一款专为企业用户设计的图纸加密解…

全球石油巨头哈里伯顿因网络攻击被迫关闭系统

美国能源服务巨头哈里伯顿公司在周五向联邦监管机构提交的文件中表示,在本周遭受网络攻击后,该公司主动关闭了某些系统以“帮助保护它们”。 该公司在提交给美国证券交易委员会的文件中表示,周三该公司获悉“未经授权的第三方获得了其系统某些部分的访问权限”,并正在与外…

如何开启让设备获取到IPv6?

前言 现在许多小伙伴拉的宽带基本上都是光猫进行拨号的。这个就导致很多小伙伴不知道如何让设备获取IPv6。 但好像还有小伙伴分不清光猫拨号和光猫桥接的区别&#xff0c;其实它们的区别就在于让设备直连光猫的网口或者光猫的Wi-Fi&#xff0c;就会出现两种情况&#xff1a; …

实战派六西格玛:培训只是热身,应用才是关键!

在当今竞争激烈的市场环境中&#xff0c;六西格玛作为一套卓越的质量管理策略与工具&#xff0c;其影响力已远远超越了单纯的制造领域&#xff0c;渗透至各行各业的运营管理之中。然而&#xff0c;许多企业在追逐六西格玛光环的过程中&#xff0c;却常常偏离了其核心轨道&#…

中国全球投资追踪相关数据(2005-2023年)

中国全球投资追踪的相关数据可以为了解中国在全球范围内的投资活动提供重要视角。根据美国企业研究所&#xff08;American Enterprise Institute&#xff0c;AEI&#xff09;编制的《中国全球投资追踪》数据库&#xff0c;该数据库详细追踪了2005年至2023年间中国的海外直接投…

wx.updateAppMessageShareData 自定义分享内容安卓无效

记录wx.updateAppMessageShareData 自定义分享内容安卓无效 bug&#xff0c;主要是因为微信公众平台要配置分享的链接域名。 情况微信公众号使用wxjsdk后分享api全都注入成功&#xff0c;自定义分享内容时ios正常安卓分享出去的是当前页面的url。 主要原因在于你自定义这个分享…

在linux 中如何将.c 文件转换为可执行文件

目录 一、引言 二、准备工作 三、编译单个.c 文件 1.预处理 2.编译 3.汇编 4.链接 四、编译多个.c 文件 五、调试和优化 六、总结 一、引言 在 Linux 环境下进行 C 语言编程时&#xff0c;将 .c 文件转换为可执行文件是一个关键的步骤。这个过程涉及到使用编译器和一…

携程:从MySQL迁移OceanBase的数据库发布系统实践

作者简介&#xff1a;杨晓军 现就职于携程的数据库团队&#xff0c;主要负责携程数据库的研发与管理&#xff0c;专注于提升数据库的稳定性。 自分布式关系型数据库OceanBase开源以来&#xff0c;携程已经在线上环境中进行了广泛的应用&#xff0c;取代了原先以MySQL为主力的业…

虚幻5|技能栏优化(1)---优化技能UI,并添加多个技能

一.添加多一个技能格子并进行初始化清楚 1.打开技能UI把原先的事件构造后面的蓝图&#xff0c;全部选中&#xff0c;右键创建一个函数&#xff0c;命名为初始化 2.添加以下两个蓝图&#xff0c;用于清楚技能格子内容 2.在之前&#xff0c;事件构造后面的蓝图&#xff0c;不需…

人工智能是如何预测足球比赛的?看完这篇文章,你就全懂了!AutoPrediction

2024年欧洲杯开赛至今&#xff0c;德叔已经用人工智能预测了小组赛阶段的36场比赛&#xff0c;以及淘汰赛阶段的8场比赛&#xff0c;并且通过在网络上的发文&#xff0c;记录了所有这些比赛的预测结果。这些文章引来了不少朋友的围观&#xff0c;也让很多人对人工智能预测球赛这…

收藏夹里的“小网站”被误报违规不让上怎么办?如何将Chrome和Edge安装到 D 盘(含用户数据),重装系统也不会丢失收藏夹和密码?

当你用国产浏览器访问网站的时候&#xff0c;有时候会显示这个&#xff1a; 如果确实是违规网站&#xff0c;不让访问也没什么&#xff0c;但是很多都是误报啊&#xff0c;你这样直接来个大红横幅&#xff0c;还让人活不&#xff1f; 那遇到这种误报应当怎么办呢&#xff1f;有…