【2020年第二届“网鼎杯”网络安全大赛 青龙组】Crypto you raise me up / SageMath 一波骚操作

[密码学]利用docker安装与使用sagemath Sage 是一个免费的、开源的数学软件系统。在我们学习密码学或者数论线代等等数学问题的过程中,用来进行一些复杂的数学运算很好用,比如求离散对数等等。下面就来介绍一下如何在你的电脑上使用docker快速部署sagemath,以及如何使用sage。 之所以选择Docker安装,是因为我刚学了docker,是因为docker部署对系统版本啥的统统没有要求,环境啥的都在容器里也不需要你自己配置,只需一行命令就能快速部署,非常方便。缺点就是要先安装docker,不过网安方面你要漏洞复现啥的多少都要用到docker, 阅读详情

【2020年第二届“网鼎杯”网络安全大赛 青龙组】Crypto you raise me up / SageMath 一波骚操作

一、用Ubuntu装好的sagemath

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Crypto.Util.number import *
import random

n = 2 ** 512
m = random.randint(2, n-1) | 1
c = pow(m, bytes_to_long(flag), n)
print 'm = ' + str(m)
print 'c = ' + str(c)

# m = 391190709124527428959489662565274039318305952172936859403855079581402770986890308469084735451207885386318986881041563704825943945069343345307381099559075
# c = 6665851394203214245856789450723658632520816791621796775909766895233000234023642878786025644953797995373211308485605397024123180085924117610802485972584499

题目很…一看就嫩看懂!but…

打开Ubuntu,安装sagemath,开算!

在线求解网址:https://sagecell.sagemath.org/

在这里插入图片描述

n = 2 ** 512

m = 391190709124527428959489662565274039318305952172936859403855079581402770986890308469084735451207885386318986881041563704825943945069343345307381099559075

c=6665851394203214245856789450723658632520816791621796775909766895233000234023642878786025644953797995373211308485605397024123180085924117610802485972584499

ZmodN = Zmod(2^512)

m = ZmodN(m)
c = ZmodN(c)

c.log(m)

hex(56006392793405651552924479293096841126763872290794186417054288110043102953612574215902230811593957757)

最后的输出16进制结果

'0x666c61677b35663935636139332d313539342d373632642d656430622d6139313339363932636234617d'

16进制再转为字符串

在线转换网址:https://www.sojson.com/hexadecimal.html

在这里插入图片描述

flag{5f95ca93-1594-762d-ed0b-a9139692cb4a}

二、SageMath 的安装使用方法:

下载地址
http://www.sagemath.org/download-linux.html
1. windows版
2. linux Debian系的kali,或者ubuntu

上面的网址随便选个亚洲的镜像,然后下载,扔进linux
在这里插入图片描述

下面的图是windows的在:https://github.com/sagemath/sage-windows/releases/tag/0.6.0-9.0
在这里插入图片描述
官方教程
http://doc.sagemath.org/html/en/tutorial/index.html

翻译参考
https://www.lainme.com/doku.php/topic/sage/start

下面以自带py2,3的 kali 作演示:

我很早之前安装的时候,解压时间特别特别长,等不及没注意直接 ./sage 安装就会出大问题!!!

耐心!细心!恒心!

选中压缩包,右键在此解压

或者命令行

tar xvf sage-9.0-Debian_GNU_Linux_9-x86_64.tar.bz2

解压后的样子:
在这里插入图片描述进解压的文件夹里

cd SageMath/

在这里插入图片描述
在这里空白处,右键打开终端输入:

./sage

在这里插入图片描述Done!

Ubuntu 自带py3,无py2的的环境安装故障

ubuntu ./sage后报错
	已安装py3
	运行reloacte.py
	usr/bin/env python 没有这个目录
	
	打开报错relocate-once.py,在第一行python后面加3,改为usr/bin/env python3  让她找到python的目录即可解决!

在这里插入图片描述

三、python sympy解法

在这里插入图片描述
从大佬那里截的图,这个小知识点非常重要,写的很好

https://blog.youkuaiyun.com/qq_43531895/article/details/106108139

from sympy.ntheory import discrete_log
n = 2**512
m = 391190709124527428959489662565274039318305952172936859403855079581402770986890308469084735451207885386318986881041563704825943945069343345307381099559075
c = 6665851394203214245856789450723658632520816791621796775909766895233000234023642878786025644953797995373211308485605397024123180085924117610802485972584499
flag_dec = discrete_log(n,c,m) #得到flag的十进制值
print(hex(flag_dec)) #转为十六进制后打印出来

0x666c61677b35663935636139332d313539342d373632642d656430622d6139313339363932636234617d

这里,可以把上面的扔进Notepad++,去掉前面的0x,然后选中全部,插件转换为ascii码

在这里插入图片描述在这里插入图片描述

import binascii
#16进制整数转ASCii编码字符串

a = 0x666c61677b35663935636139332d313539342d373632642d656430622d6139313339363932636234617d
#a 是需要转换的,带0x的16进制整数

b = hex(a) #加引号,把int转换成相同的str字符串类型
b = b[2:]  #截取去掉开头的 0x
c = binascii.a2b_hex(b) #转换成ASCii编码的字符串,类型是bytes
print(c)

b’flag{5f95ca93-1594-762d-ed0b-a9139692cb4a}’

整合后的脚本

import binascii
from sympy.ntheory import discrete_log
n = 2**512
m = 391190709124527428959489662565274039318305952172936859403855079581402770986890308469084735451207885386318986881041563704825943945069343345307381099559075
c = 6665851394203214245856789450723658632520816791621796775909766895233000234023642878786025644953797995373211308485605397024123180085924117610802485972584499
flag_dec = discrete_log(n,c,m) #得到flag的十进制值
a = hex(flag_dec)
b = a[2:]  #截取去掉开头的 0x
c = binascii.a2b_hex(b) #转换成ASCii编码的字符串,类型是bytes
print(c, sep='\n')

flag{5f95ca93-1594-762d-ed0b-a9139692cb4a}

BUUCTF:[网鼎杯 2020 青龙组]you_raise_me_up 首先先看一下代码: #!/usr/bin/env python # -*- coding: utf-8 -*- from Crypto.Util.number import * import random n = 2 ** 512 m = random.randint(2, n-1) | 1 c = pow(m, bytes_to_long(flag), n) print 'm = ' + str(m) print 'c = ' + str(c) # m = 391190709124527428959. 阅读详情

相关推荐

2020——网鼎杯 (青龙组)jocker

文章目录声明栈指针修改wrongomgsmc自修改动调进入encrtpt(把数据段编程代码来解析)idc脚本 声明 这个题,分析了一下,两个知识,一个是栈指针修改,还有一个smc自修改(自修改的话,两种破法,一个是idc脚本,一个是动调) 栈指针修改 进入程序直接地址0x401838的sp指针(堆栈不平衡)报错,点击options—>general—>勾选stack pointer,然后找到地址0x401838,截图看看 call函数调用前后 栈顶指针sp位置不一样,可能吗???????那栈

寻梦&之璐 9235

kali 2024 安装SageMath

sudo apt -y install sagemath和源码安装遇到各种包冲突.尝试使用mamba安装成功。

nihao_ma_的博客 4133

win版 SageMath-9.3-Installer-v0.6.3下载

SageMath是一个开源数学软件系统,旨在提供一种集成的数学软件环境,通过集成多个开源软件包和工具,为数学研究和教学提供支持。它包括数学软件、编辑器、计算机代数系统、绘图工具和其他实用工具,可用于数学、物理、工程和计算机科学等领域的研究和教学。 SageMath的主要特点包括: 集成了多个数学软件包和工具,包括Maxima、GAP、PARI/GP、SciPy、NumPy等。 提供了Python编程语言的接口,使得用户可以使用Python的强大功能进行数学计算和数据分析。 提供了交互式计算环境,可以直接在命令行中输入数学公式和命令进行计算。 支持多种数学对象的计算,包括多项式、有理数、矩阵、向量、函数、图形等。 提供了丰富的绘图功能,可以绘制二维和三维图形。 具有跨平台的特性,可以在Windows、Mac OS X、Linux等多个操作系统上运行。 总之,SageMath是一款强大而灵活的数学软件系统,可以帮助用户进行各种数学计算和研究,尤其适合数学教学和科学研究领域。

2020网鼎杯——you_raise_me_up wp

2020年第二届网鼎杯,密码学you_raise_me_up, 这道题我们刚开始还以为是个RSA,后来才发现这其实是一个离散对数问题。 原题如下: #!/usr/bin/env python # -*- coding: utf-8 -*- from Crypto.Util.number import * import random n = 2 ** 512 m = random.randint(2, n-1) | 1 c = pow(m, bytes_to_long(flag), n) print 'm

lnjoy 2975

管理信息系统(MIS)设计

一名读者可以借阅多本图书,而一本图书也可以被不同的读者借阅,所以读者与图书之间存在着多对多的借阅关系,读者与图书之间存在着多对多的联系,即m:n的联系。每一种图书属于一种图书类型,而一种图书类型可以包含很多本图书,因此可以得到图书类型与图书之间也存在着一种一对多的联系,即图书类型与图书是1:n的联系。系统应该实现以下功能:图书管理员可以维护图书信息,包括增加新书、修改图书信息、办理图书借阅登记、图书归还登记、过期图书处理、丢失图书处理及读者借阅证件信息的维护等;

m0_69718745的博客 2476

大疆OcuSync vs 传统2.4GHz:深度拆解无人机图传射频模块的硬件差异

本文深度对比了大疆OcuSync与传统2.4GHz无人机图传射频模块的硬件差异,涵盖芯片组、天线系统、PCB设计、散热方案及生产测试等核心环节。重点解析OcuSync的全定制SoC芯片、智能MIMO天线阵列及精密PCB布局如何实现革命性性能提升,为无人机图传技术发展提供专业参考。

u5v6w7的博客 806

Ubuntu 20.04系统中Sage(sagemath)安装及使用详细过程

但预编译二进制版本只看到了9.4版本,没有找到更新的,故选择了这种方式。最近在做实验遇到要安装Sage,也是花了将近三天时间才弄好,一波三折整理了一下,以便后续还要安装时能少走弯路。1)安装前的预准备阶段,看看一些工具包是否安装好了。,二进制版本安装方式更简便,但由于版本要求,我还又用源码进行了安装。的时间非常长,需要耐心等待,我用时一个多小时,可别断网了。为了保险起见,我就全部复制安装了,可能需要等待一些时间。注意,官网给出了多种安装方式,我主要实验了两种,分别为。例如,检查perl是否安装好了,

cryptocxf的博客 1万+

卸载Office 16 Click-to-Run Extensibility Component详细步骤

卸载Office 16 Click-to-Run Extensibility Component详细步骤 第一步:按住键盘上的“Win+R”,打开运行窗口 在运行窗口输入“Installer”回车,打开Installer文件夹 第二步:在Installer文件夹红框最右侧,即“大小”后面,右击选择“其他”,找到“主题”,勾选,点击“确定”,添加主题列成功 第三步:在“主题”列找到“Office 16 Click-to-Run Extensibility Component

M_try的博客 3万+

CTF竞技平台_file_include-guolvphp

打开题目,发现了php代码 <?php if(isset($_GET['file'])){ $file = $_GET['file']; //GET传入参数file $file = str_replace("php", "???", $file); //将传入的file参数中的php转换为??? include($file); }else{ highlight_file(__FILE__); } 参考知识点 发现是个简单的过滤方式,这时候想到可以用data

Kobalos的博客 769

使用光流进行 Warp 的流程

光流描述了图像帧中每个像素的运动。前向光流:描述了帧中每个像素在帧中的移动位置。后向光流:描述了帧中每个像素在帧​ 中的移动位置。水平方向的位移(x 方向),即每个像素水平移动了多少像素。垂直方向的位移(y 方向),即每个像素垂直移动了多少像素。使用光流进行 Warp 的流程Warp 是通过光流对图像进行变换的操作,旨在将前一帧的像素根据光流场映射到下一帧的对应位置。Step 1: 计算光流我们首先需要通过光流网络(如 RAFT)来估算两帧之间的光流。我们可以获得前向光流(从帧​ 到帧。

qq_44199605的博客 2108

霍尔式流量计背后的技术和算法

例如,在一项实验中,当流量低于最小操作范围(0.250 L/min)时,误差比其他流量大,但仍然在95%的精度范围内可接受。例如,在Honeywell电子学的测试中,使用30英寸水柱的压力计和热电偶测量气体特性,记录并计算实际和理论质量流量,以确定修正系数。霍尔式流量计的校准系数是通过一系列精确的测量和计算步骤确定的,以确保其测量结果的准确性和可靠性。霍尔式流量计的校准系数是通过严格的环境条件、精确的测量步骤和实验数据确定的。其中,Qs是标尺介质的流量,K是修正系数,Qm是用户介质的流量。

百态·数智思维 | 聚焦大数据、量化与未来AI 1234

Ubuntu安装sagemath环境搭建

【代码】Ubuntu安装sagemath环境搭建。

m0_50891550的博客 2954

华三R4900 G5服务器实战:用PMC P460-B4阵列卡配置RAID1+RAID6,并搞定CentOS 7.9安装(含热备盘设置)

本文详细解析了在华三R4900 G5服务器上使用PMC P460-B4阵列卡配置RAID1+RAID6混合阵列的全过程,包括热备盘设置和CentOS 7.9系统安装。通过实战步骤和性能优化建议,帮助企业IT人员高效部署高可用存储方案,特别适合需要数据冗余和系统稳定性的企业级应用场景。

weixin_29248653的博客 357

SageMath与Python的使用

【代码】Sage Math的使用。

工作学习笔记 7888

MatLab Desired port was :31515解决方案

前言:使用的MatLabR2022b今天突然出现了错误,在程序中打不开文件。后尝试了下面的方法,可以解决。后面还有另一种方法,上面方法如果行不通,大家可以尝试一下。搜索栏输入:firewall.cpl。找到相关项,右键属性,设置为允许。

qq_42212501的博客 1339

从零开始学习PX4源码23(飞行模式管理)

本文摘要主要介绍了PX4飞控系统中飞行模式管理模块的代码实现流程。文章从整体架构入手,分析了飞行模式管理模块的启动过程、类继承关系以及核心运行机制。重点阐述了模块从rc.mc_apps启动脚本到FlightModeManager::main()的调用链路,包括任务创建、工作队列初始化和主循环执行流程。核心部分解释了Run()函数如何通过订阅传感器数据、更新参数、处理命令以及生成轨迹设定点来实现飞行模式切换和任务管理功能。文章为理解PX4飞行控制系统的模式切换机制提供了代码层面的详细分析。

陌城烟雨 499

SageMath安装及使用

一、下载Sage安装包 Sage下载地址 我选择的是ubuntu 18的,下载的sage-9.4-Ubuntu_18.04-x86_64.tar.bz2这个。 二、安装Sage 解压包 tar xvf sage-9.4-Ubuntu_18.04-x86_64.tar.bz2 解压时间比较久点,解压成功后,有SageMath文件夹出来。 然后cd SageMath sage/SageMath$ tree -L 1 . ├── COPYING.txt ├── Makefile ├── Pipfile ├──

楼中望月 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

BUUCTF·[网鼎杯 2020 青龙组]you_raise_me_up·WP

BUUCTF·[网鼎杯 2020 青龙组]you_raise_me_up·WP

sm1918451478的博客 670

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ubuntu 安装sage

ubuntu安装sagemath

qq_64690665的博客 984

[网鼎杯 2020 青龙组]you_raise_me_up(离散对数)

加密脚本 #!/usr/bin/env python # -*- coding: utf-8 -*- from Crypto.Util.number import * import random n = 2 ** 512 m = random.randint(2, n-1) | 1 c = pow(m, bytes_to_long(flag), n) print 'm = ' + str(m) print 'c = ' + str(c) # m = 391190709124527428959489662

weixin_44110537的博客 854

[网鼎杯 2020 青龙组]you_raise_me_up-BUUCTF-离散对数

后面发现python的 sympy库discrete_log函数是专门求指数的,正好可以用。题目的意思就是求出e,这里一开始的想法是爆破,但是没爆出来,可能是e太大了吧。

yuqie的博客 773

CTF夺旗赛-GET参数注入

个人笔记仅供参考 1.首先确保kali攻击机和靶机在同一个网段,使用ifconfig查看靶机ip 2.使用nmap -sn -PE 192.168.80.1/24命令扫描出同网段靶机ip 3.使用nmap -sV 192.168.80.132 命令扫描靶机开放服务端口 4.由于扫描出来的端口服务并没有大端口开放,因此存在大端口漏洞几率不高,所以我们再探测80端口使用命令dirb http://192.168.80.132:80 发现存在admin/login目录,于是在浏览器打开网

qq_39687353的博客 1845

ubantu16.04安装sagemath9.3【详细+踩雷】

【代码】ubantu16.04安装sagemath9.3【详细+踩雷】上手简单速度快

qq_45670418的博客 1377

【开源代码】GNFS_SageMath|Ubuntu 22 下 SageMath 安装和一般数域筛法代码示例(2024年)

自留版,对应代数学。

shandianchengzi的博客 3657

SageMath安装

Sagemath工具是免费开源的,针对数学计算的一个工具。Sagemath是根据Linux系统编写的,所以Windows上使用的话,会创建一个Linux系统运行。

orchid_sea的博客 3777

[网鼎杯 2020 青龙组]you_raise_me_up

py表达要运用sympy.discrete_log函数去求解。要利用离散对数求解表达式。

2401_84859230的博客 250
上一篇: 【2020年第二届“网鼎杯”网络安全大赛 青龙组】Web AreUSerialz
下一篇: 【2020年第二届“网鼎杯”网络安全大赛 青龙组】MISC 虚幻2 视频题解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值