Challenge
File : server.py
This is a challenge related to digital signature.
we can :
- sign some command
- call
ls
orcat
after 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
ls
command 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.