Skip to main content

THM — RUST — [task 13] challenge - writeup


Before starting this you must get familiar with all the previous tasks and run some code in the tasks and get familiar with error handling and using crates.

If you have difficulty completing the previous tasks here is a walkthrough video of them.

TryHackMe — learn Rust — [Task 13]:

So as given the string is already encrypted and all you have to do is to decrypt in the order of rot13 -> base64 -> ROT13 -> plaintext and find the flag.

To do that you can head to https://crates.io/ to find external packages which will decrypt the text for you out of the box, so search for packages such as base64 and rot13 to make use of them to use them in our code.

So here are some packages which I used


cipher-crypt = “0.17.0”
base64 = “0.12.3”


will use cipher-crypt for rot13 and base64 for base 64 decryption.

So now you can add them to your dependencies in Cargo.toml file(as below)



Now you are all set to use the packages it in your code. Then you can import these packages in your code as below

extern crate cipher_crypt;
extern crate base64;
use base64::{decode};
use cipher_crypt::{Rot13};


Here is the complete code to get decrypt.

extern crate cipher_crypt;
extern crate base64;
use base64::{decode};
use cipher_crypt::{Rot13};use std::str;fn main(){
let in_string = "M3I6r2IbMzq9";
let rot13_decrypt1 = Rot13::decrypt(in_string);
let unicode_decrypt = decode(rot13_decrypt1).unwrap();
let bytes_to_string = str::from_utf8(&unicode_decrypt).unwrap();
let final_string = Rot13::decrypt(bytes_to_string);
println!("{:?}",final_string);
}



Rust always recommends using snakecase so all the variables must be initialized in such format.

As Rot13::decrypt(“xxx”) returns a string we can directly pass it to base64 decode but the return type fo base64~decode is bytes we have to convert that to a string so we are using str::from_utf8. This could be done in several different ways I suppose I would be glad if could share with me your way of approaching the same in the comments.


Finally, you could use cargo run to run the code.



There you get the flag 🤩.

Comments

Popular posts from this blog

Reasons not to buy Akaso action camera if you are from india

Recently I made a full review of the action camera I brought after doing a ton of research and time. Having used it for a couple of months I feel extremely glad that it meets up to my expectations. But recently, I accidentally tipped off the camera without an external case and it cracked my lens. This, in turn, added a shady spot on my phone or video and I cannot use that anymore (Some phones of the cracked lens below)     I immediately mailed the akaso team to ask if there is anything they could do but unfortunately, this was their response. Oops, that was not what I was expecting and then I asked them I could get any details of the replacement parts or anything like that so that I can order it online. But that didn't happen it took a lot of time for them to respond me back(I have been bugging them on Facebook and email).  But after some time they left me with this response which I had no other choice but to accept. After getting the 50%re...

Facebook Whitehat

Have you ever wondered that Facebook provides you some test accounts in case if you are trying to find some bugs are attempting to attacks on some personal accounts. So its quiet interesting, lets take a look at them now just login to your Facebook account.. and then go to this link.. Facebook whitehat Then you may find out 4 sections in the page 1-Info            This basically provides you all the security related issues for Facebook and even provides you the opportunity to report the posts that are against the terms and conditions and violating the security issues.. Here are some links that might be important.. In case of any hacked accounts :  Hacking reports Abuse reports :  Report abuse 2-Thanks                The names are those who reported Facebook some bugs and helped Facebook for making their security issues more strong 3-Report a Security vulnerability     ...

Extjs - basics on file-system

Hope you created your first project with command prompt and knew some basics of where the application starts loading files and makes up the complete interface and functionalities. if not I recommend you to start from the initial step and come back here. So when you start your project on a desktop it will check for the main file in the classic folder and shows it to the user.   classic > src > view > main > Main.js Now let's start with this Main.js file and understand better about the project. This main file basically has some extended components  Ext.tab.Panel which extends the main page view to have a tab panel view in it. requires has all the other components that are being used in this page as components. Header of the side tab has all the properties such as layout that defines what should be the layout for the header which is aligned to stretchmax, and the title which is being binded which a data feild named name where the name is from ...