CG-CTF Crypto WriteUp
首先,题目地址:https://cgctf.nuptsast.com/challenges#Crypto
然后,第一次写wp,求指正…
然后,大一萌新,求关照…
第一题:
这个题,一看字母数字base64跑起,百度或者python一跑,出结果。
Flag:nctf{this_is_base64_encode}
10分到手
base64,base32,base16的区别如下
base64:包含大写字母(A-Z),小写字母(a-z),数字(0-9)以及+和/
base32:大写字母(A-Z)和数字234567
base16:数字(0-9),字母(ABCDEF)
当ASCll用Base加密达不到所对应的位数的时候用=号补齐。
所以看到字母数字都有,就确定是base编码;有小写字母,base64,有只大写字母,base32,大写字母A-F和数字,base16。
嗯,记住了。
第二题:
这题,看键盘。
脑洞很重要!!!!看手指的轨迹!!!
Flag:nctf{areuhack}
20分到手。
脑洞很重要,嗯,记住了。
第三题:
看提示:
1.xor 异或
2.hex2binary 十六进制转二进制
3.len(bin(miwen))==len(bin(mingwen)) 密文的二进制长度和明文的二进制长度相等
第一步,异或。
直接C++或者Python,我选择C++。
看一下文件大小,
32个字节,对应32个字符,char类型,嗯,应该没错。
1 |
|
Flag:nctf{xor_xor_xor_biubiubiu}
30分到手,开心!
后面有一个假的第四题:
Flag:nctf{zhaowomen}
一分到手
第四题:
Wiener是啥?
百度搜半天找不到有关的,那就谷歌吧。
好像看到了什么不得了的东西…
下载下来看看…
看下Readme
嗯,就知道是个RSA加密,看了还是不会用…
那就直接看主程序吧…
(这主程序看着像python3的,不过py2也能跑出来)
看见用法了。
已知e,n,出来d,大概…懂了?
看一下下载下来的那个py。
逆着走一遍算法,构造一个密钥,然后加密,大概就这样。
RSA中,e,n组成公钥,e,d组成私钥,然后
这两个长整数中有一个是d,有一个是n,于是…
改一下主程序的那个py
试试…
于是挂了…
那就交换一下n,e,再来一次…
得到d
查一下RSA.construct在python中的用法
https://www.dlitz.net/software/pycrypto/api/2.6/
文档如上
挑重点!!!construct私钥要n,e,d
所以,改一下CTF下载下来的那个py,那个脚本用py2写的
1 | #coding:utf-8 |
改成这样大概,然后跑一下,崩了
decrypt()需要3个参数只提供了两个,于是百度…
来源:https://www.jb51.net/article/86022.htm
后面那个参数加上
需要from Crypto import Random
加上后再跑一下…
Flag:flag{nell_anima_ritrovo_la_speranza_che_nel_corpo_stanco_ormai}
65分到手,兴奋。
第五题:
给了e,n,m(明文),求密文
于是先拿上面的那个wiener跑一下,然后崩了
然后开始RSA的日常,上factordb
这是个分解n的网站,然后就知道p,q了,然后再按照RSA的算法写个脚本跑一下,大概就这样…
先跑一下n的10进制
复制粘贴到factordb
跑出来了
按照RSA的算法,p= 1578173871764844869716052171,q= 10710927547195113973175047066215146269
然后就要求d了,已知p,q,e,求d,找个现成的脚本跑一下就行,我找的这个:
https://blog.csdn.net/zyxyzz/article/details/78205321
感谢楼上师傅提供的脚本
跑一下出来d了
然后再拿上面的那个脚本跑一下就出来明文了
1 | from Crypto import Random |
然后崩了…
百度一下,发现了
来自:https://blog.csdn.net/orangleliu/article/details/72964948
那就分开加密,于是还是一样的崩,我也不知道为啥,也不想看库的文档了…
算了不用这个加密器了…
那就自力更生,丰衣足食
RSA的加密的算法不难,python大数运算没有位数限制,于是搜一下python的运算符
看到了重点
于是写了个脚本:
1 | N=16903705997349646195704375376941855414691523387719679999999999999 |
跑了一个小时还没出,笔记本都热了…
好像有哪里不对劲…
算了还是百度吧…
https://www.freebuf.com/articles/others-articles/166049.html
这个上面找了个脚本跑了一下,一秒出结果…
感谢楼上师傅提供的脚本
1 | import math |
Flag:flag{Acdxvf5vD_15_W7f}
30分到手。
不说话了,还是自己太菜…
学习中…
CG-CTF Crypto WriteUp
http://example.com/2019/01/20/2019-01-20-CG-CTF-Crypto-WriteUp/