第一次参加比赛
什么也不懂,赛前十五天才开始从零准备,在此之前只会写零星的python和C语言,能看弄html
赛前准备看到misc不需要很多的知识,就选择了这一方向,开始比赛才知道自己的天真,最终自己只做出了一道半
Misc
签到题
点亮全国地图,当所有地区ip数大于10,官方放出flag,很简单,拼手速的题
the-best-ctf-game
拿到附件,一个在windows打不开的文件,二话不说直接放到kali里binwalk,没有隐藏文件,用cat,在一群乱码之中隐约看到flag,直接拼出来,回答正确
电脑被黑
题目拿到没什么思路,队友直接使用ext3grep,恢复磁盘,出现的flag.txt和fakeflag.txt全都是乱码,一直想也没有想到方法,最后想到将elf文件反汇编,拿到源码,再用这个算法,对flag.txt进行计算得到flag(还没有做完就结束了,之后再次尝试)
Crypto
bd
拿到附件为python脚本,提示是RSA算法,最下面给出了n、e和c,在网上搜索RSA大数分解,发现当n和e都很大的时候,可以利用wienerattack
https://github.com/pablocelayes/rsa-wiener-attack
打开RSAwienerhack.py,不用管test,在下面加上n和e的值并且调用RSA_hack()函数,直接运行就可以得出d值,将d值放入写好的脚本中,得出flag
from Crypto.Util.number import long_to_bytes
e = ''
n = ''
d = ''
m = pow(c,d,n) #明文的十进制形式
string = long_to_bytes(m) #将明文转为字符以b‘’形式打印
print(string)
来源:oschina
链接:https://my.oschina.net/u/4330613/blog/4527010