Bugku Crypto 部分题目简单题解(四)

目录

python_jail

简单的rsa

托马斯.杰斐逊

这不是md5

进制转换

affine

Crack it

rsa


python_jail

启动场景

使用虚拟机nc进行连接

输入print(flag)

发现报错,经过测试只能传入10个字符多了就会报错

利用python中help()函数,借报错信息带出flag变量值内容, 刚好10个字符

输入:help(flag)

得到flag

flag{6785a2765b72da197dfe5405fadca69c}

简单的rsa

下载文件得到rsa.pyc

直接丢到在线python反编译网址

python反编译 - 在线工具 (tool.lu)

编译后,下载了一个压缩包文件,解压得到python代码

#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 3.9import gmpy2
from Crypto.Util.number import *
from binascii import a2b_hex, b2a_hexflag = "******************"
p = 0xED7FCFABD3C81C78E212323329DC1EE2BEB6945AB29AB51B9E3A2F9D8B0A22101E467L
q = 0xAD85852F9964DA87880E48ADA5C4487480AA4023A4DE2C0321C170AD801C9L
e = 65537
n = p * q
c = pow(int(b2a_hex(flag), 16), e, n)
print(c)
c = 0x75AB3202DE3E103B03C680F2BEBBD1EA689C8BF260963FE347B3533B99FB391F0A358FFAE5160D6DCB9FCD75CD3E46B2FE3CFFE9FA2E9508702FD6E4CE43486631L

审计加密代码,已知p,q,e,n,c

m=c^d mod n 所以我们求出d即可解出明文

编写脚本

from Crypto.Util.number import *
import gmpy2
import  base64p = int("0xED7FCFABD3C81C78E212323329DC1EE2BEB6945AB29AB51B9E3A2F9D8B0A22101E467",16)
q = int("0xAD85852F9964DA87880E48ADA5C4487480AA4023A4DE2C0321C170AD801C9",16)
e = 65537
n = p * q
c = int("0x75AB3202DE3E103B03C680F2BEBBD1EA689C8BF260963FE347B3533B99FB391F0A358FFAE5160D6DCB9FCD75CD3E46B2FE3CFFE9FA2E9508702FD6E4CE43486631",16)phi = (p-1)*(q-1)               #求φ(n),φ(n)=(p-1)(q-1)
d = gmpy2.invert(e,phi)			#求e对于模n的逆元,即解密指数d
m = pow(c,d,n)					#m=c^e mod n,m为10进制格式
flag = long_to_bytes(m)			#m的字符串形式
print(base64.b64decode(flag))	#上面得到的flag是base64编码,进行一次base64解码即可

运行脚本

得到flag

托马斯.杰斐逊

下载打开附件

内容如下

1: <ZWAXJGDLUBVIQHKYPNTCRMOSFE <
2: <KPBELNACZDTRXMJQOYHGVSFUWI <
3: <BDMAIZVRNSJUWFHTEQGYXPLOCK <
4: <RPLNDVHGFCUKTEBSXQYIZMJWAO <
5: <IHFRLABEUOTSGJVDKCPMNZQWXY <
6: <AMKGHIWPNYCJBFZDRUSLOQXVET <
7: <GWTHSPYBXIZULVKMRAFDCEONJQ <
8: <NOZUTWDCVRJLXKISEFAPMYGHBQ <
9: <QWATDSRFHENYVUBMCOIKZGJXPL <
10: <WABMCXPLTDSRJQZGOIKFHENYVU <
11: <XPLTDAOIKFZGHENYSRUBMCQWVJ <
12: <TDSWAYXPLVUBOIKZGJRFHENMCQ <
13: <BMCSRFHLTDENQWAOXPYVUIKZGJ <
14: <XPHKZGJTDSENYVUBMLAOIRFCQW <

密钥: 2,5,1,3,6,4,9,7,8,14,10,13,11,12

密文:HCBTSXWCRQGLES

这是一种加密方式,叫做轮转密码或者叫比尔密码,

解密的方式就是先通过密钥调整字符串的行号,然后通过密文调整每一行字符串的顺序

先人工将字符串行号排序,放到一个txt中

然后才用脚本解密,脚本如下:

fileone = open("1.txt","r+") #手工排序行号的字符串
filetwo = open("a.txt","w+") # 新的文件保存结果
attr = "HCBTSXWCRQGLES" # 密文
attrtwo = ""
num = 0
for line in fileone:print(len(line))for i in line:if i != attr[num]:attrtwo = attrtwo + ielse:#attrtwo = attrtwo + iattrone = line[len(attrtwo):26]+attrtwo + "\n"filetwo.write(attrone)breakattrtwo = ""num = num + 1
fileone.close()
filetwo.close()

运行脚本时,1.txt内仅保留

运行脚本,得到a.txt文件

仔细观察每一列,在倒数第六列有发现:

得到:XSXSBUGKUADMIN

flag包裹提交后,提示flag错误

注意大小写区别,正确的flag为:

flag{xsxsbugkuadmin}

这不是md5

题目描述:666c61677b616537333538376261353662616566357d

16进制到文本字符串

使用在线工具16进制转换,16进制转换文本字符串,在线16进制转换 | 在线工具 (sojson.com)

得到flag

进制转换

题目描述:二进制、八进制、十进制、十六进制,你能分的清吗?

下载附件,得到

d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e

 大佬的一些说法

以及在线网站

CTF在线工具-ASCII与进制转换|任意进制转换|ASCII、2进制、8进制、10进制、16进制 (hiencode.com)

编写脚本

 keystring = "d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e"keys = keystring.split(" ")
flag = ""
for k in keys:if k[0] == "d":flag += chr(int(k[1:], 10))elif k[0] == "x":flag += chr(int(k[1:], 16))elif k[0] == "b":flag += chr(int(k[1:], 2))elif k[0] == "o":flag += chr(int(k[1:], 8))print("flag: %s" % flag)

运行后得到flag

得到flag

affine

题目描述:

y = 17x-8 flag{szzyfimhyzd} 答案格式:flag{*}

BugkuCTF-Crypto题affine_ctfaffine-CSDN博客

搜索资料得:

编写脚本,运行得到flag

方法一

#-*-coding:utf-8-*-
#i=1
#while(17*i%26!=1):
#    i+=1
#求出17的乘法逆元x='szzyfimhyzd'for i in range(len(x)):print(i,chr(23*(ord(x[i])-ord('a')+8)%26+ord('a')))

方法二

x='szzyfimhyzd'for i in range(len(x)):temp=23*(ord(x[i])-ord('a')+8)temp=temp%26result = temp + ord('a')print(chr(result),end='')

方法三

flag ="szzyfimhyzd"flagList=[]for i in flag:flagList.append(ord(i)-97)ansFlag = ""for i in flagList:for j in range(0, 26):c=(17 * j - 8) % 26if c==i:ansFlag += chr(j+97)
ansFlag

得到flag

flag{affineshift}

Crack it

下载附件,解压打开得到未知文件

他放到linux之中 ,在此处打开终端

使用命令查看文件

可以使用命令查看shadow文件信息。

more shadow

得到

root:$6$HRMJoyGA$26FIgg6CU0bGUOfqFB0Qo9AE2LRZxG8N3H.3BK8t49wGlYbkFbxVFtGOZqVI
q3qQ6k0oetDbn2aVzdhuVQ6US.:17770:0:99999:7:::

继续使用命令   

john [OPTIONS] [PASSWORD-FILES]

john [选项] [密码文件]

--show[=LEFT] 显示破解的密码[如果=左,然后uncracked]

john --show shadow

但是似乎解密失败了,尝试换一个命令

john shadow

可以得到密码   hellokitty

按照提示,修改格式后,得到flag

flag{hellokitty}

rsa

下载附件,得到如下内容

N : 460657813884289609896372056585544172485318117026246263899744329237492701820627219556007788200590119136173895989001382151536006853823326382892363143604314518686388786002989248800814861248595075326277099645338694977097459168530898776007293695728101976069423971696524237755227187061418202849911479124793990722597
e : 354611102441307572056572181827925899198345350228753730931089393275463916544456626894245415096107834465778409532373187125318554614722599301791528916212839368121066035541008808261534500586023652767712271625785204280964688004680328300124849680477105302519377370092578107827116821391826210972320377614967547827619

enc : 38230991316229399651823567590692301060044620412191737764632384680546256228451518238842965221394711848337832459443844446889468362154188214840736744657885858943810177675871991111466653158257191139605699916347308294995664530280816850482740530602254559123759121106338359220242637775919026933563326069449424391192

采用factordb分解N,得到p,q。factordb.com

p = 15991846970993213322072626901560749932686325766403404864023341810735319249066370916090640926219079368845510444031400322229147771682961132420481897362843199
q = 28805791771260259486856902729020438686670354441296247148207862836064657849735343618207098163901787287368569768472521344635567334299356760080507454640207003

计算:

phi = (p - 1) * (q - 1)

d = invmod(e, N)

恢复明文:

m = pow(enc, d, N) % N

编写python脚本

import gmpy2
from Crypto.Util.number import long_to_bytesN = 460657813884289609896372056585544172485318117026246263899744329237492701820627219556007788200590119136173895989001382151536006853823326382892363143604314518686388786002989248800814861248595075326277099645338694977097459168530898776007293695728101976069423971696524237755227187061418202849911479124793990722597
e = 354611102441307572056572181827925899198345350228753730931089393275463916544456626894245415096107834465778409532373187125318554614722599301791528916212839368121066035541008808261534500586023652767712271625785204280964688004680328300124849680477105302519377370092578107827116821391826210972320377614967547827619enc = 38230991316229399651823567590692301060044620412191737764632384680546256228451518238842965221394711848337832459443844446889468362154188214840736744657885858943810177675871991111466653158257191139605699916347308294995664530280816850482740530602254559123759121106338359220242637775919026933563326069449424391192p = 15991846970993213322072626901560749932686325766403404864023341810735319249066370916090640926219079368845510444031400322229147771682961132420481897362843199
q = 28805791771260259486856902729020438686670354441296247148207862836064657849735343618207098163901787287368569768472521344635567334299356760080507454640207003phi = gmpy2.mul(p - 1, q - 1)
d = gmpy2.invert(e, phi)m = pow(enc, d, N) % N
print(long_to_bytes(m))

运行

得到flag

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

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

相关文章

【力扣刷题笔记第三期】Python 数据结构与算法

先从简单的题型开始刷起&#xff0c;一起加油啊&#xff01;&#xff01; 点个关注和收藏呗&#xff0c;一起刷题鸭&#xff01;&#xff01; 第一批题目 1.设备编号 给定一个设备编号区间[start, end]&#xff0c;包含4或18的编号都不能使用&#xff0c;如&#xff1a;418、…

对于map的新应用

题源codeforces1974 problemC 题目大意 定义当两个三元组A和B中&#xff0c;满足三元组中有且仅有两个元素相等&#xff0c;比如 a 1 b 1 , a 2 b 2 , a 3 ! b 3 a_1b_1,a_2b_2,a_3!b_3 a1​b1​,a2​b2​,a3​!b3​ 这只是一种情况&#xff0c;三种情况之一 解题思路 …

java抽象类和接口知识总结

一.抽象类 1.啥是抽象类 用专业语言描述就是&#xff1a;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类 当然这话说的也很抽象&#xff0c;所以我们来用人话来解释一下抽象类 抛开编程语言这些&#xff0c;就以现实举例&#xff0c;我…

每日练习之排序——链表的合并;完全背包—— 兑换零钱

链表的合并 题目描述 运行代码 #include<iostream> #include<algorithm> using namespace std; int main() { int a[31];for(int i 1;i < 30;i)cin>>a[i];sort(a 1,a 1 30);for(int i 1;i < 30;i)cout<<a[i]<<" ";cout&…

Mysql之Innodb存储引擎

1.Innodb数据存储 innodb如今能够做到mysql的默认数据存储引擎&#xff0c;肯定有着其好处的&#xff0c;那么innodb有什么好处呢? 1. 当意外断电或者重启&#xff0c; InnoDB 能够做到奔溃恢复&#xff0c;撤销没有提交的数据 2.InnoDB 存储引擎维护自己的缓冲池&#xff0c…

UDS(ISO 14229)学习笔记

文章目录 名词缩写Vector视频笔记$10$27Fault Memory物理寻址和功能寻址UDS服务分类0x19服务0x14DTC汽车控制器(ECU)中DTC的状态位物理寻址和功能寻址单帧 多帧 首帧 连续帧名词缩写 DTC Diagnostic Trouble Code FTB Fault Type Byte SID Service Identifier SF Subfunctio…

DML(Data Manipulation Language)数据操作语言

一、增加 insert into -- 写全所有列名 insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);-- 不写列名&#xff08;所有列全部添加&#xff09; insert into 表名 values(值1,值2,...值n);-- 插入部分数据 insert into 表名(列名1,列名2) values(值1,值2); 举…

医院挂号就诊系统的设计与实现

前端使用Vue.js 后端使用SpiringBoot MyBatis 数据使用MySQL 需要项目和论文加企鹅&#xff1a;2583550535 医院挂号就诊系统的设计与实现_哔哩哔哩_bilibili 随着社会的发展&#xff0c;医疗资源分布不均&#xff0c;患者就诊难、排队时间长等问题日益突出&#xff0c;传统的…

软考备考三

操作系统 操作系统概述 功能&#xff1a;组织和管理软件&#xff0c;硬件资源以及计算机系统中的工作流程&#xff0c;控制程序的执行&#xff0c;向用户提供接口。 分类&#xff1a; 1.批处理操作系统 单道批 多道批&#xff08;宏观上并行&#xff0c;微观上串行&#xff09…

Hadoop3:HDFS的Fsimage和Edits文件介绍

一、概念 Fsimage文件&#xff1a;HDFS文件系统元数据的一个永久性的检查点&#xff0c;其中包含HDFS文件系统的所有目 录和文件inode的序列化信息。 Edits文件&#xff1a;存放HDFS文件系统的所有更新操作的路径&#xff0c;文件系统客户端执行的所有写操作首先 会被记录到Ed…

K8s 身份认证和权限

文章目录 K8s 身份认证和权限认证Service AccountsService Account Admission ControllerToken ControllerService Account Controller 授权(RBAC)RoleClusterRoleRoleBindingClusterRoleBinding K8s 身份认证和权限 Kubernetes 中提供了良好的多租户认证管理机制&#xff0c;…

二叉树的链式结构

1.二叉树的遍历 2.二叉树链式结构的实现 3.解决单值二叉树题 1.二叉树的遍历 1.1前序&#xff0c;中序以及后序遍历 二叉树的遍历是按照某种特定的规则&#xff0c;依次对二叉树的结点进行相应的操作&#xff0c;并且每个结点只操作一次。 二叉树的遍历有这些规则&#xff…

主流电商平台商品实时数据采集API接口||抖音电商数据分析实例|可视化

— 1 — 抖音电商数据【抖音电商API数据采集】分析场景 1. 这里&#xff0c;我们选择“伊利”这个品牌作为案例进行分析&#xff0c;在短短的4个月里&#xff0c;从最初每月营收17.07万&#xff0c;到6月份达到了2485.54 万&#xff0c;伊利的牛奶&#xff0c;有点牛&#xff…

Spring 对 Junit4,Junit5 的支持上的运用

1. Spring 对 Junit4,Junit5 的支持上的运用 文章目录 1. Spring 对 Junit4,Junit5 的支持上的运用每博一文案2. Spring对Junit4 的支持3. Spring对Junit5的支持4. 总结&#xff1a;5. 最后&#xff1a; 每博一文案 关于理想主义&#xff0c;在知乎上看到一句话&#xff1a;“…

在Windows下访问WSL(Windows Subsystem for Linux)文件夹

在Windows下访问WSL&#xff08;Windows Subsystem for Linux&#xff09;文件夹&#xff0c;可以按照以下步骤操作&#xff1a; 通过Windows文件资源管理器访问&#xff1a; 打开文件资源管理器。在地址栏中输入\\wsl$&#xff0c;然后按回车键。这将打开一个显示WSL可用发行版…

kafka配置消费者重要参数

文章目录 fetch.min.bytesfetch.max.wait.msfetch.max.bytesmax.poll.recordsmax.partition.fetch.bytessession.timeout.ms和heartbeat.interval.msmax.poll.interval.msrequest.timeout.msauto.offset.resetenable.auto.commitpartition.assignment.strategy区间(range)轮询(…

Xline社区会议Call Up|在 CURP 算法中实现联合共识的安全性

为了更全面地向大家介绍Xline的进展&#xff0c;同时促进Xline社区的发展&#xff0c;我们将于2024年5月31日北京时间11:00 p.m.召开Xline社区会议。 欢迎您届时登陆zoom观看直播&#xff0c;或点击“阅读原文”链接加入会议&#xff1a; 会议号: 832 1086 6737 密码: 41125…

通过cmd命令行使用用3dmax自带的vray渲染

有时调试需要使用vray渲染vrscene文件看效果&#xff0c;只装有3dmax下可以使用自带vray渲染&#xff0c;在3dmax的渲染日志里面看自带引擎路径 使用命令行进入到此目录 执行命令指定vr文件即可看到效果&#xff0c;如&#xff1a;vray.exe -sceneFile“C:\test15\202405241…

pip安装报错解决之后,手动安装太麻烦,怎么办

在使用pip install package_name安装公共库的时候,经常会报错: Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\Administrator>pip install hatch WARNING: Ignoring invalid distribution -ip (d:\soft\python\py…

记一次成功的性能调优

环境&#xff1a;mysql8&#xff0c;表A大小10G&#xff0c;dbeaver24.0.5 现象&#xff1a;查询页面加载数据慢 操作&#xff1a; 第一步&#xff1a;新建sql编辑器&#xff0c;把sql贴到编辑器&#xff0c;带参数&#xff1b; 第二步&#xff1a;在sql前加explain空一个并…