Challenge
File : server.py
This is a challenge related to digital signature.
we can :
- sign some command
- call
lsorcatafter authentication
cat is black-listed command that forbid us to sign. However the way it check the black list is Base64Decode(input) == 'cat', and it is easy to bypass.
Solution
- First use
lscommand and we can see that flag is stored inflag.
Then we can simply convert cat flag into integer and factor it into a * b.
Since RSA is malleable, sign(a * b) == (sign(a) * sign(b)) % n, we can then get flag.