Cyber Security Challenge UK - Solution

The initial cipher:
Toggle Cipher

As a web developer I immediatly recognised that this was a base 64 encoded image so I placed it into an image tag like:

<img alt="Embedded Image" src="data:image/png;base64,/9j/4AAQSkZ...Ahn/9k=" />

The end result was:

Embedded Image

I saw the link (http://xkcd.com/538/) in the bottom corner of the image and thought I would visit this hoping to find the next part of the competition, alas I found what seemed to be the exact same image and thought I had come to the end of my journey. I then noticed that the border on the orignal image was irregular.

I tried the first 8 pixels assuming the black pixels represented the binary.

I worked out that the first 8 bits of the border were 01000011 witch was equal to 67 in decimal so I converted the 67 in to its ASCII equivelent which became the letter "C", I realised this was a normal letter and also that this was a capital letter and assumed this was the start of a sentence.

I ended up following the entire border all the way back to the start, this was no small task, however after I had found the solution I wrote myself some helper programs.

Toggle Full Binary

As you will see further on I made a few mistakes after converting the binary to letters I ended up with this result:

Cyrnfr sbyybj guvf yvax: uggcf://plorefrphevglpunyyratr.bet.hx/834wgc.ugzy uggcf://plorefrphevglpunyyr`tr.bet.hx/834wgc.ugzy

I noticed the "://" and assumed that this was a web address and those parts were not encoded. I also assumed that the "uggcf" before the "://" part represented "https" this built up my key to decoding the message, this is the table I had started to build up:

a b c d e f g h i j k l m n o p q r s t u v w x y z
    p     s t                           h          

It started to look somewhat familiar, like something I had learnt in junior school. The end result was:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
a b c d e f g h i j k l m n o p q r s t u v w x y z
n o p q r s t u v w x y z a b c d e f g h i j k l m

By applying this table to the encoded text I was able to produce the result:

Please follow this link: https://cybersecuritychallenge.org.uk/834jtp.html https://cybersecuritychalle`ge.org.uk/834jtp.html

As you can see I had mad a slight mistake but the result was readable and the mistake was not in an essential area of the message.

On visiting the link I was presented with this Hexidecimal string.

68edcdec4e2c8eae8d2c8e2dedcd6e04d2042fedae52ceac04ccedaecd8c042c
cd8c046cedad0e8dac8eac8c048e0dac044aa82889046c0d2c8d8daccdecacc5
042bedae4e04ee2dcd046ced8cac042d6e04046c2f4c664ea76e666cae4e268e
2f456c0d088d8d66cdecac6546c6a506e6a546062606c504a141a1410a8dac2c
6eac04acad2c2d8d048e0d2d6e046ced8cac048eed04edae4e048eac2cad042c
8e04adac8c2d2c086c2f4cac4e6eac6cae4e2d8e2f6c0d2c8d8daccdecacc5ed
4eecc5ae6dc50429cc042fedae524eac048e0dac04cc2d4e6e8e040eac4e6eed
cd048eed048ced046eed85042ccd8c046c2ccd040e4eedceac042fedae04adac
ac8e048e0dac04ac8d2dec2d4c2d8d2d8e2f046c4e2d8eac4e2d2c0405484e2d
8e2d6e0d046c2d8e2d4faccd046cae4e4eaccd8e8d2f044eac6e2d8caccd8e04
2dcd048e0dac04aa692504eeac04ee2d8d8d044cac042dcd048eedae6c0d048e
ed042c8cce2d6eac040dedee048eed046c8d2c2dad042fedae4e040e4e2d4fac
c504eaac8d8d048cedcdac042ccd8c04eceded8c048dae6c6d042dcd048e0dac
04682f4cac4e046aac6cae4e2d8e2f04680d2c8d8daccdecac046cedad0eac8e
2d8e2dedcd6e048e2c6d2dcdec040e8d2c6cac048e0d4eedaeec0dedae8e048e
0dac044eac6e8e04edcc048e0dac042fac2c4ec5

I only had to work out the first part of this encoded Hexidecimal string to work out the rest, so I worked out the first four numbers:

  68 ed cd ec
Decimal 104 237 205 236

This made no sense to me at all because these numbers fell outside of the ASCII char set codes so, I tried to convert the Hexidecimal numbers into binary:

  68 ed cd ec
Decimal 104 237 205 236
Binary 01101000 11101101 11001101 11101100

This also made no sense, then I started to rotate the individual binary numbers to see if there was anything that I would recognise:

This is only the first letter:

01101000 (104) Became
11010000 (208) Became
10100001 (161) Became
01000011 (67) I recognised this as an ASCII code

The last produced the letter "C", so I stopped and applied the same to the next binary code, removing the first three binary digits from the front and putting them to the rear (bit shift),

  68 ed cd ec
Orignal Binary 01101000 11101101 11001101 11101100
Shifted Binary 01000011 01101111 01101110 01100111
ASCII Output C o n g

This started to build up real words, so with my trusty calculator and some looping code I produced:

Congratulations – you’ve found and completed the REAL challenge. Your win code is  cyb3r=s3cur1ty*ch@ll3nge+26-07-2010. 

Please email this code to our team at media@cybersecuritychallenge.org.uk. If you’re the first person to do so, and can prove you meet the eligibility criteria (British citizen currently resident in the UK) we will be in touch to advise how to claim your prize. Well done and good luck in the Cyber Security Challenge competitions taking place throughout the rest of the year.

Thank you,
It was fun

Share this