I’m excited to announce the immediate availability of Directory Lister 3 Beta for testing and feedback. Everyone is encouraged to download the Directory Lister 3 beta and start testing today. Head on over to beta.directorylister.com to get started.

Image for post
Image for post

Directory Lister 3 was rebuilt from the ground up both inside and out. The biggest changes are under the hood including being rebuilt on top of PHP Slim framework and utilizing PHP-DI to take advantage of modern development practices. This should make ongoing development much easier and hopefully result in faster/more frequent updates.

In addition a brand new theme (seen above) is front and center featuring light and dark modes to suit your individual needs. The updated theme is fully responsive so it looks and works great on mobile devices. We’ve also included out-of-the-box file search and readme parsing to help people find the files and information they need quickly. And don’t worry, the essential features of version 2 are still around. Directory Lister 3 remains easy to install and configure (maybe even easier than v2) with custom sort ordering, hidden file support and built-in file hashing. …

Photo by Dayne Topkin on Unsplash

Frameworks are among the most important tools we developers have and yet they are often taken for granted. The way I see it is a framework has two primary benefits: 1) saving individual developers time by providing predefined solutions to common problems and 2) allowing teams to work more efficiently by giving them a common model for coding standards, file organization, design language and more. However, these benefits quickly break down when framework conventions are broken or ignored, intentionally or otherwise.

Picture the following: You find out that you’ll be taking over a project built by another person or team. It’s mentioned that the project is built on a framework you’re somewhat familiar with. Immediately you start to develop a mental map of the project. You can picture the file structure and know some of the framework tooling probably in use. Depending on your level of familiarity with the framework you may even be able to picture some of the lower level details like the routes, interfaces, classes and/or methods implemented. …

Image for post
Image for post

We’ve all been there… banging our heads against a wall for 20 minutes wondering why our app isn’t working before we realize we forgot to seed our database when running migrations. Okay, easy fix:

$ php artisan migrate --seed
Migration table created successfully.
Migrating: 1996_02_27_123456_create_pokemon_table
Migrated: 1996_02_27_123456_create_pokemon_table
Seeding: PokemonSeeder
ReflectionException : Class PokemonSeeder does not exist

Sigh… okay. I should have remembered to refresh the the autoload file first. My bad.

$ composer dump-autoload
$ php artisan migrate --seed
Nothing to migrate.
Seeding: PokemonSeeder
Illuminate\Database\QueryException : SQLSTATE[23000]: Integrity constraint violation: 19 UNIQUE constraint failed: pokemon.id (SQL: insert into "pokemon" ("id", "name", "description") values (25, Pikachu, Whenever Pikachu comes across something new, it blasts it with a jolt of electricity.)) …

Image for post
Image for post

This is a write up to the 2014 CactusCon web application (SpookiLeaks) challenge. You can grab the SpookiLeaks-VM here and try the challenge yourself before reading the solution.


The First Clue

The first clue to solving the challenge is hidden in plain sight. Before even logging in if we scan the pre-loaded images on the Spooky Images page there’s one image with the following comment:


Binary should be a red flag in any CTF. By doing a simple binary to ASCII conversion we get the following output:

Ah-ha! robots.txt… By checking /robots.txt we find the following:

User-agent: *
Disallow: /secret_docs/file-tree.txt

Here we find mention of /secret_docs/file-tree.txt with a rule of "Disallow". Fortunately, this rule is only intended to be read by web-crawlers and has no actual affect on our ability to read the file. By visiting /secret_docs/file-tree.txt we find this. …

Image for post
Image for post

I maintain several Linux servers at any given moment. Every server has postfix installed for sending emails, usually notifications or warning messages of some sort and most of these servers are professionally hosted allowing outbound emails with little to no configuration beyond installing postfix. However, my home server lies behind my ISP and they block all outbound emails citing SPAM as the reason. Regardless of their reasoning I had to find a workaround to allow me to send email notifications from behind my ISP. Well, it turns out this is rather painless with postfix and a Gmail account.

First, set up a Gmail account, note the user name and password for later. …

Image for post
Image for post

Having set up several Debian and Ubuntu web servers in the past I thought it would be a good idea to share my process. The following is a relatively comprehensive guide to installing and configuring an Apache based web server with some optimizations and basic resource monitoring. I primarily work with Ubuntu servers, but most of the commands here should work exactly the same in Debian or Ubuntu. I’ve tried to note where differences may occur.

Download and Install the OS

If you are setting up your own server, the first thing you will need to do is download the ISO that corresponds to your hardware (32/64-bit), burn it to CD and install it to your server. …

Image for post
Image for post

I work in Linux primarily but run a Windows 7 virtual machine in VirtualBox so I can use Photoshop and do some necessary testing. Today my VM ran out of space. Silly me thought 20GB would be enough, but after installing service pack 1, dozens of Windows updates and a few programs I had less than 1GB of space left. After a little searching I found an easy way to increase the size of a virtual disk.

First, shut down your VM then run the following command from your host PC:

$ VBoxManage modifyhd /path/to/guest.vdi --resize <size_in_mb>

Once completed, boot into your VM and (for Windows) open up Control Panel -> Administrative Tools -> Computer Management. In Computer Management navigate to Storage -> Disk Management then, in the right pane, right click your disk and select “Extend Volume” and follow the prompts to resize your disk. And that’s it! Your disk will now be resized. …

Image for post
Image for post

Still using Windows 7? As of January 2020 Windows 7 has been discontinued and will no longer receive new features or security patches.

Don’t want to upgrade to Windows 10? Give Ubuntu a try! It’s 100% free, more secure and runs better on the same hardware than Windows.

When installing Windows 7 it’s very picky about which installation disc you use (Full vs. Upgrade) and if improperly matched with your key can prevent you from activating your copy of Windows usually returning an “Invalid Product Key” error message. You may also see the same or similar error when you do a full, clean installation with an upgrade disc. This can be very annoying, especially when you have a legitimate key and disc but just didn’t install it the way Microsoft thinks you should. …

Image for post
Image for post

Too many people today don’t backup their files. And of those that do, many don’t do it well. An easy way to remember a “safe” way to backup your data is with the “3–2–1 Backup Rule” which goes like this:

  • Keep 3 copies of any important files (your primary/working copy counts as one)
  • Store your files on 2 different media types (Example: Hard drive and in the Cloud)
  • Always have 1 copy off site

With the 3–2–1 rule you can be relatively confident that you’ll always be able to access your critical data, even after a catastrophic failure.

Another rule I live by when it comes to backup…

Image for post
Image for post

I was just in a bit of a pickle and needed to join two .avi files together while in Ubuntu. There are a number of solutions out there, but the most simple solution I could find was via avimerge. Here's how I did it.

Install avimerge

sudo apt-get update sudo apt-get install transcode-utils

Merge your files

avimerge -i input_file1.avi input_file2.avi -o output_file.avi

It’s as simple as that. I did this in Ubuntu 10.10, but this should work for older versions as well.


Chris Kankiewicz

Passionate PHP developer, Linux junkie, gamer and coffee aficionado.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store