Right, this oneās comparatively not too bad
difficulty-wise, you see
Right, anyway
due to my own circumstances,
I suppose
this study-related post
will have to be the last of its kind for now
I should really try a
bug bounty this year,
at the very latest.
The situation shows no sign of
improving, honestly.
ε-(Ā“ć»ļ½)
Honestly, rather than wasting all
my time and health with some
unwanted weekday part-time work,
with some unwanted weekday part-time work,
itād be far less galling to do
bug bounties on weekdays
and just part-time work on weekends.
itād be far less galling.
-`Г“-
Right, anyway Iāll just carry on writing.
(ćį“ćāæ)
Right, first letās have a gander at the question,
with my own rather straightforward,
literal translation
Daddy, teach me how to use random value in programming!
Right, and then
1 | ssh random@pwnable.kr -p2222 |
you connect straight away.
First,you work out whether
the file exists,and then
you check the random.c file
I check it
Right, so itās a program that receives a
key value if you XOR a 4-byte
random value with an input value
if you XOR a 4-byte random value with an input value
and 0xdeadbeef comes out.
So, ANG? If itās a random value,
does one have to try all possible cases?
Does one have to try all possible cases? ÅxÅ
Does one have to try all possible cases? ÅxÅ
one might think, but
the rand() function, unless
you provide it with a
seed value that changes every time
will always convert to a constant value
This constant value, if you work it out,
will give you the answer.
Right, then, letās trace the value using gdb.
Right, so you do the XOR operation,
and it seems you just need to check
the value of eax 0xdeadbeef
you just need to check.
Screenshot 5.
If you set a breakpoint and run it, putting in 0
you can see that 0x6b8b4567 is in eax.
0x6b8b4567 is in eax
you can see that itās in there.
As XORing with 0 produces the same value,
you can deduce that the value of rand() is 0x6b8b4567
you can deduce that it is.
So, the value we need to input can be found through
0xdeadbeef ^ 0x6b8b4567
can be found
Screenshot 6: Hexadecimal operation in Java
If you operate these two using Java programming
if you operate these two
the result is
0xB526FB88
Screenshot 7.
And if you go to a conversion website and convert it,
3039230856
a value like the above is output
If you input the outputted value,
you acquire the key value like this.
Right, and then with the key value thatās
been snagged,
Screenshot 9.
you go back to the first screen,
input it into the blank space
and then just press the āauthā button.
As soon as the missionās completed,
1 point has been snagged.
then, if you go back to the initial screen again,
youāll see that
itās marked as completed with a green
dotted line.
Thanks for reading through this long post.
Well done. (ćį“ćāæ)
Have a good day, and
I hope everything works out well for you
Itās quite warm out,
so do try and avoid getting heatstroke,
And do take care with the,erm,
Wuhan pneumonia situation.