Hello Friend,

I solved few challenges in the SpringForward CTF 2024 which went down from April 26-28.

Right now, I’m playing CTF’s solo. I hope these writeups will open up a lot more doors.


Web

Socratic Script

Given a text file(ancient_tome.txt) that contains grant_me_passage_almighty_zeus.

In order to get the flag we have to upload the ancient_tome.txt

The below script prventing us from uploading the text file.

//Participants will need to remove or disable this script to allow uploads
document.getElementById('uploadForm').addEventListener('submit', function(event) {
	event.preventDefault();
	alert('Denied!');
});

After inspecting the upload button. we can find the event listener, clicking REMOVE button can disable the above script.

flag: nicc{p@SSAGe_GR@Nt3D}

Into the Gorgon’s Den

function mirror() {
	var input = document.getElementById("mirrorInput").value;
	var output = document.getElementById("mirrorOutput");

	if (input.toLowerCase() === "suesrep") {
		var clue = getMirrorClue();
		output.innerHTML = clue;
		output.style.display = "block";
	}

	else {
		output.innerHTML = input.split("").reverse().join("");
		output.style.display = "none";
	}
}

From above script we can understand that input must be equal to suesrep, inorder to execute getMirrorClue() function.

Medusa’s weakness is her reflection! she will turn her gaze at the 30th minute minus 2. The meaning of the clue is at the 28th minute of any hour, a clue pop up from a file called time.php.

function revealClue(clue) {
	document.getElementById('petrifiedContent').textContent = clue;
	}

	function checkAvailability() {
		var xhttp = new XMLHttpRequest();

		xhttp.onreadystatechange = function () {
		if (this.readyState == 4 && this.status == 200) {
			document.getElementById('petrifiedContent').innerHTML = this.responseText;
		}
	};

	xhttp.open('GET', 'time.php', true);
	xhttp.send();
}

As My time is IST (5:30 + 28) % (60 min) == 58 min.

For me the time.php only showed the flag on any hour : 58 min.

part1 is sl4y.

Part 2

cipher text : Gur frpbaq cneg bs gur synt vf gur ohg gur r vf n 3 !

The above cipher text is the ceaser cipher with key 13.

plain text : The second part of the flag is the but the e is a 3 !

part2 is th3.

Part 3

function checkInput() {
	var input = document.getElementById('flagInput').value;
	var secretPhrase = 'sl4yth3';

	if (input === secretPhrase) {
		fetchFlag();
	} else {
		alert('Incorrect input. Please try again.');
	}
}

from above javascript code we will understood that input must be equal sl4th3 to get the flag.

part3 is nicc{part1_part2_g0rg0n}

flag: nicc{sl4y_th3_g0rg0n}


Crypto

Party at the Gardens

we are give with a image that contains cup. there are some cracks on the cup that look like Morse code

.-- .. -. . - .. -- .

flag : nicc{WINETIME}


OSINT

Freezing February

The flag format is nicc{FirstName_LastName_SculptureName}

we are given with below image

click here for more information about above image.

flag : nicc{Lovie_Pignata_Smitten}

Its a Bull With What

Description : It has been said that the mighty Minotaur is found in the Aegean Sea on some palace. Can you help me find the island name and the palace name, so that I can slay it?

The flag format is nicc{Island_Name_Palace_Name}

To Know more about Minotaur click here.

flag : nicc{Crete_Palace_of_Minos}


Misc

Horsing Around at Troy

The hint suggests that there might be something hidden inside the provided image.

By running binwalk, we can extract some hidden content.

binwalk -e totally-innocent-horse.jpg
cd _totally-innocent-horse.jpg.extracted

flag : nicc{7Ro14-H1pPo2}

Minerva’s Quest

This challenge focused on answering multiple-choice questions related to infosec. Participants were directed to Google the questions and learn about them.

After answering 13 questions from given google form. we can get flag.

flag : NICC{_Minerva’s_Blessing_for_U}


Forensics

Browsing-History

Given a json file that contain’s browser history.

cat zeus-data.json  | grep -o 'nicc{[^}]*}'

flag : nicc{jup1t3R-15-4W350M3}


Thanks for reading!