欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 1.21学习记录

1.21学习记录

2025/5/16 18:37:43 来源:https://blog.csdn.net/2401_88422349/article/details/145290111  浏览:    关键词:1.21学习记录

misc

2023isctf 你说爱我尊嘟假嘟

这题有点脑洞,需要把你说爱我换成Ook.将尊嘟换为Ook!假嘟换成Ook?(根据语气进行猜测吧)在这里插入图片描述用在线工具解密在这里插入图片描述最后用base64解密即可

2023isctf 杰伦可是流量明星

解压后是一个MP3文件,但是用010查看后发现是一个rar在这里插入图片描述得到一个流量包和MP3,MP3是不能说的秘密,就去看流量包,先尝试看追踪流,但是没有东西,就去直接搜索flag,结果真搜到了在这里插入图片描述

2023isctf 一心不可二用

下载得到附件后是一个apk文件,用010看是一个PK压缩包文件在这里插入图片描述打开发现一堆内容在这里插入图片描述根据提示在这里插入图片描述在010里面搜索,发现了flagzip和路径在这里插入图片描述尝试解压却发现报错了在这里插入图片描述去搜索报错信息在这里插入图片描述发现属于syntax错误,这里有点脑洞,用SyntaxError作为密码试了一下,发现对了在这里插入图片描述

2023isctf stream

根据题意,分析流量包,追踪流查看http在这里插入图片描述一眼sql注入,看他得到的数字,很像ASCII码表,去搓了前4个确实是flag,后面继续手搓,要注意成功返回的是2c2,失败是2d2
flag{Blueshark_Haker2023}

2023isctf Wonderful New World

下载后得到了hmcl的启动器和一个1.20版本的mc,去日志里面看看在这里插入图片描述这些数字看着非常可疑在这里插入图片描述发现是10进制,得到的字符一看就是base64的格式,解密出来
在这里插入图片描述接着去存档那里找,发现这样一种图片,看这个分隔符很像莫斯密码,最后试了一下发现蜂蜜块是.侦测器是分隔,史莱姆块是——在这里插入图片描述在这里插入图片描述得到前半部分,将两部分拼起来就可以了

2023isctf Ez_misc

下载得到了PPT和压缩包,在PPT第五页发现字符在这里插入图片描述尝试用这个作为压缩包密码,猜对了,得到一张图片,发现不能直接打开,用010修复,添加文件头FF D8 FF E0后可以打开在这里插入图片描述隐约看到二维码的样子,用cqr扫一下在这里插入图片描述

2023isctf 小猫

解压出一张小猫图片,用随波逐流一把梭看一下发现了存在隐藏图片在这里插入图片描述分出来发现也是没用,但注意到随波逐流之前分析到jpg的lsb隐写,就用stego看一下在这里插入图片描述发现存在图片,save bin然后把文件头多余部分删掉,得到社会主义核心价值观在这里插入图片描述在最开始的图片左上角竟然还存在坐标在这里插入图片描述正好对应社会主义核心价值观,这是一个社会主义核心价值观加密

公正 公正 公正 诚信 文明 公正 民主
公正 法治 法治 诚信 民主 公正 民主
公正 和谐 公正 民主 和谐 民主 和谐
敬业 和谐 平等 公正 公正 公正 自由
和谐 和谐 公正 自由 和谐 富强 公正
公正 和谐 文明 和谐 和谐 和谐 敬业
和谐 文明 和谐 平等 和谐 自由 和谐
爱国 公正 自由 和谐 富强 和谐 文明
和谐 敬业 和谐 法治 和谐 公正 和谐
法治 公正 自由 公正 文明 公正 公正
和谐 法治 和谐 公正 和谐 公正 法治
友善 法治

解码就得flag在这里插入图片描述

crypto

2023isctf 1Zrsa

题目如下

from secret import flag
from Crypto.Util.number import *
import gmpy2e = 65537
def genKey(nbits):while 1:p1 = getPrime(3*nbits)p2 = gmpy2.next_prime(p1)q1 = getPrime(nbits)q2 = getPrime(nbits)print(abs((p1 - p2)*q1*q2 / p2) < 0.5)if (abs((p1 - p2)*q1*q2 / p2) < 0.5):n1 = p1 * q1n2 = p2 * q2return n1,n2def encrypt(message,e,n):m = bytes_to_long(message)cipher = pow(m,e,n)return ciphere = 65537
nbits = 512
N1,N2 = genKey(nbits)
c = encrypt(flag,e,N1)print("c =",c)
print("N1 =",N1)
print("N2 =",N2)"""
c = 10514867898770499427284608506159580569755258729683776720082395249877529851029152305989048383470182992945743997295638334301128554841767619528809377736651238576700664675871769469687466885347209033023021132575700436470105289467423655742323143373578268184141573237433927498143740155552829633601489926767185335051352605346248971754473960051955670785777007641909166041398566067524811394639822575661469340152913706417365065683835945980239268665146900957692685590242386540944646586739158427428484471978559453954674292300496568823382513505511940062159025700312492163454304120916055466108498000990408937265075788135466153131436
N1 = 29306627985861300819651846356448043523015086509329909246911330574896611830331438353458702041787309531570626136669100576501108581024502570212983369979387658041578384466200573362881060761873478590684611265249166591510948597798713864127744488747451815919677861684787135464097885906630772472111899455047125676738720391327331161464894360886214160668909531050207033060523194208723151015702926842472554933849380343375654696115359960495727909221926251630408376527033291123026893207722440649867394971680316008434251667567174806214522621693042164997381729300075394393372808917061813346794422821819494227772694592990703688149467
N2 = 18405525902524887428651801489049128242565457677879715229456940729064725933277139190670749899959483734341103740185991771024797037242681566772189045321838652668819112989587974866361063424698215713773139281840970499871668796770682692589505769008516630604297570518689639885716307469568821629424402742264467677407820449195383921766157185602677665872353099155904715047452319853202981674101731121033360393547940246101864940155160699277417096395998766928213545196492031975135121409309520198853066288180944871441224241681478164494169741263236267316380581883196836731872676312125837497320438964940186318916950049777255612191899
"""

这里看了大佬的脚本


import gmpy2
import libnumc = 10514867898770499427284608506159580569755258729683776720082395249877529851029152305989048383470182992945743997295638334301128554841767619528809377736651238576700664675871769469687466885347209033023021132575700436470105289467423655742323143373578268184141573237433927498143740155552829633601489926767185335051352605346248971754473960051955670785777007641909166041398566067524811394639822575661469340152913706417365065683835945980239268665146900957692685590242386540944646586739158427428484471978559453954674292300496568823382513505511940062159025700312492163454304120916055466108498000990408937265075788135466153131436
N1 = 29306627985861300819651846356448043523015086509329909246911330574896611830331438353458702041787309531570626136669100576501108581024502570212983369979387658041578384466200573362881060761873478590684611265249166591510948597798713864127744488747451815919677861684787135464097885906630772472111899455047125676738720391327331161464894360886214160668909531050207033060523194208723151015702926842472554933849380343375654696115359960495727909221926251630408376527033291123026893207722440649867394971680316008434251667567174806214522621693042164997381729300075394393372808917061813346794422821819494227772694592990703688149467
N2 = 18405525902524887428651801489049128242565457677879715229456940729064725933277139190670749899959483734341103740185991771024797037242681566772189045321838652668819112989587974866361063424698215713773139281840970499871668796770682692589505769008516630604297570518689639885716307469568821629424402742264467677407820449195383921766157185602677665872353099155904715047452319853202981674101731121033360393547940246101864940155160699277417096395998766928213545196492031975135121409309520198853066288180944871441224241681478164494169741263236267316380581883196836731872676312125837497320438964940186318916950049777255612191899
e=65537#这里数组的第一个为0是为了下标从1开始,方便计算和对齐
def get_aList(p,q,a_list = [0]):a=p//qa_list.append(a)if p % q != 0:return get_aList(q,p%q,a_list)else:return a_listdef get_pqList(a_list):pqList=[(0,0)] #这里跟上述同理#pqList为一个数组,每个值为一个元组,表示分子和分母pqList.append((a_list[1],1))pqList.append( (a_list[1]*a_list[2] + 1, a_list[2]) )for i in range(3,len(a_list) ):pqList.append( (a_list[i]*pqList[i-1][0] + pqList[i-2][0] , a_list[i] * pqList[i-1][1] + pqList[i-2][1]) )return pqListdef crack(N1,N2):alist = get_aList(N1,N2)pqList = get_pqList(alist)[1:] #把前面对齐的第0项删掉,或者下边过滤一下不计算第0项for q1,q2 in pqList:#找每一项渐进分数if N1 % q1 == 0 and q1 != 1:print(q1)p1 = N1 // q1d = gmpy2.invert(e,(p1-1)*(q1-1))m = pow(c,d,N1)print(n2s(int(m)))breakif __name__ == "__main__":crack(N1,N2)

涉及到的定理以及学习:
https://math.stackexchange.com/questions/531736/legendres-proof-continued-fractions-from-hardys-book 运用到了连分数的运算

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词