首页 > 其他分享 >黑盾杯本科组初赛2024

黑盾杯本科组初赛2024

时间:2024-06-23 19:21:30浏览次数:3  
标签:content HEAD 初赛 黑盾 2024 LENGTH key print data

就出了misc和crypto,其他方向是一个没出啊啊啊啊
锐评:sb密码

crypto

学会sm


我的进制我做主

直接-'a'输出看一下,只有0-17,猜测18进制

a="ergdgjboglfpgcbpbofmgafhfngpfoflfpfkgjgccndcfqfpgcgofofpdadadagr"
b=[]
c=set()
for i in a:
    x=ord(i)-ord('a')
    c.add(x)
    b.append(x)
    print(x,end=" ")
print()
print(c)
print(b)
for i in range(0,len(b),2):
    x=b[i]*18+b[i+1]
    print(chr(x),end="")

源码和数据都要保护

(就这吊题能算密码???)
直接百度到,现成脚本,改个文件名就行,密钥都没换
https://research.qianxin.com/archives/1689

from Crypto.Cipher import DES
from Crypto.Util.Padding import pad

ECB_KEY = b'\x01\x1F\x01\x1F\x01\x0E\x01\x0E'
HEAD_LENGTH = 8
ENCRYPT_TYPES = [ 'DES', "AES" , 'BASE64']

def des_decrypt(ciphertext):
    cipher = DES.new(ECB_KEY, DES.MODE_ECB)
    plaintext = cipher.decrypt(ciphertext)
    return plaintext.decode('utf-8', errors='ignore')

with open('./my_encode.php', 'rb') as f:
    content = f.read()
    head_sign = content[:HEAD_LENGTH]
    file_size = int.from_bytes(content[HEAD_LENGTH: HEAD_LENGTH + 4], 'big') 
    encrypt_type = int.from_bytes(content[HEAD_LENGTH + (4 * 2): HEAD_LENGTH + (4 * 3)], 'big')
    print('[+] file size: %dB' % file_size)
    print('[+] encrypt type: %s' % ENCRYPT_TYPES[encrypt_type - 1])
    enc_filedata = content[HEAD_LENGTH + (4 * 3):]
    padded_content = pad(enc_filedata, DES.block_size)
    plaintext = des_decrypt(padded_content)
    print(plaintext)

解密之后

<?php
 function my_encode($str,$key){ 
    $re=''; 
    $len=strlen($str); 
    for($i=0;$i<$len;$i++){ 
        $c=substr($str,$i,1);
        $k=substr($key,($i%strlen($key)),1);
         $num=ord($c)+ord($k); 
         if($num>255) $num-=256; 
        $re.=chr($num); 
    } return $re; 
} 
function my_decode($str,$key){ 
    return 'Something missed.'; 
} 
$data=@$_GET['data']; 
$key=@$_GET['key']; 
if($key=='') $key='hdhd4321'; 
if($data!=''){ 
    $mi=my_encode($data,$key); 
    file_put_contents('data_encoded.txt',$mi); 
    echo 'Saved to data_encoded.txt'; 
} 
?>

misc

gogogo

直接搞个go环境照着写个解密函数就好了
需要对flag进行from dec 然后 to base64

出题人的上网流量

翻到最后 tcp.stream eq 86
可以发现类似与邮件通信
导出IMF对象

可以使用qq邮件打开(写信,添加附件)

下载邮件附件后需要密码,提示qq号,直接去q群里找吴世昌qq号就好了
217778

学会Office

office打开,取消隐藏的I列
然后点击识图,上面有宏,点一下然后jiemi

默认排序不是正确顺序
一个个排序,最后是计算机成绩排序

秒了

标签:content,HEAD,初赛,黑盾,2024,LENGTH,key,print,data
From: https://www.cnblogs.com/naby/p/18263803

相关文章