首页 > 其他分享 >H&NCTF

H&NCTF

时间:2024-05-13 22:11:43浏览次数:19  
标签:random NCTF flag seed import cipher

总排名:67

不用看,没写几题

总结:比赛真的不错,还有游戏可以玩,mc好玩,hnwanna玩得血压高

misc

签到、问卷、签退

111

mc题

好玩

crypto

babyAES

有点偏杂项

源码:

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
from secret import flag
import time
import random

flag = pad(flag,16)
assert b"H&NCTF" in flag

seed = int(time.time())
random.seed(seed)
key = random.randbytes(16)
iv = random.randbytes(16)
aes = AES.new(key,AES.MODE_CBC,iv)
cipher = aes.encrypt(flag)

print(f"cipher = {cipher}")

"""
cipher = b'\x96H_hz\xe7)\x0c\x15\x91c\x9bt\xa4\xe5\xacwch\x92e\xd1\x0c\x9f\x8fH\x05\x9f\x1d\x92\x81\xcc\xe0\x98\x8b\xda\x89\xcf\x92\x01a\xe1B\xfb\x97\xdc\x0cG'
"""

分析:

正常的aes加密,没法破解

但是使用了时间作为随机数种子,并且给出了flag头 H&NCTF

尝试用时间爆破

分析压缩包内脚本时间为2020-08-21 07:57:34

问题:

random.randbytes好像是python3.9以上版本才支持,我本机是python3.7,所以在ctfos里搞了个python3.11再来实现爆破

安装Crypto库

python3报错:ModuleNotFoundError: No module named ‘Crypto‘-CSDN博客

exp:

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
import time
import random
from datetime import datetime
"""
from secret import flag
flag = pad(flag,16)
assert b"H&NCTF" in flag

seed = int(time.time())
random.seed(seed)
key = random.randbytes(16)
iv = random.randbytes(16)
aes = AES.new(key,AES.MODE_CBC,iv)
cipher = aes.encrypt(flag)

print(f"cipher = {cipher}")

cipher = b'\x96H_hz\xe7)\x0c\x15\x91c\x9bt\xa4\xe5\xacwch\x92e\xd1\x0c\x9f\x8fH\x05\x9f\x1d\x92\x81\xcc\xe0\x98\x8b\xda\x89\xcf\x92\x01a\xe1B\xfb\x97\xdc\x0cG'
"""

input_time = "2020-08-21 07:57:34"
dt_object = datetime.strptime(input_time, "%Y-%m-%d %H:%M:%S")
timestamp = dt_object.timestamp()
print("转换后的时间戳:", int(timestamp))

cipher = b'\x96H_hz\xe7)\x0c\x15\x91c\x9bt\xa4\xe5\xacwch\x92e\xd1\x0c\x9f\x8fH\x05\x9f\x1d\x92\x81\xcc\xe0\x98\x8b\xda\x89\xcf\x92\x01a\xe1B\xfb\x97\xdc\x0cG'
seed = timestamp
while 1:
    print(seed)
    random.seed(seed)
    key = random.randbytes(16)
    iv = random.randbytes(16)
    aes = AES.new(key,AES.MODE_CBC,iv)
    flag = aes.decrypt(cipher)
    if b'H&NCTF' in flag:
        print(flag)
        break
    seed=seed-1
#H&NCTF{b1c11bd5-2bfc-404e-a795-a08a002aeb87}

babyPQ

nc 拿到n和phin

找板子题

#sagemath
n= 84967980776527544496943680131423842923512046894041731607176640110898498802469731781070436504175388661640937653364301460733816586383222327413567483887666189296775849963234033271010745401521888426163420141276372523680128816422811003690985871825766712074831006261568111266175398419328915540117249501508109717071
phin= 84967980776527544496943680131423842923512046894041731607176640110898498802469731781070436504175388661640937653364301460733816586383222327413567483887666170150364803915403739743537009245473380563093872669321929942073526760203803207933337361796440929073069517669928723004654265729894464621820967768261829637944
p=(n-phin+1-((n-phin+1)^2-4*n).nth_root(2))//2
q=n//p
print(p)
print(q)


pwn

close

看不懂

就一直尝试连接然后输入命令就出来了(摊手

reverse

childmaze

我愿其为找一找

全程x

a="H'L@PC}Ci625`hG2]3bZK4{1~"
b=[]
for i in a:
    b.append(ord(i))
for i in range(len(b)):
    b[i]=(b[i])^(i%7)
    print(chr(b[i]),end="")
#H&NCTF{Ch411enG3_0f_M4z3}

I_LOVE_SWDD

不会逆向

先看F12

看到个这个

百度一下

知道smc是对局部代码进行加密,静态调试不行,所以只能动调

分析到这里,看汇编有点复杂

交给Copilot

初步分析是判断是否在A-Z范围内

往下翻发现关键,有跟一个字符串进行判断,而且除符号外字符都在A-Z

因为解题人数较多,而且汇编貌似挺短的,猜测为简单的加解密,猜测凯撒(总之就是试出来的

最后加上H&NCTF{}

H&NCTF

算是猜出来的

最喜欢的逆向题

确实最喜欢

找一找,F12

web(一题都不会的说)

标签:random,NCTF,flag,seed,import,cipher
From: https://www.cnblogs.com/naby/p/18189807

相关文章

  • [HNCTF 2022 WEEK4]ezheap
    [HNCTF2022WEEK4]ezheapOff-By-One|堆溢出|leak_libc[*]'/home/bamuwe/ezheap/ezheap'Arch:amd64-64-littleRELRO:FullRELROStack:CanaryfoundNX:NXenabledPIE:PIEenabled$checksec./ezheapEasyNo......
  • 新手大白话 [HNCTF 2022 Week1]Challenge__rce RCE自增绕过
    今天遇到个RCE难题,挺另类的,这里做个复盘。进入题目直接给出了源码,可以发现就是个无字母RCE,且有长度限制不能使用url取反绕过,到这想到了以前的一个rce自增绕过方式,但是以前的没有长度限制。点击查看代码<?phperror_reporting(0);if(isset($_GET['hint'])){highlight_f......
  • [WesternCTF2018]shrine
    [WesternCTF2018]shrine代码整理后得到importflask<!--more-->importosapp=flask.Flask(__name__)app.config['FLAG']=os.environ.pop('FLAG')@app.route('/')defindex():returnopen(__file__).read()@app.route(......
  • 从 VNCTF2024 的一道题学习QEMU Escape
    说在前面本文的草稿是边打边学边写出来的,文章思路会与一个“刚打完用户态pwn题就去打QEMUEscape”的人的思路相似,在分析结束以后我又在部分比较模糊的地方加入了一些补充,因此阅读起来可能会相对轻松。(当然也不排除这是我自以为是)题目github仓库[1]题目分析流程[1-1]......
  • HNCTF 2022 WEEK2
    [HNCTF2022WEEK2]e@sy_flower发现花指令changetype90nop掉在主函数p重构,然后就可以反编译了编写脚本enc="c~scvdzKCEoDEZ[^roDICUMC"flag=[1]*24forjinrange(24):flag[j]=chr(ord(enc[j])^48)foriinrange(12):v5=flag[2*i+1]......
  • HNCTF 2022 WEEK1
    [HNCTF2022Week1]超级签到str2是编写脚本str2='{hello_world}'print(str2.replace(chr(111),chr(48)))#{hell0_w0rld}[HNCTF2022Week1]贝斯是什么乐器啊?enc为码表为脚本为a="NRQ@PAu;8j[+(R:2806.i"flag=""foriinrange(len(a)):fla......
  • 杂七杂八wp(NewStar_Week1和BeginCTF2024的部分pwn)
    碎碎念咱就一纯小白,以为带了Begin这一单词的CTF能对我仁慈一点,结果吧,太喜欢了,被狠狠拷打,从头自闭到尾,属于是从这次比赛又狠狠学习到不少知识了废话不多说,上正文嘞BeginCTFOne_bytechecksec嗯,基本啥都开了,喜欢捏。但是尊贵的CTFer,该“源审,启动!”了可以看到两个read,一个是......
  • VNCTF2024-WEB-gxngxngxn
    VNCTF2024-WEB-gxngxngxnCheckin签到题,直接看js文件CutePath按照上述穿越下可以看到一串base64加密的,解密后是账号密码:登录看到有新功能,可以重命名文件.我们找到flag.txt文件,但是不能查看,我们可以利用重命名将flag.txt文件传送到share_main目录下,这样我们就可以查看......
  • BeginCTF 2024(自由赛道)MISC
    realcheckin题目:从catf1y的笔记本中发现了这个神秘的代码MJSWO2LOPNLUKTCDJ5GWKX3UN5PUEM2HNFXEGVCGL4ZDAMRUL5EDAUDFL5MU6VK7O5UUYMK7GEYWWZK7NE3X2===你能帮助我找到最后的flag吗?我的解答:base32解码begin{WELCOMe_to_B3GinCTF_2024_H0Pe_YOU_wiL1_11ke_i7}下一站上岸......
  • BeginCTF 2024(自由赛道)CRYPTO
    PAD某同学在学习RSA得时候,觉得仅仅靠着比特位得RSA是不安全的,于是参考了部分资料后,灵光乍现Author:lingfengDifficult:easytask.pyimportrandom,mathfromCrypto.Util.numberimport*fromflagimportflagflag=flag[:64]assertlen(flag)==64classRSA():......