「配枪朱丽叶。」 「配枪朱丽叶。」
  • 🏠 INDEX
  • 🚩 CTF
    • WEB
    • CRYPTO
    • MISC
  • 🌐 SITE
    • BUUCTF
    • XCTF
    • CTF.SHOW
    • BMZCTF
    • VULNHUB
    • BUGKU
    • HACKTHEBOX
  • 📔 NOTE
    • 学习笔记
    • 工具分享
    • 漏洞复现
  • 👩‍💻 ABOUT ME
  • 💬 COMMENT
  • 🏠 INDEX
  • 🚩 CTF
    • WEB
    • CRYPTO
    • MISC
  • 🌐 SITE
    • BUUCTF
    • XCTF
    • CTF.SHOW
    • BMZCTF
    • VULNHUB
    • BUGKU
    • HACKTHEBOX
  • 📔 NOTE
    • 学习笔记
    • 工具分享
    • 漏洞复现
  • 👩‍💻 ABOUT ME
  • 💬 COMMENT
我的主页 › 靶场 › BUUCTF › [ACTF新生赛2020]crypto部分题解2 min read
#BUUCTF#

[ACTF新生赛2020]crypto部分题解2 min read

11月前
164 0
内容 隐藏
[ACTF新生赛2020]crypto-classic0
[ACTF新生赛2020]crypto-classic1
[ACTF新生赛2020]crypto-rsa0
[ACTF新生赛2020]crypto-rsa3
[ACTF新生赛2020]crypto-aes

[ACTF新生赛2020]crypto-classic0

题目下载

提示压缩包密码是小Z童鞋的生日,可以知道是8位数字。爆破得到密码为:19990306,拿到classic0.c:

#include<stdio.h>

char flag[25] = ***

int main()
{
	int i;
	for(i=0;i<25;i++)
	{
		flag[i] -= 3;
		flag[i] ^= 0x7;
		printf("%c",flag[i]);
	}
	return 0; 
}

根据它反写解密脚本即可。

c = "Ygvdmq[lYate[elghqvakl}"
flag = ""
for i in c:
    i = ord(i)^0x7
    i = i+3
    flag = flag+chr(i)
print(flag)

 

[ACTF新生赛2020]crypto-classic1

题目下载

根据hint:

哇,这里有压缩包的密码哦,于是我低下了头,看向了我的双手,试图从中找到某些规律:

xdfv ujko98 edft54 xdfv pok,.; wsdr43

拿手在键盘上画画,明文为圈起来的字符。可以得到压缩密码:circle

解压得到维吉尼亚密文:SRLU{LZPL_S_UASHKXUPD_NXYTFTJT}

已知flag的前四个字母格式为actf,对其进行维吉尼亚加密得到spsp,然后去重,得到密钥为:sp

解密得到: actf{tkxw_a_fidpvffxo_vigenere}

下面这一步还没太明白,参考了别的师傅的WP,可能就是猜的吧

密文:fidpvffxo
密码:dx
明文:classical

密文:tkxw
密码:xd
明文:what

马克一下TaQini师傅的WP

最后可以得到flag为actf{what_a_classical_vigenere}

 

[ACTF新生赛2020]crypto-rsa0

题目下载

改掉伪加密位。拿到rsa0.py

from Cryptodome.Util.number import *
import random

FLAG=#hidden, please solve it
flag=int.from_bytes(FLAG,byteorder = 'big')


p=getPrime(512)
q=getPrime(512)

print(p)
print(q)
N=p*q
e=65537
enc = pow(flag,e,N)
print (enc)

已知pqc,直接拿RSATool解了。

 

[ACTF新生赛2020]crypto-rsa3

题目下载

给了c、e、n。其中n可以用yafu工具分解:

同上提直接工具解就好惹。

 

[ACTF新生赛2020]crypto-aes

题目下载

aes.py:

from Cryptodome.Cipher import AES
import os
import gmpy2
from flag import FLAG
from Cryptodome.Util.number import *

def main():
    key=os.urandom(2)*16
    iv=os.urandom(16)
    print(bytes_to_long(key)^bytes_to_long(iv))
    aes=AES.new(key,AES.MODE_CBC,iv)
    enc_flag = aes.encrypt(FLAG)
    print(enc_flag)
if __name__=="__main__":
    main()

output:

91144196586662942563895769614300232343026691029427747065707381728622849079757
b'\x8c-\xcd\xde\xa7\xe9\x7f.b\x8aKs\xf1\xba\xc75\xc4d\x13\x07\xac\xa4&\xd6\x91\xfe\xf3\x14\x10|\xf8p'

key的长度为2*16,iv的长度为16。

它们俩进行异或时,key后16位是与0进行异或,得到的还是其本身。

马克一下TaQini师傅的脚本:

#!/usr/bin/python3
#__author__:TaQini

from Crypto.Cipher import AES
import os
import gmpy2
from Crypto.Util.number import *

out = long_to_bytes(91144196586662942563895769614300232343026691029427747065707381728622849079757)

key = out[:16]*2

xor_res = out[16:]

iv = bytes_to_long(xor_res)^bytes_to_long(key[16:])
iv = long_to_bytes(iv)

aes=AES.new(key,AES.MODE_CBC,iv)

out = b'\x8c-\xcd\xde\xa7\xe9\x7f.b\x8aKs\xf1\xba\xc75\xc4d\x13\x07\xac\xa4&\xd6\x91\xfe\xf3\x14\x10|\xf8p'

flag = aes.decrypt(out)

print(flag)
0 0
Shaw Root
# aes# buuctf# crypto# rsa
相关文章
[SUCTF 2019]EasyWeb
[SWPU2019]Web3
[羊城杯2020]easyphp
[GWCTF 2019]BabyRSA
[BJDCTF 2nd]文件探测
头像
Shaw Root站长
> 二月春来三月长安。
143文章 0评论 128获赞
碎碎念 : P

最近深入滴研究了微积分、线性代数和高等数学。发现“微积分”都是一声,“线性代数”都是四声,“高等数学”四声都有,数学真是好奇妙^^

随便看看:)
[b01lers2020]crypto_crossword
10月前
[CTF.SHOW]Login_Only_For_36D
3月前
[HarekazeCTF2019]encode_and_encode
12月前
[Vulnhub]BTRSys: v2.1靶机通关记录
3月前
[BJDCTF 2nd]-Crypto
11月前
  • 旧站
  • 我的知乎
  • Riro
  • 7i4n2h3n9
  • EDS
  • 熵增
  • 紫哥purplet
  • 夏风
  • N0vice
  • Ga1@xy
  • prontosil
  • FzWjScJ
  • Retr_0
  • L1near
  • 1p0ch
  • β-AS
  • Match
  • Dizzyk
  • Y1ng
  • 偏有宸机
  • Van1sh
  • Fstone
  • Kali’s Blog
  • Airtail
  • False
  • 魔法少女雪殇
Copyright © 2020-2021 「配枪朱丽叶。」. Designed by nicetheme. 百度统计 载入天数... 载入时分秒...