PlaidCTF Zipper Forensics Writeup

This was a forensics challenge. We get a zip file named ziper.zip. Trying to extract it, we are greeted with an error message. unzip zipper.zip Archive: zipper.zip warning: filename too long–truncating. : bad extra field length (central) So, there is something wrong with the filename length. Possibly in the central headers. A quick readup on how ZIP files are constructed from ForensicsWiki and Structure of PKZip File helped a lot in solving this particular challenge.
Read more →

Jetty and Spark

I am using Spark Java for writing the REST API servies. Spark is a neat web microframework which kinda reminds me of good-old Python Flask. Problem Some of my HTTP requests I have to send are humongous. Sometimes in megabytes. The underlying Jetty server was throwing "Form too large" exception because, POST requests’ body size exceeds what is supported. The default maximum POST request size is 2 MiB. Now, Spark does not offer any direct ways to configure the settings of the underlying Jetty server.
Read more →

A Custom Virtual Machine in JS

I have been working on a service which exposes its functionalities via a REST API. So, we have a number of REST services listening online and a REST client to control it. The whole server/client setup was originally written in Java. I was instructed to rewrite the client in JS so that we can have a web UI. I was given one and a half days (36 hours) to finish this.
Read more →

Curious Case of Jumbled Hashes

The Bug 🐛 I faced a very weird bug lately. I have to split a disk into multiple equally sized blocks and generate hashes of those blocks. I wrote this module three months before and all my unit test cases always pass too. One fine morning, all of a sudden the the unit test started failing. Even more weird, when I ran it again, it started passing. Once in say, 20 times, the test was failing.
Read more →

xinetd and painless TCP servers

Read more →