easy-peasy
签到题:
1 | from Crypto.Util.number import * |
小指数加密的变种,先移位再进行小指数加密。解法就是先把移位扩大的倍数求逆(模除法),再小指数开方就可。
1 | from Crypto.Util.number import * |
你不知道的事
1 | #!/usr/bin/env python3 |
先破解msg的内容,分析过程:
exp1:
1 | msg = [] |
根据输出的msg内容我们知道flag为flag1和flag2两部分组成,并且p和q就是flag1,2的整数的下一个素数。由于下一个素数大小与本数的差距并不大,只影响低位,于是可以直接将p和q转化成字节,可以看到高位部分就是flag:
1 | b"ctfshow{086c67cb-a132-4\x88\x0b\n:r\xfc\x01)\xe6'\xccI\x1e@_\xf1\x80\x9c\xa8\xb5\xdc\x0fr\xeb\x8c\x11\xd8UWr\x82\xb7\xdd\xbe\xd6{V'\xcf\xbc\xeb\x85\xdcCh\xfcT\xbdK\x16\xb6\xa1\xf7\x06t1j\x95)\x00\xa3\xc6MKk@\xcc\xe2\xe03\xe1\xee\x8e\xf1\xa0\xcf\xef\xca\xa1\xac@\x1d\xb2n\nI\xc8a" b'509-8b6b-6c46386487dc}\n\xf3\x15\x99J\xa4\n}\x1f_ J\xcdMu\xb6\x1d0\x06\x18\xe5\x8b&yJ\xee\xe7\x94L\x96\x119\xa5`~\x9a<\xfdl\x88q\xf8Y"\xe8\x83\x970\xa9\'3hP\x1d\xc3\x16C\x016Y\xcf\xebQe\x99\x9b&\xf6\xf0\xdd\x81\x19\xbb9\xba\xbf\x1d\x07l\x16\xbb\xe8\xf4\xe0`ot\xa9\x8d' |
春哥VS曾哥
关于模运算的问题,需要根据服务端给出的数值对进行分类讨论:
1 | from pwn import * |