IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 2022浙江网络安全大赛 -> 正文阅读

[Python知识库]2022浙江网络安全大赛


欢迎来玩 我的博客

Web

nisc_学校门户网站

找到登录页面http://1.14.97.218:28261/home/login/

注册账号

登录得到flag
请添加图片描述

吃豆人吃豆魂

在index.js中找到flagbase加密之后的

请添加图片描述

请添加图片描述

Crypto

easystream3

经过4次getrandbits(8)之后state重置了之后是三个getrandbits已知

可以爆破出mask(非预期)有点慢

s=[189, 81, 22, 153, 205, 197, 241, 3, 18, 128, 36, 253, 5, 200, 170, 131, 25, 71, 9, 196, 164, 161, 9, 0, 7, 123, 149, 121, 32, 122, 149, 131, 170, 252, 189, 68, 162, 164, 153, 67]
b='DASCTF{'
a=[]
for i in range(len(b)):
    a.append(ord(b[i])^s[i])
print(a)


c=0b11111001000100000100010111011010
# d=100110011000001110001010

class lfsr():
    def __init__(self, seed, mask, length):
        self.length_mask = 2 ** length - 1
        self.mask = mask & self.length_mask
        self.state = seed & self.length_mask
        #print(self.state, self.mask)

    def next(self):
        next_state = (self.state << 1) & self.length_mask
        i = self.state & self.mask & self.length_mask
        output = 0
        while i != 0:
            output ^= (i & 1)
            i = i >> 1
        next_state ^= output
        self.state = next_state
        return output

    def getrandbit(self, nbit):
        output = 0
        for _ in range(nbit):
            output = (output << 1) ^ self.next()
        return output

for i in range(2**31,2**32):
    b = lfsr(c, i, 32)
    if(b.getrandbit(8)==153):
        if(b.getrandbit(8)==131):
            if(b.getrandbit(8)==138):
                print(i)
seed=2226048585
f=lfsr(c,seed,32)


for i in s:
    print(chr(f.getrandbit(8)^i),end='')
#TF{88ac22ea2ce99c7a325fe6ce2ddd3718}

easyrsrsa1

hint:共模攻击

两次encode之后得到两个矩阵即可解得原矩阵

比赛时矩阵逆元没想到直接求逆。。

from gmpy2 import *
e1 = next_prime(65537)
e2 = next_prime(e1)
key1=
key2=
n= 

def egcd(a, b):
    if a == 0:
         return (b, 0, 1)
    else:
        g, y, x = egcd(b % a, a)
        return (g, x - (b // a) * y, y)


c1 = matrix(Zmod(n),key1)
c2 = matrix(Zmod(n),key2)

s = egcd(e1, e2)
s1 = s[1]
s2 = s[2]
if s1 < 0:
    s1 = - s1
    c1 = c1.inverse()
elif s2 < 0:
    s2 = - s2
    c2 = c1.inverse()

m = power_mod(c1,s1,n)*power_mod(c2,s2,n)
flag = []
for i in range(5):
    for j in range(5):
        if int(m[i][j])>1000:
             print(int(m[i][j])-n,end=' ')
        else:print(m[i][j],end=' ')

MISC

好怪哦

010打开发现他是倒的PK

逆一下

with open("fuck.zip","rb") as f:
    a=f.read()
with open("1.zip","wb") as f1:
    f1.write(a)

解压得到flag.png

发现他缺少头加上png头得到文件

改高度得到flag

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:53:29  更:2022-09-24 20:54:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:52:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码