忙里偷闲做做题wwwwwwwwwwwww
1 |
|
1 | # bash |
1 |
|
1 | # bash |
1 |
|
1 | # bash |
1 |
|
但是交了以后就显示错误,不知道为什么……
破案了,因为凯撒之后的原文是
按资料算就是了
然而我找到了在线计算的工具;D
按照比特币wiki的说法,计算过程大概是这样的:
You already solved this one! Solution: 18GZRs5nx8sVhF1xVAaEjKrYJga4hMbYc2
factordb.com 完成
噫,年老体衰也就算了,眼神也不好了,其实没有分解成功
然后开了个yafu,结果还是很不错的,我做出来了以后依然没有分解出答案
先是打开题目看了下,说是生成的素数low entropy
(低熵)吗,然后打开论文大概看了下,就说生成素数有毛病,就猜测是不是共同素数的锅
结果还真是
先读两个公钥,然后gcd了一波,成功
1 | # python |
然后懒得写求拓展欧几里得求逆元了,直接拿工具了
补全代码
1 | # python |
暴力一下肉眼看吧
是的,暴力以后搜索THE,出现次数最多的那个基本就确定了
不过得感叹一下 ……自己越来越蠢了……求个逆元,不是a*b%c==1则mod c下ab互为逆元么,我?a的b次方是要闹哪样……
1 | # python |
1 | λ python |
截取一哈就行
ECB的问题就在于同样的明文总是对应相同的密文,而AES又是分组加密,所以我们只需要16字节截一段,然后从截出来的字段里拼出Deposit amount: One million dollars
就吼啦
然后把对应的密文组合提交就好啦
栅栏密码
不是栅栏密码,丢人
就是这个名字,密码是17
然而提交又失败……是不是要加空格???
和凯撒那题一样的问题
看看论文
论文结论放得挺快的,喜欢
1 | 0x10001 e = |
暴力/去他们推特看看
Hint for 1: the "easy" passwords are all standard English words
很惭愧,原本没思路的,又学习了一下别人怎么用John the Ripper的
1 | root@kali:~# touch crackit |
有公钥、私钥,分解N
有人提示
You may want to look at end of section 1 of this paper to get an idea of how to tackle this.
但是懒人选择直接用工具
1 | λ python rsatool.py -f PEM key.pem -n 2575379069244619122811590270693932708961682118615086945187580561953482470842235 5391264253236312033342930767629026955594380914791828872789640882880456756317355718989951748134910495292317107822354638062542536621806610548119524360577494257082085388892230653871347635789064083634194556923152378748383913055689941464591534636606264605505256200032003073128045380287795929441895659897956729518691264242454587153279087011099643014705274937963488514996712634166563179373202236856266518026166326484283485368106496495400924862033175617707157820195751946135848383888076352630565287208026865192435711425148588227314034233872575399 -d 17105402368913594732268140576016021009260884834703468214454459966320267707293844817833310635571150638333054368126620841170740802501167335402566350357845884586982802288930597441429262542859551082213714762867946512961388972561696317770839625342858127315991460791480206023627821121730752214777828377914024156239192555174948311918712437146465305330571121417401154082076772433310857936602097318370602240544385942653856271345622469333448979309288295132145434251447399809135938564905989171217097472641153308592366164932415033656821923922166211242186853476413476873462490965233576571621275866183349806774845359965178419609761 |
母鸡
就是给了一个简单密码表,顺着跑个散列值表,然后排序,找出散列值最大最小的两个
有点考验电脑
Python写的排序那一步会有Memory Error(主要是ACM遗留下来的习惯,写算法写cpp比较习惯)
首先是下载rockyou list,算SHA-256值(其实这里没必要,但是我觉得可能会有用,所以算一个保存着了)
1 | import hashlib |
然后排序输出最低最高的位置
1 |
|
然后找到对应单词测试一下就行
1 | import hashlib |
多表,工具即可
https://f00l.de/hacking/vigenere.php
成功
You already solved this one! Solution: BARLEY
单表,工具解决
成功
You already solved this one! Solution: c21c7f2384dabd723c6d265b1315ddb5
暴力?字典暴力?
是字典
先去hashcat了解了形式以后,写个脚本读
1 | import base64, binascii |
然后上hashcat
1 | A:DownloadsCompressedhashcat-4.1.0 |
排序输入得到答案
RSA的选择密文攻击。
假设爱丽丝创建了密文 $C=P^emodn$并且把 $C$ 发送给鲍勃,同时假设我们要对爱丽丝加密后的任意密文解密,而不是只解密 $C$,那么我们可以拦截$ C$,并运用下列步骤求出 $P$:
于是先读公钥
1 | λ openssl rsa -pubin -in pubkey.pem -text -modulus |
1 | λ python |
提到网站去,得到1395d5d50ae8d8e24572a393c628b3c4b335a30298b305d396e8b2a388e302d602a245d3c4e4a8e335990a88e5a302a5a30478de8244b36305690938b512d32
求$3^{-1}modn$,最后计算得到明文0x687474703a2f2f6172636869762e696e667365632e6574687a2e63682f656475636174696f6e2f667330382f73656373656d2f4d616e67657230312e706466
就是Two-Time-Pad攻击咯
就是爆破咯
1 | from hashlib import md5 |
爆破成功,密钥时间是1453862488
直觉告诉我hashcat可解
貌似是公钥选得腊鸡?但是我需要复(yu)习一下ECC
同上
直觉告诉我,暴力依然可以解
Twitter上有hint,直觉告诉我说hashcat可以解决
这个的CBC需要考虑一下子了
印象里是RSA,慢慢来把
这题这么水还放这么后面……yafu/factordb秒解好吧
都懒得写WP了……看到这里还不会的可以退群了(明示【误
RSA广播攻击诶,好嗦
标题明示,我要慢慢学习去
手动一个个试,然后得到密钥是21,trader
这题还是比较有意思的
首先很明显是一个base64
1 | λ python |
然后去鉴定去
1 | root@kali:~# binwalk file |
接着解压
1 | root@kali:~# gzip -d file |
接着又是很明显的base64,解出来是个公钥
去分解一下,成功了
求得私钥解出号码
原文:https://www.cnblogs.com/lijianming180/p/12026734.html