id0-rsa WP合集
忙里偷闲做做题wwwwwwwwwwwww
- Intro to Hashing
- Intro to PGP
- Hello PGP
- Hello OpenSSL
- Intro to RSA
- Caesar
- Hello Bitcoin
- Ps and Qs
- Affine Cipher
- Cut and Paste Attack On AES-ECB
- Rail Fence
- Factoring RSA With CRT Optimization
- Easy Passwords
- RSA Modulus Factorization
- Fast Hashing Passwords
- Vigenère
- Monoalphabetic Cipher
- Salt Alone Won't Save You
- CCA on Textbook RSA
- AES-CTR with Nonce Reuse
- Bad Entropy
- Double Strength Affine
- Rainbow Table Hash Chain
- Elliptic Curve Private Key Recovery
- ECDSA Nonce Recovery
- Slightly harder passwords
- Upgraded Affine
- Fvtavat Xrl Erpbirel
- Insufficient Key Size
- Håstad's Broadcast Attack
- CBC Padding Attack
- Breaking PDF Passwords
- Vigenère + Rail Fence
- Recover the secret phone number
- Optimal Backpack Allocation
- Insecure PRNG
- Playfair
- CRIMEs against TLS
- Bleichenbacher's CCA2 on RSA
- Backdoored PRNG
- Not So Safe Primes
- DSA with LCG nonces
Intro to Hashing
1 |
import hashlib |
Intro to PGP
1 |
# bash root@kali:~/Documents/id0-rsa# touch Intro_to_PGP.key |
Hello PGP
1 |
#!/bin/bash count=1 while read WORD; do |
Hello OpenSSL
繁琐的解法
1 |
# bash |
1 |
n = 0xe6dca0a5265d39950c7ee3b7a131964787002c1b56ba2e54ceb430dbff09959d d = 0x8f67e18a752857ca947685f1dd79b6050e3505e7f9edda23e6de14aa22d978a9 c = 0x6794893f3c47247262e95fbed846e1a623fc67b1dd96e13c7f9fc3b880642e42 >>> hex(pow(c,d,n)) |
一行
1 |
# bash |
Intro to RSA
1 |
>>> (e, N) = (0x3, 0x64ac4671cb4401e906cd273a2ecbc679f55b879f0ecb25eefcb377ac724ee3b1) |
Caesar
但是交了以后就显示错误,不知道为什么……
破案了,因为凯撒之后的原文是
Hello Bitcoin
按资料算就是了
然而我找到了在线计算的工具;D
按照比特币wiki的说法,计算过程大概是这样的:
- 首先我们生成一个私钥
- 获取对应的公钥
- 获得公钥的SHA256散列值
- 获取上一步结果的RIPEMD-160散列值
- 在散列值前加入版本号
- 计算上一步结果的SHA-256散列
- 取第二个SHA-256散列值的前四字节作为地址校验和
- 在第四步的结果末尾加入校验和
- 进行Base28编码
You already solved this one! Solution: 18GZRs5nx8sVhF1xVAaEjKrYJga4hMbYc2
Ps and Qs
factordb.com 完成
噫,年老体衰也就算了,眼神也不好了,其实没有分解成功
然后开了个yafu,结果还是很不错的,我做出来了以后依然没有分解出答案
先是打开题目看了下,说是生成的素数low entropy
(低熵)吗,然后打开论文大概看了下,就说生成素数有毛病,就猜测是不是共同素数的锅
结果还真是
先读两个公钥,然后gcd了一波,成功
1 |
# python |
然后懒得写求拓展欧几里得求逆元了,直接拿工具了
补全代码
1 |
# python |
Affine Cipher
暴力一下肉眼看吧
是的,暴力以后搜索THE,出现次数最多的那个基本就确定了
不过得感叹一下 ……自己越来越蠢了……求个逆元,不是a*b%c==1则mod c下ab互为逆元么,我™a的b次方是要闹哪样……
1 |
# python |
1 |
λ python |
Cut and Paste Attack On AES-ECB
截取一哈就行
ECB的问题就在于同样的明文总是对应相同的密文,而AES又是分组加密,所以我们只需要16字节截一段,然后从截出来的字段里拼出Deposit amount: One million dollars
就吼啦
然后把对应的密文组合提交就好啦
Rail Fence
栅栏密码
不是栅栏密码,丢人
就是这个名字,密码是17
然而提交又失败……是不是要加空格???
和凯撒那题一样的问题
Factoring RSA With CRT Optimization
看看论文
论文结论放得挺快的,喜欢
1 |
>>> e = 0x10001 |
Easy Passwords
暴力/去他们推特看看
Hint for 1: the "easy" passwords are all standard English words
很惭愧,原本没思路的,又学习了一下别人怎么用John the Ripper的
1 |
root@kali:~# touch crackit |
RSA Modulus Factorization
有公钥、私钥,分解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 |
Fast Hashing Passwords
母鸡
就是给了一个简单密码表,顺着跑个散列值表,然后排序,找出散列值最大最小的两个
有点考验电脑
Python写的排序那一步会有Memory Error(主要是ACM遗留下来的习惯,写算法写cpp比较习惯)
首先是下载rockyou list,算SHA-256值(其实这里没必要,但是我觉得可能会有用,所以算一个保存着了)
1 |
import hashlib def hash(strings): |
然后排序输出最低最高的位置
1 |
#include <bits/stdc++.h> |
然后找到对应单词测试一下就行
1 |
>>> import hashlib |
Vigenère
多表,工具即可
https://f00l.de/hacking/vigenere.php
成功
You already solved this one! Solution: BARLEY
Monoalphabetic Cipher
单表,工具解决
成功
You already solved this one! Solution: c21c7f2384dabd723c6d265b1315ddb5
Salt Alone Won't Save You
暴力?字典暴力?
是字典
先去hashcat了解了形式以后,写个脚本读
1 |
import base64, binascii |
然后上hashcat
1 |
A:DownloadsCompressedhashcat-4.1.0 |
排序输入得到答案
CCA on Textbook RSA
RSA的选择密文攻击。
假设爱丽丝创建了密文 $C=P^emodn$并且把 $C$ 发送给鲍勃,同时假设我们要对爱丽丝加密后的任意密文解密,而不是只解密 $C$,那么我们可以拦截$ C$,并运用下列步骤求出 $P$:
- 选择任意的 $X∈Z^∗_n$,即 $X$ 与 $N$ 互素
- 计算 $Y=C×X^emod n$
- 由于我们可以进行选择密文攻击,那么我们求得 $Y$ 对应的解密结果 $Z=Y^d$
- 那么,由于 $Z=Y^d=(C×X^e)^d=C^dX=P^{ed}X=PXmodn$,由于 $X$ 与 $N$ 互素,我们很容易求得相应的逆元,进而可以得到 $P$
于是先读公钥
1 |
λ openssl rsa -pubin -in pubkey.pem -text -modulus |
1 |
λ python |
提到网站去,得到1395d5d50ae8d8e24572a393c628b3c4b335a30298b305d396e8b2a388e302d602a245d3c4e4a8e335990a88e5a302a5a30478de8244b36305690938b512d32
求$3^{-1}modn$,最后计算得到明文0x687474703a2f2f6172636869762e696e667365632e6574687a2e63682f656475636174696f6e2f667330382f73656373656d2f4d616e67657230312e706466
AES-CTR with Nonce Reuse
就是Two-Time-Pad攻击咯
Bad Entropy
就是爆破咯
1 |
from hashlib import md5 |
爆破成功,密钥时间是1453862488
Rainbow Table Hash Chain
直觉告诉我hashcat可解
Elliptic Curve Private Key Recovery
貌似是公钥选得腊鸡?但是我需要复(yu)习一下ECC
ECDSA Nonce Recovery
同上
Double Strength Affine
直觉告诉我,暴力依然可以解
Slightly harder passwords
Twitter上有hint,直觉告诉我说hashcat可以解决
Upgraded Affine
这个的CBC需要考虑一下子了
Fvtavat Xrl Erpbirel
印象里是RSA,慢慢来把
Insufficient Key Size
这题这么水还放这么后面……yafu/factordb秒解好吧
都懒得写WP了……看到这里还不会的可以退群了(明示【误
Håstad's Broadcast Attack
RSA广播攻击诶,好嗦
CBC Padding Attack
标题明示,我要慢慢学习去
Breaking PDF Passwords
Vigenère + Rail Fence
手动一个个试,然后得到密钥是21,trader
Recover the secret phone number
这题还是比较有意思的
首先很明显是一个base64
1 |
λ python |
然后去鉴定去
1 |
root@kali:~# binwalk file DECIMAL HEXADECIMAL DESCRIPTION |
接着解压
1 |
root@kali:~# gzip -d file |
接着又是很明显的base64,解出来是个公钥
去分解一下,成功了
求得私钥解出号码
Optimal Backpack Allocation
Insecure PRNG
Playfair
CRIMEs against TLS
Bleichenbacher's CCA2 on RSA
Backdoored PRNG
Not So Safe Primes
DSA with LCG nonces
id0-rsa WP合集的更多相关文章
- SecureCRT 下载,安装,绝佳配色,实用配置,上传下载配置合集
SecureCRT 下载,安装,绝佳配色,实用配置,上传下载配置合集 chocoball 发布于 2年前,共有 3 条评论 SecureCRT 是一款支持 SSH2.SSH1.Telnet.Telne ...
- SQL Server技术内幕笔记合集
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...
- 【Android】开发中个人遇到和使用过的值得分享的资源合集
Android-Classical-OpenSource Android开发中 个人遇到和使用过的值得分享的资源合集 Trinea的OpenProject 强烈推荐的Android 开源项目分类汇总, ...
- [Erlang 0122] Erlang Resources 2014年1月~6月资讯合集
虽然忙,有些事还是要抽时间做; Erlang Resources 小站 2014年1月~6月资讯合集,方便检索. 小站地址: http://site.douban.com/204209/ ...
- [Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集
Erlang Resources 小站 2013年7月~12月资讯合集,方便检索. 附 2013上半年盘点: Erlang Resources 小站 2013年1月~6月资讯合集 小站地 ...
- SQL用法操作合集
SQL用法操作合集 一.表的创建 1.创建表 格式: 1 CREATE TABLE 表名 2 (列名 数据类型(宽度)[DEFAULT 表达式][COLUMN CONSTRAINT], 3 ... ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- Lucene搜索方式大合集
package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; imp ...
- [Erlang 0105] Erlang Resources 小站 2013年1月~6月资讯合集
很多事情要做,一件一件来; Erlang Resources 小站 2013年1月~6月资讯合集,方便检索. 小站地址: http://site.douban.com/204209/ ...
随机推荐
- 堆排序算法以及python实现
堆满足的条件:1,是一颗完全二叉树.2,大根堆:父节点大于各个孩子节点.每个节点都满足这个道理.小根堆同理. parent = (i-1)/2 #i为当前节点 left = 2*i+1 righ ...
- 通过编写c语言程序,运行时实现打印另一个程序的源代码和行号
2017年6月1日程序编写说明: 1.实现行号的打印,实现代码的读取和输出,理解主函数中的参数含义. 2.对fgets函数理解不够 3.对return(1); return 0的含义理解不够 4.未实 ...
- kubectl 常用命令一
1.kubectl logs <options> <PodName> -f -p, --previous --since= No. --since-time= --tail ...
- 有几个水洼(DFS)
#include <iostream> #include<cstdio> using namespace std; #define maxn 105 char field[ma ...
- MySQL--OPTIMIZE TABLE碎片整理
参考:http://blog.51yip.com/mysql/1222.html BLOB和TEXT值会引起一些性能问题,特别是在执行了大量的删除操作时.删除操作会在数据表中留下很大的空洞,以后填入这 ...
- feign声明式客户端
参考地址: https://blog.csdn.net/qq_30643885/article/details/85341275 Feign是一个声明式的Web服务客户端,使得编写Web服务客户端变得 ...
- Windows10配置Jmeter环境
注:在安装Jmeter之前,请先检查下电脑有没有装JDK:[Win+R]然后输入cmd->进入命令行界面,输入java -version 出现以下信息就是此电脑已安装了JDK.由于jmeter要 ...
- 关于UDP通信的参考目录
1.IP头,TCP头,UDP头,MAC帧头定义 2.深入理解TCP/UDP通信原理 其内部有提到关于wireshark抓包分析工具的使用 3.udp通讯中的connect()和bind()函数 其中有 ...
- linux xargs详解
xargs [-0prtx] [-E eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null] [-d delimiter] [--delimiter d ...
- 学习ECC及Openssl下ECC生成密钥的部分源代码心得
一.ECC的简介 椭圆曲线算法可以看作是定义在特殊集合下数的运算,满足一定的规则.椭圆曲线在如下两个域中定义:Fp域和F2m域. Fp域,素数域,p为素数: F2m域:特征为2的有限域,称之为二元域或 ...