CTF CRYPTO

萌萌哒的八戒

题目:

解答:猪圈密码

FLAG:

flag{whenthepigwanttoeat}

old-fashion /世上无难事

题目:

Os drnuzearyuwn, y jtkjzoztzoes douwlr oj y ilzwex eq lsdexosa kn pwodw tsozj eq ufyoszlbz yrl rlufydlx pozw douwlrzlbz, ydderxosa ze y rlatfyr jnjzli; mjy gfbmw vla xy wbfnsy symmyew (mjy vrwm qrvvrf), hlbew rd symmyew, mebhsymw rd symmyew, vbomgeyw rd mjy lxrzy, lfk wr dremj. Mjy eyqybzye kyqbhjyew mjy myom xa hyedrevbfn lf bfzyewy wgxwmbmgmbrf. Wr mjy dsln bw f1_2jyf-k3_jg1-vb-vl_l
VIZZB IFIUOJBWO NVXAP OBC XZZ UKHVN IFIUOJBWO HB XVIXW XAW VXFI X QIXN VBD KQ IFIUOJBWO WBKAH NBWXO VBD XJBCN NKG QLKEIU DI XUI VIUI DKNV QNCWIANQ XN DXPIMKIZW VKHV QEVBBZ KA XUZKAHNBA FKUHKAKX XAW DI VXFI HBN QNCWIANQ NCAKAH KA MUBG XZZ XEUBQQ XGIUKEX MUBG PKAWIUHXUNIA NVUBCHV 12NV HUXWI XAW DI XUI SCQN QB HZXW NVXN XZZ EBCZW SBKA CQ NBWXO XAW DI DXAN NB NVXAP DXPIMKIZW MBU JIKAH QCEV XA BCNQNXAWKAH VBQN HKFI OBCUQIZFIQ X JKH UBCAW BM XLLZXCQI XAW NVI PIO KQ 640I11012805M211J0XJ24MM02X1IW09

解答:词频分析https://quipqiup.com/

FLAG:

flag{n1_2hen-d3_hu1-mi-ma_a}
flag{640e11012805f211b0ab24ff02a1ed09}

权限获得第一步

题目:

Administrator:500:806EDC27AA52E314AAD3B435B51404EE:F4AD50F57683D4260DFD48AA351A17A8:::

解答:

同前面的Windows系统密码,都是经过MD5处理的解密

F4AD50F57683D4260DFD48AA351A17A8

即可得到flag

FLAG:

flag{3617656}

RSA3

题目:

c1=22322035275663237041646893770451933509324701913484303338076210603542612758956262869640822486470121149424485571361007421293675516338822195280313794991136048140918842471219840263536338886250492682739436410013436651161720725855484866690084788721349555662019879081501113222996123305533009325964377798892703161521852805956811219563883312896330156298621674684353919547558127920925706842808914762199011054955816534977675267395009575347820387073483928425066536361482774892370969520740304287456555508933372782327506569010772537497541764311429052216291198932092617792645253901478910801592878203564861118912045464959832566051361
n=22708078815885011462462049064339185898712439277226831073457888403129378547350292420267016551819052430779004755846649044001024141485283286483130702616057274698473611149508798869706347501931583117632710700787228016480127677393649929530416598686027354216422565934459015161927613607902831542857977859612596282353679327773303727004407262197231586324599181983572622404590354084541788062262164510140605868122410388090174420147752408554129789760902300898046273909007852818474030770699647647363015102118956737673941354217692696044969695308506436573142565573487583507037356944848039864382339216266670673567488871508925311154801
e1=11187289
c2=18702010045187015556548691642394982835669262147230212731309938675226458555210425972429418449273410535387985931036711854265623905066805665751803269106880746769003478900791099590239513925449748814075904017471585572848473556490565450062664706449128415834787961947266259789785962922238701134079720414228414066193071495304612341052987455615930023536823801499269773357186087452747500840640419365011554421183037505653461286732740983702740822671148045619497667184586123657285604061875653909567822328914065337797733444640351518775487649819978262363617265797982843179630888729407238496650987720428708217115257989007867331698397
e2=9647291

解答:共模攻击

from gmpy2 import invert
import binascii
def gongmogongji(n, c1, c2, e1, e2):def egcd(a, b):if b == 0:return a, 0else:x, y = egcd(b, a % b)return y, x - (a // b) * ys = egcd(e1, e2)s1 = s[0]s2 = s[1]if s1 < 0:s1 = - s1c1 = invert(c1, n)elif s2 < 0:s2 = - s2c2 = invert(c2, n)m = pow(c1, s1, n) * pow(c2, s2, n) % nreturn m
#n相同
n1=22708078815885011462462049064339185898712439277226831073457888403129378547350292420267016551819052430779004755846649044001024141485283286483130702616057274698473611149508798869706347501931583117632710700787228016480127677393649929530416598686027354216422565934459015161927613607902831542857977859612596282353679327773303727004407262197231586324599181983572622404590354084541788062262164510140605868122410388090174420147752408554129789760902300898046273909007852818474030770699647647363015102118956737673941354217692696044969695308506436573142565573487583507037356944848039864382339216266670673567488871508925311154801
e1=11187289
e2=9647291
message1=22322035275663237041646893770451933509324701913484303338076210603542612758956262869640822486470121149424485571361007421293675516338822195280313794991136048140918842471219840263536338886250492682739436410013436651161720725855484866690084788721349555662019879081501113222996123305533009325964377798892703161521852805956811219563883312896330156298621674684353919547558127920925706842808914762199011054955816534977675267395009575347820387073483928425066536361482774892370969520740304287456555508933372782327506569010772537497541764311429052216291198932092617792645253901478910801592878203564861118912045464959832566051361message2=18702010045187015556548691642394982835669262147230212731309938675226458555210425972429418449273410535387985931036711854265623905066805665751803269106880746769003478900791099590239513925449748814075904017471585572848473556490565450062664706449128415834787961947266259789785962922238701134079720414228414066193071495304612341052987455615930023536823801499269773357186087452747500840640419365011554421183037505653461286732740983702740822671148045619497667184586123657285604061875653909567822328914065337797733444640351518775487649819978262363617265797982843179630888729407238496650987720428708217115257989007867331698397m=gongmogongji(n1,message1,message2,e1,e2)
m=format(m,hex(m))
print( m)
#输出为16进制需用工具转为字符串

FLAG:

flag{49d91077a1abcb14f1a9d546c80be9ef}

RSA2

题目:

e = 65537
n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113
dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751

解答:dp攻击

from gmpy2 import*
from libnum import*e = 65537
n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113
dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657
c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751for i in range(1,e):                   #在范围(1,e)之间进行遍历if(dp*e-1)%i == 0:if n%(((dp*e-1)//i)+1) == 0:   #存在p,使得n能被p整除p=((dp*e-1)//i)+1q=n//(((dp*e-1)//i)+1)phi=(q-1)*(p-1)            #欧拉定理d=invert(e,phi)         #求模逆m=pow(c,d,n)               #快速求幂取模运算
print(hex(m))       #16进制转文本

FLAG:

flag{wow_leaking_dp_breaks_rsa?_98924743502}

异性相吸

题目:

key:asadsasdasdasdasdasdasdasdasdasdqwesqf
密文:ἇ̀Ј唒ဃ塔屋䩘卖剄䐃堂ن䝔嘅均ቄ䩝ᬔ

解答:一开始以为是新佛曰密码解密无答案http://hi.pcmoe.net/buddha.html

用101Editor打开发现key和密文长度一致,看writeup 采用二进制异或得到结果后16进制转字符串

key = '0110000101110011011000010110010001110011011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011100010111011101100101011100110111000101100110'
cip = '0000011100011111000000000000001100001000000001000001001001010101000000110001000001010100010110000100101101011100010110000100101001010110010100110100010001010010000000110100010000000010010110000100011000000110010101000100011100000101010101100100011101010111010001000001001001011101010010100001010000011011'
flag = ''
for i in range(0,len(key)):if(key[i] == cip[i]):flag += '0'else:flag += '1'
flag = hex(int(flag,2))
print(flag)

FLAG:

flag{ea1bc0988992276b7f95b54a7435e89e}

RSA

题目:

两个文件pub.key和flag.enc
用101Editor打开pub.key得到:
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMAzLFxkrkcYL2wch21CM2kQVFpY9+7+
/AvKr1rzQczdAgMBAAE=
-----END PUBLIC KEY-----

在线网站http://tool.chacuo.net/cryptrsakeyparse进行分解

密钥类型RSA
密钥强度256
PN(e)65537
PN(n)
8693448229604811919066606200349480058890565601720302561721665405
8378322103517
DER格式
303c300d06092a864886f70d0101010500032b003028022100c0332c5c64ae47182f6c1c876d42336910545a58f7eefefc0bcaaf5af341ccdd0203010001

yafu大整数分解:操作步骤:C:\Users\Lenovo>E:\个人CTFTools\编码与密码\密码\RSA\RSA大整数分解\yafu-1.34\yafu-x64(文件所在地址)factor(86934482296048119190666062003494800588905656017203025617216654058378322103517 )

得到

p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463

脚本解密:

import rsa
import gmpy2
e = 65537
n = 86934482296048119190666062003494800588905656017203025617216654058378322103517
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463
fn = (p-1)*(q-1)
d = int(gmpy2.invert(e,fn))
key = rsa.PrivateKey(n,e,d,q,p)         #在pkcs标准中,pkcs#1规定,私钥包含(n,e,d,p,q)
with open("flag.enc","rb") as f:f = f.read()print(rsa.decrypt(f,key))

注意:flag.enc必须放在该脚本所在文件夹且脚本名不能和rsa库重名

Unencode编码

UUencode编码

编码实例:

明文:Be slow to promise and quick to perform.

编码后:H0F4@小于VQO=R!T;R!P小于F]M:7-E(&%N9"!Q=6EC:R!T;R!P97)F;W)M+@``

https://www.qqxiuzi.cn/bianma/uuencode.php

题目:

89FQA9WMD<V1A<V1S83DY.#<W3$Q,2TM]

FLAG:

flag{dsdasdsa99877LLLKK}

RSAROLL

题目:data.txt

{920139713,19}704796792
752211152
274704164
18414022
368270835
483295235
263072905
459788476
483295235
459788476
663551792
475206804
459788476
428313374
475206804
459788476
425392137
704796792
458265677
341524652
483295235
534149509
425392137
428313374
425392137
341524652
458265677
263072905
483295235
828509797
341524652
425392137
475206804
428313374
483295235
475206804
459788476
306220148

解答:

大数分解:得到p=18443,q=49891将p,q,e,c带入求m
import gmpy2
n = 920139713
e = 19
p = 18443
q = 49891
phi = (p-1) * (q-1)
d = gmpy2.invert(e,phi)
f = open('E:\文件\data.txt','r')
flag = ''
for lines in f.readlines():tmp = pow(int(lines),d,n)flag += chr(tmp)
print(flag)
f.close()

FLAG:

flag{13212je2ue28fy71w8u87y31r78eu1e2}

[AFCTF2018]Morse

题目:

-....\.----\-....\-....\-....\...--\--...\....-\-....\-....\--...\-...\...--\.----\--...\...--\..---\--...\--...\....-\.....\..-.\--...\...--\...--\-----\.....\..-.\...--\...--\...--\....-\...--\.....\--...\----.\--...\-..

解答:在线解密http://www.txttool.com/t/?id=Mzg1得61666374667b317327745f73305f333435797d(666是不是很熟悉)

16进制转asii得flag

FLAG

afctf{1s't_s0_345y}
flag{1s't_s0_345y}

CTF CRYPTO相关推荐

  1. CTF Crypto中涉及的AES题目

    CTF Crypto中涉及的AES题目 单独涉及AES_ECB模式 单独涉及AES_CBC模式 ProblemProblemProblem AnalysisAnalysisAnalysis Solvi ...

  2. BugKu CTF(Crypto篇)---where is flag 5

    BugKu CTF(Crypto篇)-where is flag 5 文章目录 BugKu CTF(Crypto篇)---where is flag 5 题目描述 首先一看就是base64 解码内容好 ...

  3. 基于Python实现的CTF Crypto加密解密工具

    纯小白,记录一下自己小学期内做的项目.基于Python实现一个能够对凯撒密码.维吉尼亚密码.栅栏密码.摩斯密码.Base64编码.Ascii编码.AES.DES.RSA.RC4的加密解密以及维吉尼亚密 ...

  4. 密码学--CTF Crypto 总结

    密码学简介 密码学(Cryptography)一般可分为古典密码学和现代密码学. 其中,古典密码学,作为一种实用性艺术存在,其编码和破译通常依赖于设计者和敌手的创造力与技巧,并没有对密码学原件进行清晰 ...

  5. CTF CRYPTO从零开始的RSA2

    题源:BUUCTF RSA2 题目 e = 65537 n = 24825400785152624117772152669890180298583276617622160961225887737162 ...

  6. CTF ——crypto ——RSA原理及各种题型总结

    RSA原理及各种题型总结 Table of Contents 一,原理: 信息传递的过程: rsa加密的过程: 二,CTF 中的 常见的十种类型: 1,已知 p ,q,e   求 d? 2,已知 n( ...

  7. CTF Crypto(密码学)总结

    最近接触了一些密码学的题,感觉特别有意思,写下博客来记录一下,以免忘记 一:哈夫曼树 哈夫曼树(也称为最优二叉树),虽然(目前)没学,但是百度.谷歌大法无敌. 查查原理,再去做题. 经过一番查找,懂了 ...

  8. CTF Crypto简单题学习思路总结(持续更新)

    系列文章目录 本系列开篇文章,就没有链接了. 文章目录 系列文章目录 前言 一.编码/解码 1.1 BrainFuck密码&ook!密码 1.2 URL编码&HTML实体编码 1.3 ...

  9. 【一些题目】CTF Crypto初接触

    Base 64 题目: 密文:TllTRUN7QmFzZTY0X2xzX1NvX2NvbzJ9 分享一个在线工具网址:http://ctf.ssleye.com/ 从题目不难看出,密文经过Base64 ...

  10. CTF Crypto/MISC 在线工具网站

    2020.4.2 增加了新佛曰的网站 2020.4.6 添加了Linux系统调用网站 2020.5.25 增加了base58的编码网站,跳舞小人密码,alphabet minimoys密码网站,JS混 ...

最新文章

  1. Java项目:医院分诊挂号住院管理系统(java+SpringBoot+FreeMarker+Mysql)
  2. python --- 基础多线程编程
  3. Skype for Business Server 2015-10-ADFS-2-配置
  4. 【ASP】简单Url编码和Url解码实例
  5. C++Primer学习笔记:第3章 字符串、向量和数组
  6. NFS方式挂载rootfs的设置方法
  7. linux系统里route -n不起作用,Linux系统中的route解析
  8. notepad++行首行尾添加字符
  9. 【Clojure 基本知识】 关于函数参数的各种高级用法
  10. 基于主从博弈的电热综合能源系统动态定价与能量管理 主要做的是电热综合能源系统的动态定价问题,采用是主从博弈方法
  11. mysql msdtc 不支持_MSDTC”该伙伴事务管理器已经禁止了它对远程网络事务的支持”的错误(转) | 学步园...
  12. SGD,Momentum,优化算法原理及实现
  13. Dorado7的初次使用
  14. 计算机自定义桌面设置在哪里设置,如何在windows10桌面设置自定义图片?查看方法...
  15. 参考线--深入了解字体
  16. 【从零开始的Java开发】1-5-4 ArrayList、HashSet、HashMap 概述与案例
  17. 将Excel表格中的文本格式存储的数字批量转换为数字
  18. BC20/BC26-opencpu移植cjson,mqtt等注意事项
  19. 锐捷网络:校园网基于802.1x无感知认证
  20. python 求解高阶线性方程并画出图像

热门文章

  1. 洛谷5249加特林轮盘赌
  2. 幸福的老婆给老公的80条幸福条约
  3. 如何使用Matlab实现你的量化易略
  4. 《放下就是快乐》之世间真爱
  5. (一百三十四)Passpoint 基础知识学习
  6. magento mage.php,Mage :: app和Mage :: Magento之间的区别
  7. Android Studio中gradle一栏中出现nothing to show 提示的解决方法
  8. sql语句优化三(尽量避免的sql语句)
  9. 微信朋友圈运营10条经验总结
  10. mysql查看用户下所有表的大小,高级Java开发必看